/* TOP page sections (generated from Figma HkvKhn0tCN81aZWkdxWAG7) */

/* ===== 01-fv ===== */
/* 01 FV — PC: Figma 5:5（ヘッダー下 y=99 起点）/ SP: 89:38（ヘッダー下 y=69 起点） */
.s-fv { position: relative; height: calc(779 * var(--p)); overflow: hidden; background: #fff; }
.s-fv__bg {
  position: absolute;
  top: calc(-220 * var(--p));
  left: min(0px, calc(50% - 870 * var(--p)));
  right: min(0px, calc(50% - 838 * var(--p)));
  height: calc(1138 * var(--p));
}
.s-fv__photo { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 30%; }
.s-fv__inner { z-index: 1; height: 100%; padding: calc(43 * var(--p)) 0 0 calc(85 * var(--p)); }

/* lead */
.s-fv__lead { display: flex; align-items: baseline; height: calc(72 * var(--p)); font-weight: 700; white-space: nowrap; }
.s-fv__lead-1 { position: relative; top: calc(-2 * var(--p)); margin-left: calc(-4 * var(--p)); font-size: calc(24 * var(--p)); }
.s-fv__lead-2 { margin-left: calc(14 * var(--p)); font-size: calc(24 * var(--p)); }
.s-fv__em { color: var(--c-accent); font-size: calc(32 * var(--p)); }
.s-fv__dot { position: relative; }
.s-fv__dot::before {
  content: ""; position: absolute; left: 50%; top: calc(-3 * var(--p));
  width: calc(6 * var(--p)); height: calc(6 * var(--p)); transform: translateX(-50%);
  background: url(/assets/img/top/01-fv-dot.svg) center / 100% 100% no-repeat;
}
.s-fv__pain { align-self: flex-start; width: calc(29 * var(--p)); height: calc(29 * var(--p)); margin: calc(8 * var(--p)) 0 0 calc(11 * var(--p)); }

/* bubble */
.s-fv__bubble {
  position: relative; display: flex; align-items: baseline;
  width: calc(506 * var(--p)); height: calc(87 * var(--p));
  padding: calc(11 * var(--p)) 0 0 calc(30 * var(--p));
  border-radius: calc(30 * var(--p)); background: var(--c-green); color: #fff; white-space: nowrap;
}
.s-fv__bubble-1 { font-size: calc(28 * var(--p)); font-weight: 500; letter-spacing: calc(-1.12 * var(--p)); }
.s-fv__bubble-2 { margin-left: calc(4 * var(--p)); font-size: calc(40 * var(--p)); font-weight: 700; letter-spacing: calc(-0.96 * var(--p)); }
.s-fv__bubble-wo { font-size: calc(24 * var(--p)); }
.s-fv__bubble-tail {
  position: absolute; left: calc(240.2 * var(--p)); top: calc(83.5 * var(--p));
  width: calc(41.5692 * var(--p)); height: calc(19.5 * var(--p)); max-width: none; transform: rotate(180deg);
}

/* title (h1) */
.s-fv__title { height: calc(127 * var(--p)); margin-top: calc(36 * var(--p)); font-weight: 700; line-height: normal; white-space: nowrap; filter: drop-shadow(0 0 calc(1.5 * var(--p)) #fff) drop-shadow(0 0 calc(1.5 * var(--p)) #fff) drop-shadow(0 0 calc(3 * var(--p)) rgba(255, 255, 255, .8)); }
.s-fv__title-grad {
  font-size: calc(75 * var(--p)); letter-spacing: calc(-3 * var(--p));
  background: linear-gradient(170.6deg, #539D56 9.9034%, #307645 40.91%, #085333 53.043%, #085333 103.37%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.s-fv__title-3 { font-size: calc(64 * var(--p)); letter-spacing: calc(-2.56 * var(--p)); color: var(--c-text); }

/* symptom circles（リンクなし） */
.s-fv__symptoms { display: flex; gap: calc(5 * var(--p)); }
.s-fv__symptoms li {
  display: flex; align-items: center; justify-content: center;
  width: calc(123 * var(--p)); height: calc(123 * var(--p)); padding-bottom: calc(8 * var(--p));
  background: url(/assets/img/top/01-fv-symptom-circle.png) center / 100% 100% no-repeat;
  color: #fff; font-size: calc(24 * var(--p)); font-weight: 900; letter-spacing: calc(-2.64 * var(--p)); line-height: normal; text-align: center; white-space: nowrap;
}
.s-fv__symptoms li:last-child { padding: calc(9 * var(--p)) 0 0; font-size: calc(23 * var(--p)); line-height: calc(28 * var(--p)); letter-spacing: calc(-2.53 * var(--p)); }

/* description */
.s-fv__desc {
  position: relative; display: flex; flex-wrap: wrap; align-items: flex-end;
  margin-top: calc(68 * var(--p)); font-size: calc(20 * var(--p)); font-weight: 700; line-height: calc(37 * var(--p)); white-space: nowrap;
}
.s-fv__desc-box {
  display: block; width: calc(250 * var(--p)); height: calc(45 * var(--p)); margin-left: calc(1 * var(--p));
  padding: calc(2 * var(--p)) 0 0 calc(14 * var(--p));
  background: var(--c-green); color: #fff; font-size: calc(24 * var(--p)); line-height: calc(37 * var(--p));
}
.s-fv__desc-box > span { position: relative; }
.s-fv__desc-ga { margin-left: calc(5 * var(--p)); }
.s-fv__br { flex-basis: 100%; height: 0; }
.s-fv__br.u-pc { margin-top: calc(10 * var(--p)); }
.s-fv__desc > span:not(.s-fv__desc-box) { -webkit-text-stroke: calc(4 * var(--p)) #fff; paint-order: stroke fill; }
.s-fv__marker {
  position: relative; width: calc(336 * var(--p)); height: calc(53 * var(--p)); margin-top: calc(13 * var(--p));
  padding: calc(8 * var(--p)) 0 0 calc(3 * var(--p));
  background: var(--c-marker); font-size: calc(24 * var(--p)); font-weight: 700; line-height: calc(37 * var(--p)); white-space: nowrap;
}

/* access badge */
.s-fv__access {
  position: absolute; left: calc(959 * var(--p)); top: calc(391 * var(--p));
  display: flex; flex-direction: column; align-items: center;
  width: calc(270 * var(--p)); height: calc(270 * var(--p));
  background: url(/assets/img/top/01-fv-access-circle.svg) center / 100% 100% no-repeat;
  color: #fff; font-weight: 900; text-align: center; white-space: nowrap;
}
.s-fv__access-pill {
  display: block; width: calc(185 * var(--p)); height: calc(40 * var(--p)); margin-top: calc(45 * var(--p));
  padding-top: calc(6 * var(--p)); border-radius: calc(20 * var(--p)); background: #fff; color: var(--c-green);
  font-size: calc(23 * var(--p)); line-height: calc(28 * var(--p)); letter-spacing: calc(-2.53 * var(--p));
}
.s-fv__access-walk { display: block; height: calc(28 * var(--p)); margin-top: calc(35 * var(--p)); font-size: calc(28 * var(--p)); line-height: calc(28 * var(--p)); }
.s-fv__access-num { font-family: var(--ff-sen); font-weight: 700; font-size: calc(88 * var(--p)); }
.s-fv__access-note { display: block; margin-top: calc(43 * var(--p)); font-size: calc(32 * var(--p)); line-height: calc(28 * var(--p)); }

/* ---------- SP (89:38) ---------- */
@media (max-width: 767px) {
  .s-fv { height: calc(805 * var(--p)); }
  .s-fv__bg { top: calc(-38 * var(--p)); left: calc(-216 * var(--p)); right: auto; width: calc(809 * var(--p)); height: calc(539 * var(--p)); }
  .s-fv__glow { position: absolute; left: calc(29 * var(--p)); top: calc(-31 * var(--p)); width: calc(150 * var(--p)); height: calc(198 * var(--p)); }
  .s-fv__band { position: absolute; left: 0; top: calc(348 * var(--p)); width: 100%; height: calc(154 * var(--p)); background: rgba(55, 55, 55, .39); }
  .s-fv__inner { padding: calc(14 * var(--p)) 0 0; }

  .s-fv__lead { flex-wrap: wrap; row-gap: calc(3 * var(--p)); height: calc(177 * var(--p)); margin-left: calc(39 * var(--p)); align-content: flex-start; }
  .s-fv__lead-1 { flex-basis: 100%; top: 0; margin: 0; font-size: calc(18 * var(--p)); }
  .s-fv__lead-2 { margin: 0; font-size: calc(18 * var(--p)); }
  .s-fv__em { font-size: calc(24 * var(--p)); }
  .s-fv__dot::before { top: 0; width: calc(3 * var(--p)); height: calc(3 * var(--p)); background-image: url(/assets/img/top/01-fv-sp-dot.svg); }
  .s-fv__pain { margin: calc(-1 * var(--p)) 0 0 calc(12 * var(--p)); }

  .s-fv__bubble {
    position: absolute; left: calc(47 * var(--p)); top: calc(108 * var(--p));
    display: block; width: calc(198 * var(--p)); height: calc(83 * var(--p)); padding: 0;
    border-radius: 0; background: none; transform: rotate(-5deg);
  }
  .s-fv__bubble-img { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .7; }
  .s-fv__slash { position: absolute; width: calc(24 * var(--p)); height: calc(24 * var(--p)); }
  .s-fv__slash--back { left: calc(10.2 * var(--p)); top: calc(8 * var(--p)); }
  .s-fv__slash--fwd { left: calc(165.2 * var(--p)); top: calc(7 * var(--p)); }
  .s-fv__bubble-1 { position: absolute; left: calc(39.2 * var(--p)); top: calc(7 * var(--p)); font-size: calc(18 * var(--p)); font-weight: 700; letter-spacing: 0; }
  .s-fv__bubble-2 { position: absolute; left: calc(14.5 * var(--p)); top: calc(28 * var(--p)); margin: 0; font-size: calc(28 * var(--p)); letter-spacing: calc(-2.8 * var(--p)); }
  .s-fv__bubble-wo { font-size: calc(18 * var(--p)); letter-spacing: calc(-1.8 * var(--p)); }

  .s-fv__title {
    height: calc(173 * var(--p)); margin: 0 0 0 calc(54 * var(--p)); font-size: calc(56 * var(--p));
    filter: drop-shadow(calc(2 * var(--p)) 0 0 #fff) drop-shadow(calc(-2 * var(--p)) 0 0 #fff) drop-shadow(0 calc(2 * var(--p)) 0 #fff) drop-shadow(0 calc(-2 * var(--p)) 0 #fff) drop-shadow(0 0 calc(1 * var(--p)) #fff);
  }
  .s-fv__title-grad { display: contents; }
  .s-fv__title-1 {
    display: block; width: max-content; margin-bottom: calc(-16 * var(--p));
    font-size: calc(56 * var(--p)); letter-spacing: calc(-6.16 * var(--p));
    background: linear-gradient(165.58deg, #539D56 9.9034%, #307645 40.91%, #085333 53.043%, #085333 103.37%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
  }
  .s-fv__title-2 { margin-left: calc(68 * var(--p)); font-size: calc(56 * var(--p)); letter-spacing: calc(2.24 * var(--p)); color: var(--c-green); }
  .s-fv__title-3 { font-size: calc(40 * var(--p)); letter-spacing: calc(1.6 * var(--p)); }

  .s-fv__band-text {
    position: relative; height: calc(37 * var(--p)); margin-left: calc(74 * var(--p));
    color: #fff; font-size: calc(18 * var(--p)); font-weight: 700; letter-spacing: calc(-1.26 * var(--p)); white-space: nowrap;
    text-shadow: calc(2 * var(--p)) calc(2 * var(--p)) calc(14 * var(--p)) #2B4F2C;
  }
  .s-fv__symptoms { gap: calc(10 * var(--p)); margin-left: calc(31 * var(--p)); }
  .s-fv__symptoms li {
    width: calc(77 * var(--p)); height: calc(77 * var(--p)); padding: 0;
    background-image: url(/assets/img/top/01-fv-sp-symptom-circle.png);
    font-size: calc(18 * var(--p)); font-weight: 700; letter-spacing: calc(-1.98 * var(--p));
  }
  .s-fv__symptoms li:last-child { padding: 0; font-size: calc(16 * var(--p)); line-height: calc(20 * var(--p)); letter-spacing: calc(-1.76 * var(--p)); }

  .s-fv__arrow { position: absolute; left: calc(129 * var(--p)); top: calc(508 * var(--p)); width: calc(50 * var(--p)); height: calc(25 * var(--p)); }
  .s-fv__director { position: absolute; left: calc(-55 * var(--p)); top: calc(474 * var(--p)); width: calc(226 * var(--p)); height: calc(427 * var(--p)); }
  .s-fv__director img { width: 100%; height: 100%; object-fit: cover; }

  .s-fv__desc { align-items: flex-start; row-gap: 0; margin: calc(62 * var(--p)) 0 0 calc(147 * var(--p)); font-size: calc(16 * var(--p)); line-height: calc(30 * var(--p)); }
  .s-fv__desc-box { width: calc(194 * var(--p)); height: calc(29 * var(--p)); margin: calc(2 * var(--p)) 0 0; padding: 0 0 0 calc(7 * var(--p)); font-size: calc(20 * var(--p)); line-height: calc(30 * var(--p)); }
  .s-fv__desc-box > span { top: calc(-2 * var(--p)); }
  .s-fv__desc-ga { margin: calc(3 * var(--p)) 0 0 calc(4 * var(--p)); }
  .s-fv__marker { margin: calc(13 * var(--p)) 0 0 calc(33 * var(--p)); padding: calc(12 * var(--p)) 0 0 calc(10 * var(--p)); line-height: calc(30 * var(--p)); }
  .s-fv__marker-wo { font-size: calc(16 * var(--p)); }
  .s-fv__cta { position: relative; margin-top: calc(29 * var(--p)); }
}

/* ===== 02-stats ===== */
/* 02 stats — Figma 21:144（1280×292, bg #EAEFE6, padding 40/85）。各項目は Figma の相対座標で配置 */
.s-stats { background: var(--c-pale-2); }
.s-stats__list { position: relative; height: calc(292 * var(--p)); }
.s-stats__item { position: absolute; top: calc(40 * var(--p)); font-weight: 500; line-height: normal; white-space: nowrap; }
.s-stats__item > * { position: absolute; left: 0; top: 0; }
.s-stats__icon { max-width: none; object-fit: cover; }
.s-stats__value { color: var(--c-green); font-size: calc(40 * var(--p)); }
.s-stats__num { font-family: var(--ff-sen); font-size: calc(40 * var(--p)); }
.s-stats__num--maru { font-family: var(--ff-maru); }
.s-stats__unit { font-size: calc(16 * var(--p)); }
.s-stats__cap { color: var(--c-text); font-size: calc(16 * var(--p)); }

/* 46,560件+ (19:98) */
.s-stats__item--1 { left: calc(85 * var(--p)); }
.s-stats__item--1 .s-stats__icon { left: calc(31 * var(--p)); width: calc(64 * var(--p)); height: calc(63 * var(--p)); }
.s-stats__item--1 .s-stats__value { top: calc(87 * var(--p)); } /* Sen+Zen 混在行の line box 差を補正（Figma top 95） */
.s-stats__item--1 .s-stats__cap { left: calc(21 * var(--p)); top: calc(166 * var(--p)); }
/* 17年 (19:96) */
.s-stats__item--2 { left: calc(322 * var(--p)); top: calc(45 * var(--p)); }
.s-stats__item--2 .s-stats__icon { left: calc(22 * var(--p)); width: calc(56 * var(--p)); height: calc(58 * var(--p)); }
.s-stats__item--2 .s-stats__value { left: calc(18 * var(--p)); top: calc(82 * var(--p)); }
.s-stats__item--2 .s-stats__cap { top: calc(161 * var(--p)); }
/* 国家資格 (19:94) */
.s-stats__item--3 { left: calc(504 * var(--p)); }
.s-stats__item--3 .s-stats__icon { left: calc(43 * var(--p)); width: calc(58 * var(--p)); height: calc(63 * var(--p)); }
.s-stats__item--3 .s-stats__value { top: calc(93 * var(--p)); font-size: calc(36 * var(--p)); }
.s-stats__item--3 .s-stats__cap { left: calc(8 * var(--p)); top: calc(166 * var(--p)); }
/* WHO基準 (19:92) */
.s-stats__item--4 { left: calc(734 * var(--p)); }
.s-stats__item--4 .s-stats__icon { left: calc(52 * var(--p)); width: calc(74 * var(--p)); height: calc(69 * var(--p)); }
.s-stats__item--4 .s-stats__value { left: calc(10 * var(--p)); top: calc(90 * var(--p)); }
.s-stats__item--4 .s-stats__cap { top: calc(166 * var(--p)); }
/* 夜20時まで営業 (19:90) */
.s-stats__item--5 { left: calc(1012 * var(--p)); top: calc(49 * var(--p)); }
.s-stats__item--5 .s-stats__icon { left: calc(60 * var(--p)); width: calc(62 * var(--p)); height: calc(60 * var(--p)); }
.s-stats__item--5 .s-stats__value { top: calc(81 * var(--p)); }
.s-stats__item--5 .s-stats__unit { color: var(--c-text); }
.s-stats__item--5 .s-stats__cap { left: calc(51 * var(--p)); top: calc(157 * var(--p)); }

/* ---------- SP: 2列グリッド・中央揃え ---------- */
@media (max-width: 767px) {
  .s-stats { padding: calc(24 * var(--p)) calc(33 * var(--p)); }
  .s-stats .l-inner { width: auto; }
  .s-stats__list { display: grid; grid-template-columns: 1fr 1fr; gap: calc(24 * var(--p)) calc(12 * var(--p)); height: auto; }
  .s-stats__item { position: static; display: flex; flex-direction: column; align-items: center; text-align: center; }
  .s-stats__item > * { position: static; }
  .s-stats__item--5 { grid-column: 1 / -1; }
  .s-stats .s-stats__icon { width: auto !important; height: calc(44 * var(--p)) !important; aspect-ratio: auto; object-fit: contain; }
  .s-stats__value { margin-top: calc(8 * var(--p)); font-size: calc(24 * var(--p)); }
  .s-stats__num { font-size: calc(24 * var(--p)); }
  .s-stats__item--3 .s-stats__value { font-size: calc(22 * var(--p)); }
  .s-stats__unit, .s-stats__cap { font-size: calc(14 * var(--p)); }
  .s-stats__cap { margin-top: calc(6 * var(--p)); }
}

/* ===== 03-worries ===== */
/* 03 worries — Figma 19:106（1280×849, bg #FFF） */
.s-worries { background: #fff; padding: calc(97 * var(--p)) 0 calc(88 * var(--p)); }
.s-worries__green { color: var(--c-green); }

/* 見出し */
.s-worries__head { margin-left: calc(291 * var(--p)); width: calc(662.4 * var(--p)); }
.s-worries__eyebrow { display: flex; align-items: center; height: calc(24 * var(--p)); }
.s-worries__rule { flex: none; height: 1px; max-width: none; }
.s-worries__rule--l { width: calc(248 * var(--p)); }
.s-worries__rule--r { width: calc(237 * var(--p)); margin-left: calc(20 * var(--p)); }
.s-worries__label { flex: none; width: calc(125 * var(--p)); height: calc(24 * var(--p)); margin-left: calc(32 * var(--p)); }
.s-worries__title { margin-top: calc(17 * var(--p)); font-size: calc(40 * var(--p)); font-weight: 500; line-height: normal; white-space: nowrap; }
.s-worries__rule-long { width: calc(662.4 * var(--p)); height: 1px; max-width: none; margin: calc(17.7 * var(--p)) 0 0 calc(-0.4 * var(--p)); }

/* リード */
.s-worries__intro { display: flex; align-items: flex-start; margin: calc(31 * var(--p)) 0 0 calc(393 * var(--p)); }
.s-worries__hand { width: calc(41 * var(--p)); height: calc(79 * var(--p)); object-fit: cover; }
.s-worries__lead { margin: calc(13 * var(--p)) 0 0 calc(21 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); white-space: nowrap; }
.s-worries__lead strong { font-weight: 700; }

/* 写真 + チェックリスト */
.s-worries__body { display: flex; align-items: flex-start; margin: calc(51 * var(--p)) 0 0 calc(209 * var(--p)); }
.s-worries__photo { width: calc(443 * var(--p)); height: calc(386 * var(--p)); border-radius: calc(30 * var(--p)); object-fit: cover; }
.s-worries__list { display: flex; flex-direction: column; gap: calc(43 * var(--p)); margin: calc(8 * var(--p)) 0 0 calc(53 * var(--p)); }
.s-worries__list li { display: flex; align-items: center; gap: calc(20 * var(--p)); height: calc(24 * var(--p)); }
.s-worries__list li:nth-child(5) { align-items: flex-start; } /* Figma 21:137 のみ items-start */
.s-worries__list img { flex: none; width: calc(24 * var(--p)); height: calc(24 * var(--p)); }
.s-worries__list span { font-family: var(--ff-sen); font-weight: 500; font-size: calc(16 * var(--p)); line-height: normal; white-space: nowrap; }
.s-worries__list em { font-style: normal; font-weight: 600; color: var(--c-green); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-worries { padding: calc(48 * var(--p)) calc(33 * var(--p)) calc(44 * var(--p)); }
  .s-worries .l-inner { width: auto; }
  .s-worries__head { width: auto; margin: 0; }
  .s-worries__eyebrow { justify-content: center; height: calc(17 * var(--p)); }
  .s-worries__rule--l, .s-worries__rule--r { width: auto; min-width: 0; flex: 1 1 0; }
  .s-worries__rule--r { margin-left: calc(12 * var(--p)); }
  .s-worries__label { width: calc(88 * var(--p)); height: calc(17 * var(--p)); margin-left: calc(12 * var(--p)); }
  .s-worries__title { margin-top: calc(10 * var(--p)); font-size: calc(22 * var(--p)); line-height: 1.5; text-align: center; }
  .s-worries__rule-long { width: 100%; margin: calc(10 * var(--p)) 0 0; }
  .s-worries__intro { margin: calc(20 * var(--p)) 0 0; justify-content: center; }
  .s-worries__hand { width: calc(28 * var(--p)); height: calc(54 * var(--p)); }
  .s-worries__lead { margin: calc(2 * var(--p)) 0 0 calc(12 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(24 * var(--p)); white-space: normal; }
  .s-worries__body { flex-direction: column; margin: calc(28 * var(--p)) 0 0; }
  .s-worries__photo { width: 100%; height: auto; aspect-ratio: 443 / 386; border-radius: calc(20 * var(--p)); }
  .s-worries__list { gap: calc(16 * var(--p)); margin: calc(24 * var(--p)) 0 0; }
  .s-worries__list li { align-items: flex-start; gap: calc(10 * var(--p)); height: auto; }
  .s-worries__list img { width: calc(20 * var(--p)); height: calc(20 * var(--p)); }
  .s-worries__list span { font-size: calc(14 * var(--p)); white-space: normal; }
}

/* ===== 04-future ===== */
/* 04 future — Figma 21:146（1280×1144, bg #F5F5F5） */
.s-future { background: var(--c-bg-1); padding-bottom: calc(31 * var(--p)); }
.s-future__hero { position: relative; height: calc(516 * var(--p)); overflow: hidden; }
.s-future__photo { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
/* 上端の白い V（Polygon 4, 179.84° 回転）。>1280 は画面幅に合わせて横に伸ばす */
.s-future__chevron {
  position: absolute; left: 50%; top: calc(-1.87 * var(--p));
  width: max(calc(1360.4 * var(--p)), calc(100vw * 1360.4 / 1280)); height: calc(70.88 * var(--p)); max-width: none;
  transform: translateX(calc(-50% - 5.2 * var(--p))) rotate(179.84deg);
}
.s-future__hero-inner { height: 100%; padding-top: calc(200 * var(--p)); }
.s-future__label { position: absolute; left: calc(789 * var(--p)); top: calc(159 * var(--p)); width: calc(171 * var(--p)); height: calc(35 * var(--p)); max-width: none; }
.s-future__title { position: relative; margin-left: calc(398 * var(--p)); font-size: calc(40 * var(--p)); font-weight: 500; line-height: normal; white-space: nowrap; } /* Figma: left 50%-242（中央から右に約18pxずれ）をそのまま */
.s-future__msg {
  position: absolute; left: calc(353 * var(--p)); top: calc(298 * var(--p));
  width: calc(576 * var(--p)); height: calc(110 * var(--p)); padding-top: calc(25 * var(--p));
  background: rgba(255, 255, 255, .88); /* ご要望により透過を下げて可読性UP（Figma .63） */ box-shadow: 0 calc(4 * var(--p)) calc(11 * var(--p)) rgba(0, 0, 0, .25);
  font-weight: 500; font-size: calc(16 * var(--p)); line-height: calc(28 * var(--p)); text-align: center; white-space: nowrap;
}
.s-future__msg-1 { margin-left: calc(-2 * var(--p)); }
.s-future__msg-2 { margin-top: calc(3 * var(--p)); }
.s-future__msg-2 strong { color: var(--c-green); font-size: calc(20 * var(--p)); font-weight: 700; }

/* cards */
.s-future__cards { display: flex; justify-content: space-between; width: calc(1110 * var(--p)); margin: calc(63.5 * var(--p)) auto 0; }
.s-future__card {
  display: flex; flex-direction: column; align-items: center;
  width: calc(345 * var(--p)); height: calc(359 * var(--p)); padding-top: calc(27 * var(--p));
  background: #fff; border-radius: calc(30 * var(--p));
}
.s-future__card-img { width: calc(283 * var(--p)); height: calc(151 * var(--p)); border-radius: calc(20 * var(--p)); object-fit: cover; }
.s-future__card-title { margin-top: calc(46 * var(--p)); color: var(--c-green); font-size: calc(20 * var(--p)); font-weight: 700; line-height: normal; white-space: nowrap; }
.s-future__card-text { width: calc(292 * var(--p)); margin-top: calc(10 * var(--p)); color: #000; font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); text-align: center; }

/* closing */
.s-future__closing { margin-top: calc(70 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); text-align: center; }
.s-future__goal { margin-top: calc(20 * var(--p)); color: var(--c-green); font-size: calc(20 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); text-align: center; }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-future { padding-bottom: calc(40 * var(--p)); }
  .s-future__hero { height: auto; padding-bottom: calc(1 * var(--p)); }
  .s-future__photo { height: calc(300 * var(--p)); object-position: 30% 50%; }
  .s-future__chevron { width: calc(430 * var(--p)); height: calc(22 * var(--p)); top: calc(-1 * var(--p)); transform: translateX(-50%) rotate(180deg); }
  .s-future__hero-inner { height: auto; padding-top: calc(150 * var(--p)); }
  .s-future__label { left: auto; right: calc(40 * var(--p)); top: calc(116 * var(--p)); width: calc(120 * var(--p)); height: calc(25 * var(--p)); }
  .s-future__title { margin-left: 0; font-size: calc(24 * var(--p)); text-align: center; }
  .s-future__msg {
    position: relative; left: auto; top: auto; width: calc(336 * var(--p)); height: auto; margin: calc(40 * var(--p)) auto 0;
    padding: calc(12 * var(--p)) calc(6 * var(--p)); font-size: calc(12 * var(--p)); line-height: calc(24 * var(--p)); white-space: normal;
  }
  .s-future__msg-1 { margin: 0; }
  .s-future__msg-2 { margin: 0; }
  .s-future__msg-2 strong { font-size: calc(13 * var(--p)); }
  .s-future__cards { flex-direction: column; align-items: center; gap: calc(16 * var(--p)); width: calc(336 * var(--p)); margin-top: calc(32 * var(--p)); }
  .s-future__card { width: 100%; height: auto; padding: calc(20 * var(--p)) calc(20 * var(--p)) calc(22 * var(--p)); border-radius: calc(20 * var(--p)); }
  .s-future__card-img { width: 100%; height: auto; aspect-ratio: 283 / 151; }
  .s-future__card-title { margin-top: calc(16 * var(--p)); font-size: calc(16 * var(--p)); }
  .s-future__card-text { width: auto; margin-top: calc(6 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-future__closing { margin: calc(36 * var(--p)) calc(33 * var(--p)) 0; font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); }
  .s-future__closing br { display: none; }
  .s-future__goal { margin-top: calc(12 * var(--p)); font-size: calc(16 * var(--p)); }
}

/* ===== 05-philosophy ===== */
/* 05 philosophy — Figma 25:176（1280×1063, bg #F5F5F5 + 緑ノイズ背景 Subtract 198:96 上端ギザギザ） */
.s-philosophy { position: relative; background: var(--c-bg-1); padding: calc(165 * var(--p)) 0 calc(76 * var(--p)); color: #fff; }
.s-philosophy::before {
  content: ""; position: absolute; left: 0; right: 0; top: calc(48.75 * var(--p)); bottom: 0;
  background: url(/assets/img/top/05-bg.svg) calc(50% - 3.6 * var(--p)) 0 / calc(1280.78 * var(--p)) calc(1014.29 * var(--p)) repeat-x;
}
.s-philosophy > .l-inner { z-index: 1; }

.s-philosophy__head { display: flex; flex-direction: column; align-items: center; }
.s-philosophy__label { width: calc(147 * var(--p)); height: calc(38 * var(--p)); margin-left: calc(3 * var(--p)); }
.s-philosophy__icon { width: calc(40 * var(--p)); height: calc(77 * var(--p)); object-fit: cover; }
.s-philosophy__title { align-self: flex-start; margin: calc(26 * var(--p)) 0 0 calc(416 * var(--p)); font-size: calc(40 * var(--p)); font-weight: 700; line-height: normal; white-space: nowrap; }
.s-philosophy__dots { display: flex; flex-direction: column; align-items: center; margin-top: calc(32 * var(--p)); }
.s-philosophy__dots img { width: calc(8 * var(--p)); height: calc(8 * var(--p)); }
.s-philosophy__dots li + li { margin-top: calc(22 * var(--p)); }
.s-philosophy__dots li:last-child { margin-top: calc(17 * var(--p)); }

.s-philosophy__card {
  position: relative; display: flex; align-items: flex-start;
  width: calc(735 * var(--p)); height: calc(259 * var(--p)); margin: calc(48 * var(--p)) 0 0 calc(273 * var(--p));
  padding: calc(75 * var(--p)) 0 0 calc(294 * var(--p)); border-radius: calc(30 * var(--p)); background: #fff; color: var(--c-text);
}
.s-philosophy__director { position: absolute; left: calc(64 * var(--p)); bottom: 0; width: calc(183 * var(--p)); height: calc(322 * var(--p)); max-width: none; object-fit: cover; }
.s-philosophy__card-text { font-size: calc(20 * var(--p)); font-weight: 700; line-height: calc(40 * var(--p)); white-space: nowrap; }
.s-philosophy__green { color: var(--c-green); }

.s-philosophy__body { width: calc(763 * var(--p)); margin: calc(41 * var(--p)) 0 0 calc(273 * var(--p)); font-family: var(--ff-sen); font-weight: 500; font-size: calc(15 * var(--p)); line-height: calc(30 * var(--p)); text-spacing-trim: space-all; }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-philosophy { padding: calc(64 * var(--p)) calc(33 * var(--p)) calc(40 * var(--p)); }
  .s-philosophy::before { top: calc(20 * var(--p)); background-position: 50% 0; background-size: auto 100%; background-repeat: no-repeat; } /* 縦横比を保ってセクション高に合わせる（ギザギザも同比率） */
  .s-philosophy .l-inner { width: auto; }
  .s-philosophy__label { width: calc(110 * var(--p)); height: calc(28 * var(--p)); margin-left: calc(-5 * var(--p)); }
  .s-philosophy__icon { width: calc(28 * var(--p)); height: calc(54 * var(--p)); }
  .s-philosophy__title { align-self: center; margin: calc(14 * var(--p)) 0 0; font-size: calc(24 * var(--p)); }
  .s-philosophy__dots { margin-top: calc(16 * var(--p)); }
  .s-philosophy__dots img { width: calc(6 * var(--p)); height: calc(6 * var(--p)); }
  .s-philosophy__dots li + li, .s-philosophy__dots li:last-child { margin-top: calc(12 * var(--p)); }
  .s-philosophy__card { width: 100%; height: calc(190 * var(--p)); margin: calc(56 * var(--p)) 0 0; padding: 0 calc(10 * var(--p)) 0 calc(124 * var(--p)); align-items: center; border-radius: calc(20 * var(--p)); }
  .s-philosophy__director { left: calc(8 * var(--p)); width: calc(116 * var(--p)); height: calc(204 * var(--p)); }
  .s-philosophy__card-text { margin: 0; font-size: calc(14 * var(--p)); line-height: calc(28 * var(--p)); white-space: normal; }
  .s-philosophy__card-text br { display: none; }
  .s-philosophy__body { width: auto; margin: calc(28 * var(--p)) 0 0; font-size: calc(13 * var(--p)); line-height: calc(26 * var(--p)); }
}

/* ===== 06-difference ===== */
/* 06 difference — Figma 26:195（1280×872, bg 白→#CDDAC3 グラデ） */
.s-diff { --bleed: max(0px, (100vw - 1280px) / 2); background: linear-gradient(to bottom, #fff 35.517%, var(--c-pale-3) 100%); }
.s-diff > .l-inner { height: calc(872 * var(--p)); padding-top: calc(268 * var(--p)); }

/* 右上写真（右端まで裁ち落とし、左側のみ角丸60） */
.s-diff__photo {
  position: absolute; left: calc(641 * var(--p)); top: calc(46 * var(--p));
  width: calc(639 * var(--p) + var(--bleed)); height: calc(338 * var(--p));
  overflow: hidden; border-radius: calc(60 * var(--p)) 0 0 calc(60 * var(--p));
}
.s-diff__photo img { position: absolute; left: 0; top: -12.66%; width: calc(724.5 * var(--p) + var(--bleed) * 1.1338); max-width: none; height: auto; }

/* 見出し帯（左は画面外へ伸ばす） */
.s-diff__band {
  position: absolute; left: calc(-52 * var(--p) - var(--bleed)); top: calc(107 * var(--p));
  width: calc(731 * var(--p) + var(--bleed)); height: calc(119 * var(--p));
  padding: calc(29 * var(--p)) 0 0 calc(144 * var(--p) + var(--bleed));
  border-radius: calc(40 * var(--p)); background: var(--c-green-dark); color: #fff;
}
.s-diff__title { margin: calc(15 * var(--p)) 0 0 calc(-4 * var(--p)); font-size: calc(40 * var(--p)); font-weight: 500; line-height: calc(30 * var(--p)); white-space: nowrap; }
.s-diff__title-em { font-weight: 900; }

/* リード */
.s-diff__lead { position: relative; margin-left: calc(148 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); white-space: nowrap; }
.s-diff__lead strong { color: var(--c-green); font-weight: 700; }
.s-diff__icon {
  position: absolute; left: calc(-71 * var(--p)); top: calc(10 * var(--p));
  display: flex; align-items: center; justify-content: center; width: calc(61.808 * var(--p)); height: calc(61.808 * var(--p));
}
.s-diff__icon img { width: calc(52 * var(--p)); height: calc(52 * var(--p)); transform: rotate(-12.19deg); }

.s-diff__caption { margin-top: calc(84 * var(--p)); font-size: calc(20 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); text-align: center; }

/* 比較表 */
.s-diff__table-wrap { width: calc(984 * var(--p)); margin: calc(30 * var(--p)) auto 0; }
.s-diff__table { width: 100%; table-layout: fixed; font-family: var(--ff-noto); font-size: calc(16 * var(--p)); line-height: normal; }
.s-diff__table th, .s-diff__table td { border: 1px solid #B3B3B3; padding: 0 calc(13.5 * var(--p)); height: calc(60 * var(--p)); text-align: center; font-weight: 400; white-space: nowrap; }
.s-diff__table thead th, .s-diff__table thead td { height: calc(46 * var(--p)); background: var(--c-green); color: #fff; font-weight: 700; }
.s-diff__table tr > :nth-child(1) { width: calc(179 * var(--p)); }
.s-diff__table tr > :nth-child(2) { width: calc(403 * var(--p)); }
.s-diff__table tbody th { background: var(--c-pale-2); color: var(--c-text); text-align: left; }
.s-diff__table tbody td:nth-child(2) { background: var(--c-bg-1); color: var(--c-gray); }
.s-diff__table tbody td:nth-child(3) { background: #fff; color: var(--c-orange); font-weight: 500; }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-diff { --bleed: 0px; }
  .s-diff > .l-inner { height: auto; padding: 0 0 calc(48 * var(--p)); }
  .s-diff__photo { position: relative; left: auto; top: auto; width: calc(369 * var(--p)); height: calc(195 * var(--p)); margin: calc(24 * var(--p)) 0 0 auto; border-radius: calc(30 * var(--p)) 0 0 calc(30 * var(--p)); }
  .s-diff__photo img { width: 113.38%; }
  .s-diff__band { position: relative; left: auto; top: auto; width: calc(369 * var(--p)); height: auto; margin-top: calc(-30 * var(--p)); padding: calc(16 * var(--p)) calc(16 * var(--p)) calc(18 * var(--p)) calc(33 * var(--p)); border-radius: 0 calc(24 * var(--p)) calc(24 * var(--p)) 0; }
  .s-diff__title { margin: calc(8 * var(--p)) 0 0; font-size: calc(24 * var(--p)); line-height: calc(30 * var(--p)); }
  .s-diff__lead { margin: calc(24 * var(--p)) calc(33 * var(--p)) 0 calc(73 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); white-space: normal; }
  .s-diff__lead br { display: none; }
  .s-diff__icon { left: calc(-44 * var(--p)); top: calc(2 * var(--p)); width: calc(38 * var(--p)); height: calc(38 * var(--p)); }
  .s-diff__icon img { width: calc(32 * var(--p)); height: calc(32 * var(--p)); }
  .s-diff__caption { margin: calc(32 * var(--p)) calc(33 * var(--p)) 0; font-size: calc(16 * var(--p)); }
  .s-diff__table-wrap { width: auto; margin: calc(16 * var(--p)) calc(33 * var(--p)) 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  /* SP: 画面幅に収め、セル内で折り返す（nowrap だと隣セルへはみ出すため） */
  .s-diff__table { width: 100%; font-size: calc(12 * var(--p)); line-height: 1.5; letter-spacing: 0; }
  .s-diff__table th, .s-diff__table td { height: calc(50 * var(--p)); padding: calc(8 * var(--p)) calc(5 * var(--p)); white-space: normal; word-break: auto-phrase; }
  .s-diff__table thead th, .s-diff__table thead td { height: calc(40 * var(--p)); font-size: calc(11.5 * var(--p)); }
  .s-diff__table tr > :nth-child(1) { width: calc(84 * var(--p)); }
  .s-diff__table tr > :nth-child(2) { width: calc(126 * var(--p)); }
}

/* ===== 07-voice ===== */
/* 07 VOICE — PC: Figma 30:299（1280×1581） */
.s-voice { position: relative; overflow: hidden; background: linear-gradient(to bottom, #CEDAC4, #FFFFFF); }
.s-voice__bg { position: absolute; inset: 0; pointer-events: none; }
.s-voice__bg img { position: absolute; max-width: none; }
.s-voice__bg-ellipse { left: calc(50% - 790 * var(--p)); top: calc(4 * var(--p)); width: calc(1580 * var(--p)); height: calc(1366.5 * var(--p)); }
.s-voice__bg-lower { left: calc(50% - 796 * var(--p)); top: calc(529.1 * var(--p)); width: calc(1580 * var(--p)); height: calc(1052.1 * var(--p)); }
.s-voice__watermark { left: calc(50% - 640 * var(--p)); top: 0; width: calc(1280 * var(--p)); height: calc(300 * var(--p)); }
.s-voice__inner { z-index: 1; padding: calc(204.36 * var(--p)) 0 calc(111 * var(--p)); }

/* title */
.s-voice__title {
  display: flex; align-items: flex-start; margin-left: calc(371.36 * var(--p));
  color: var(--c-green); font-size: calc(40 * var(--p)); font-weight: 500; line-height: calc(30 * var(--p)); white-space: nowrap;
}
.s-voice__title-icon { display: grid; place-items: center; flex: none; width: calc(72.279 * var(--p)); height: calc(72.279 * var(--p)); }
.s-voice__title-icon img { width: calc(63 * var(--p)); height: calc(63 * var(--p)); transform: rotate(-9.22deg); }
.s-voice__title-text { margin: calc(21.64 * var(--p)) 0 0 calc(6.36 * var(--p)); }

/* photo + labels */
.s-voice__visual { position: relative; height: calc(363 * var(--p)); margin-top: calc(78.36 * var(--p)); }
.s-voice__photo { position: absolute; left: calc(310 * var(--p)); top: 0; width: calc(453 * var(--p)); height: calc(363 * var(--p)); border-radius: calc(30 * var(--p)); overflow: hidden; }
.s-voice__photo img { position: absolute; left: -3.99%; top: -22.02%; width: 107.98%; height: 179.21%; max-width: none; }
.s-voice__label {
  position: absolute; height: calc(46 * var(--p)); background: #fff; box-shadow: 0 calc(4 * var(--p)) calc(4 * var(--p)) rgba(0, 0, 0, .2);
  font-size: calc(24 * var(--p)); font-weight: 700; line-height: normal; white-space: nowrap;
}
.s-voice__label--1 { left: calc(678 * var(--p)); top: calc(70 * var(--p)); width: calc(206 * var(--p)); padding: calc(5 * var(--p)) 0 0 calc(7 * var(--p)); color: #000; }
.s-voice__label--2 { left: calc(705 * var(--p)); top: calc(136 * var(--p)); width: calc(367 * var(--p)); padding: calc(5 * var(--p)) 0 0 calc(12 * var(--p)); color: var(--c-green); }

/* bubble */
.s-voice__bubble { position: relative; width: calc(559 * var(--p)); height: calc(111.757 * var(--p)); margin: calc(91 * var(--p)) 0 0 calc(361 * var(--p)); }
.s-voice__bubble-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.s-voice__bubble-text {
  position: absolute; left: calc(279.5 * var(--p)); top: calc(23 * var(--p)); transform: translateX(-50%);
  color: #fff; font-size: calc(16 * var(--p)); font-weight: 700; line-height: calc(28 * var(--p)); text-align: center; white-space: nowrap;
}

/* cards */
.s-voice__cards { display: flex; gap: calc(37 * var(--p)); margin: calc(53.243 * var(--p)) 0 0 calc(85 * var(--p)); }
.s-voice__card:nth-child(3) { margin-left: calc(1 * var(--p)); }
.s-voice__card { position: relative; width: calc(345 * var(--p)); height: calc(359 * var(--p)); padding-top: calc(45 * var(--p)); border-radius: calc(30 * var(--p)); background: #fff; }
.s-voice__card-head { display: flex; align-items: flex-start; height: calc(126 * var(--p)); }
.s-voice__avatar { flex: none; width: calc(100 * var(--p)); height: calc(102 * var(--p)); object-fit: cover; }
.s-voice__name { font-size: calc(16 * var(--p)); font-weight: 700; line-height: calc(28 * var(--p)); white-space: nowrap; }
.s-voice__name span { color: var(--c-green); }
.s-voice__card:nth-child(1) .s-voice__avatar { margin-left: calc(31 * var(--p)); }
.s-voice__card:nth-child(1) .s-voice__name { margin: calc(12 * var(--p)) 0 0 calc(27 * var(--p)); }
.s-voice__card:nth-child(2) .s-voice__avatar { margin-left: calc(32 * var(--p)); }
.s-voice__card:nth-child(2) .s-voice__name { margin: calc(19 * var(--p)) 0 0 calc(22 * var(--p)); }
.s-voice__card:nth-child(3) .s-voice__avatar { margin-left: calc(38 * var(--p)); }
.s-voice__card:nth-child(3) .s-voice__name { margin: calc(26 * var(--p)) 0 0 calc(18 * var(--p)); }
.s-voice__body { width: calc(275 * var(--p)); margin-left: calc(33 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); }
.s-voice__body strong { color: var(--c-green); font-weight: 700; }
.s-voice__card:nth-child(2) .s-voice__body { margin-left: calc(35 * var(--p)); }
.s-voice__card:nth-child(3) .s-voice__body { margin-left: calc(36 * var(--p)); }
.s-voice__note { position: absolute; left: calc(33 * var(--p)); top: calc(295 * var(--p)); color: var(--c-gray-light); font-size: calc(12 * var(--p)); font-weight: 500; line-height: calc(18 * var(--p)); white-space: nowrap; }
.s-voice__card:nth-child(2) .s-voice__note { left: calc(35 * var(--p)); }
.s-voice__card:nth-child(3) .s-voice__note { left: calc(36 * var(--p)); top: calc(291 * var(--p)); }

.s-voice__more { margin: calc(91 * var(--p)) 0 0 calc(546 * var(--p)); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-voice__bg-ellipse { left: calc(50% - 260 * var(--p)); top: calc(4 * var(--p)); width: calc(520 * var(--p)); height: calc(449.7 * var(--p)); }
  .s-voice__bg::before { content: ""; position: absolute; left: 0; right: 0; top: calc(180 * var(--p)); bottom: calc(180 * var(--p)); background: #F5F5F5; }
  .s-voice__bg-lower { left: calc(50% - 260 * var(--p)); top: auto; bottom: calc(10 * var(--p)); width: calc(520 * var(--p)); height: calc(346.2 * var(--p)); }
  .s-voice__watermark { left: calc(50% - 210.6 * var(--p)); width: calc(421.2 * var(--p)); height: calc(98.7 * var(--p)); }
  .s-voice__inner { padding: calc(92 * var(--p)) calc(33 * var(--p)) calc(60 * var(--p)); }
  .s-voice__title { justify-content: center; align-items: center; margin: 0; font-size: calc(24 * var(--p)); line-height: normal; }
  .s-voice__title-icon { width: calc(40 * var(--p)); height: calc(40 * var(--p)); }
  .s-voice__title-icon img { width: calc(35 * var(--p)); height: calc(35 * var(--p)); }
  .s-voice__title-text { margin: 0 0 0 calc(4 * var(--p)); }
  .s-voice__visual { height: auto; margin-top: calc(32 * var(--p)); padding-bottom: calc(80 * var(--p)); }
  .s-voice__photo { position: relative; left: 0; width: 100%; height: calc(269 * var(--p)); border-radius: calc(20 * var(--p)); }
  .s-voice__label { height: calc(34 * var(--p)); font-size: calc(18 * var(--p)); }
  .s-voice__label--1 { left: auto; right: calc(26 * var(--p)); top: calc(250 * var(--p)); width: auto; padding: calc(4 * var(--p)) calc(8 * var(--p)) 0 calc(4 * var(--p)); }
  .s-voice__label--2 { left: auto; right: calc(-8 * var(--p)); top: calc(296 * var(--p)); width: auto; padding: calc(4 * var(--p)) calc(10 * var(--p)) 0; }
  .s-voice__bubble { width: auto; height: auto; margin: calc(12 * var(--p)) 0 0; padding: calc(14 * var(--p)) calc(16 * var(--p)) calc(24 * var(--p)); }
  .s-voice__bubble-bg { max-width: none; }
  .s-voice__bubble-text { position: relative; left: 0; top: 0; transform: none; font-size: calc(14 * var(--p)); line-height: calc(24 * var(--p)); white-space: normal; text-align: left; }
  .s-voice__bubble-text br { display: none; }
  .s-voice__cards { flex-direction: column; gap: calc(16 * var(--p)); margin: calc(24 * var(--p)) 0 0; }
  .s-voice__card, .s-voice__card:nth-child(3) { width: 100%; height: auto; margin: 0; padding: calc(24 * var(--p)) calc(24 * var(--p)) calc(20 * var(--p)); border-radius: calc(20 * var(--p)); }
  .s-voice__card-head { height: auto; align-items: center; }
  .s-voice__card .s-voice__avatar { width: calc(72 * var(--p)); height: calc(73.4 * var(--p)); margin: 0 !important; }
  .s-voice__card .s-voice__name { margin: 0 0 0 calc(18 * var(--p)) !important; font-size: calc(14 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-voice__card .s-voice__body { width: auto; margin: calc(16 * var(--p)) 0 0 !important; font-size: calc(14 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-voice__card .s-voice__note { position: static; margin-top: calc(10 * var(--p)); font-size: calc(11 * var(--p)); line-height: calc(16 * var(--p)); white-space: normal; }
  .s-voice__more { margin: calc(40 * var(--p)) 0 0; text-align: center; }
  .s-voice__more .c-btn-outline { width: 100%; }
}

/* ===== 08-beforeafter ===== */
/* 08 BEFORE & AFTER — PC: Figma 49:82（1280×1069） */
.s-ba { background: #fff; }
.s-ba__inner { padding: calc(163 * var(--p)) 0 calc(91 * var(--p)); }

/* heading bubble（パネル上端に重なる） */
.s-ba__head { position: absolute; z-index: 1; left: calc(363 * var(--p)); top: calc(79 * var(--p)); width: calc(524 * var(--p)); height: calc(170.9 * var(--p)); }
.s-ba__bubble { position: absolute; left: 0; top: 0; width: 100%; height: calc(170.629 * var(--p)); }
.s-ba__eyebrow { position: absolute; left: calc(276 * var(--p)); top: calc(26 * var(--p)); transform: translateX(-50%); color: #fff; white-space: nowrap; }
.s-ba__title {
  position: absolute; left: calc(261.5 * var(--p)); top: calc(50 * var(--p)); transform: translateX(-50%);
  font-size: calc(48 * var(--p)); font-weight: 700; line-height: calc(52 * var(--p)); white-space: nowrap;
}
.s-ba__title span { position: relative; background: linear-gradient(to right, #539D56, #00A407); -webkit-background-clip: text; background-clip: text; color: transparent; }
/* Figma の描画（白フチ＋緑の影）を再現する下敷き */
.s-ba__title::before {
  content: attr(data-text); position: absolute; inset: 0;
  color: #fff; -webkit-text-stroke: calc(10 * var(--p)) #fff;
  text-shadow: calc(4 * var(--p)) calc(2 * var(--p)) calc(4 * var(--p)) #539D56;
}

/* panel */
.s-ba__panel { position: relative; width: calc(1011 * var(--p)); height: auto; margin-left: calc(134.5 * var(--p)); padding: calc(116 * var(--p)) 0 calc(94 * var(--p)); background: var(--c-pale-2); }
/* 2組目（男性）: 1組目の下余白と同じ間隔で追加（Figma は1組のみ。1組目の上下関係は Figma どおり） */
.s-ba__photos + .s-ba__photos { margin-top: calc(94 * var(--p)); }
.s-ba__lead { width: calc(1011 * var(--p)); font-size: calc(32 * var(--p)); font-weight: 500; line-height: calc(52 * var(--p)); text-align: center; white-space: nowrap; transform: translateX(calc(-2 * var(--p))); }
.s-ba__photos { position: relative; display: flex; gap: calc(121 * var(--p)); margin: calc(40 * var(--p)) 0 0 calc(102.5 * var(--p)); }
.s-ba__item { position: relative; }
.s-ba__photo { box-sizing: content-box; width: calc(347 * var(--p)); height: calc(493 * var(--p)); border: calc(10 * var(--p)) solid #fff; box-shadow: 0 calc(4 * var(--p)) calc(4 * var(--p)) rgba(0, 0, 0, .25); }
.s-ba__photo img { width: 100%; height: 100%; object-fit: fill; object-position: bottom; }
.s-ba__badge { position: absolute; left: calc(-55 * var(--p)); top: calc(423 * var(--p)); width: calc(136 * var(--p)); height: calc(136 * var(--p)); }
.s-ba__badge img { position: absolute; inset: 0; width: 100%; height: 100%; }
.s-ba__badge span {
  position: absolute; inset: 0; display: grid; place-items: center;
  font-size: calc(32 * var(--p)); font-weight: 700; line-height: calc(52 * var(--p)); white-space: nowrap;
}
.s-ba__item--before .s-ba__badge span { color: var(--c-green); }
.s-ba__item--after .s-ba__badge span { color: #fff; }
.s-ba__arrow { position: absolute; left: calc(372.5 * var(--p) + 12.983 * var(--p)); top: calc(55 * var(--p) + 12.983 * var(--p)); width: calc(87.6337 * var(--p)); height: calc(87.6337 * var(--p)); transform: rotate(21.44deg); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-ba__inner { padding: calc(80 * var(--p)) 0 calc(48 * var(--p)); }
  .s-ba__head { left: calc(44 * var(--p)); top: calc(24 * var(--p)); width: calc(314 * var(--p)); height: calc(102.4 * var(--p)); }
  .s-ba__bubble { height: calc(102.2 * var(--p)); }
  .s-ba__eyebrow { left: calc(165 * var(--p)); top: calc(14 * var(--p)); font-size: calc(10 * var(--p)); }
  .s-ba__title { left: calc(157 * var(--p)); top: calc(30 * var(--p)); font-size: calc(30 * var(--p)); line-height: calc(36 * var(--p)); }
  .s-ba__title::before { -webkit-text-stroke-width: calc(6 * var(--p)); }
  .s-ba__panel { width: calc(370 * var(--p)); height: auto; margin: 0 auto; padding: calc(66 * var(--p)) 0 calc(48 * var(--p)); }
  .s-ba__lead { width: 100%; font-size: calc(19 * var(--p)); line-height: calc(30 * var(--p)); transform: none; }
  .s-ba__photos { gap: calc(34 * var(--p)); margin: calc(24 * var(--p)) 0 0 calc(29 * var(--p)); }
  .s-ba__photos + .s-ba__photos { margin-top: calc(44 * var(--p)); }
  .s-ba__photo { box-sizing: content-box; width: calc(134 * var(--p)); height: calc(190 * var(--p)); border-width: calc(5 * var(--p)); }
  .s-ba__badge { left: calc(-17 * var(--p)); top: calc(161 * var(--p)); width: calc(56 * var(--p)); height: calc(56 * var(--p)); }
  .s-ba__badge span { font-size: calc(12 * var(--p)); line-height: 1; } /* 14 だと BEFORE が円の縁に接するため */
  .s-ba__arrow { left: calc(137 * var(--p)); top: calc(20 * var(--p)); width: calc(28 * var(--p)); height: calc(28 * var(--p)); }
}

/* ===== 09-reasons ===== */
/* 09 REASONS（選ばれる秘密）— PC: Figma 50:105（1280×1605） */
.s-reasons { position: relative; overflow: hidden; background: #fff; }
.s-reasons__bg { position: absolute; left: calc(50% - 638 * var(--p)); top: 0; width: calc(1275 * var(--p)); height: calc(1605 * var(--p)); max-width: none; object-fit: cover; opacity: .3; pointer-events: none; }
.s-reasons__inner { z-index: 1; height: calc(1605 * var(--p)); padding-top: calc(36 * var(--p)); }

.s-reasons__title { width: calc(1280 * var(--p)); font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(92 * var(--p)); text-align: center; white-space: nowrap; transform: translateX(calc(5 * var(--p))); }

/* stats card（内部は Figma 座標で配置。--u は PC=--p、SP で縮小） */
.s-reasons__card { --u: var(--p); position: relative; width: calc(1110 * var(--p)); height: calc(460 * var(--p)); margin: calc(15 * var(--p)) 0 0 calc(85 * var(--p)); background: #fff; box-shadow: 0 calc(4 * var(--p)) calc(27 * var(--p)) rgba(0, 0, 0, .25); color: var(--c-green); }
.s-reasons__no1 { position: absolute; left: calc(67 * var(--p)); top: calc(96 * var(--p)); width: calc(528 * var(--u)); height: calc(298 * var(--u)); }
.s-reasons__laurel { position: absolute; width: calc(122 * var(--u)); height: calc(287 * var(--u)); }
.s-reasons__laurel--l { left: 0; top: 0; }
.s-reasons__laurel--r { left: calc(406 * var(--u)); top: calc(11 * var(--u)); }
.s-reasons__no1-text > span { position: absolute; transform: translateX(-50%); font-weight: 500; line-height: calc(69 * var(--u)); white-space: nowrap; }
.s-reasons__no1-area { left: calc(256.5 * var(--u)); top: calc(34 * var(--u)); font-size: calc(40 * var(--u)); }
.s-reasons__no1-num { left: calc(256.5 * var(--u)); top: calc(104 * var(--u)); font-family: var(--ff-sen); font-size: calc(110 * var(--u)); font-weight: 700 !important; }
.s-reasons__no1-rate { left: calc(256.5 * var(--u)); top: calc(184 * var(--u)); font-size: calc(60 * var(--u)); }
.s-reasons__no1-mark { left: calc(121.5 * var(--u)); top: calc(122 * var(--u)); font-size: calc(20 * var(--u)); }
.s-reasons__no1-boast { left: calc(406 * var(--u)); top: calc(130 * var(--u)); font-size: calc(20 * var(--u)); color: var(--c-text); }

.s-reasons__ring { position: absolute; left: calc(666 * var(--p)); top: calc(66 * var(--p)); width: calc(347.56 * var(--u)); height: calc(347.56 * var(--u)); }
.s-reasons__ring img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.s-reasons__ring-text > span { position: absolute; transform: translateX(-50%); line-height: calc(52 * var(--u)); white-space: nowrap; }
.s-reasons__ring-num { left: calc(154.92 * var(--u)); top: calc(130.67 * var(--u)); font-family: var(--ff-sen); font-size: calc(86 * var(--u)); font-weight: 700; }
.s-reasons__ring-unit { left: calc(260 * var(--u)); top: calc(150.88 * var(--u)); font-family: var(--ff-sen); font-size: calc(24 * var(--u)); font-weight: 700; }
.s-reasons__ring-label { left: calc(179 * var(--u)); top: calc(206 * var(--u)); font-size: calc(26 * var(--u)); font-weight: 500; color: var(--c-text); }

.s-reasons__lead { width: calc(1252 * var(--p)); margin-top: calc(76 * var(--p)); font-size: calc(20 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); text-align: center; white-space: nowrap; }

.s-reasons__tiles { display: grid; grid-template-columns: repeat(3, calc(320 * var(--p))); column-gap: calc(34 * var(--p)); row-gap: calc(43 * var(--p)); margin: calc(93 * var(--p)) 0 0 calc(126 * var(--p)); }
.s-reasons__tiles img { width: calc(320 * var(--p)); height: calc(248 * var(--p)); }

.s-reasons__note { width: max-content; margin: calc(28 * var(--p)) 0 0 calc(472 * var(--p)); transform: translateX(-50%); color: var(--c-gray); font-size: calc(11 * var(--p)); font-weight: 500; line-height: calc(22 * var(--p)); text-align: center; }

.s-reasons__cta {
  position: absolute; left: calc(414 * var(--p)); top: calc(1519 * var(--p));
  display: block; padding: calc(16 * var(--p)) 0 0 calc(27 * var(--p));
  width: calc(473.647 * var(--p)); height: calc(86 * var(--p)); border-radius: calc(20 * var(--p)); background: var(--c-orange);
  color: #fff; font-family: var(--ff-sen); font-size: calc(40 * var(--p)); font-weight: 600; line-height: normal; white-space: nowrap;
  transition: opacity var(--t);
}
.s-reasons__cta:hover { opacity: .8; }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-reasons__bg { left: calc(50% - 320 * var(--p)); width: calc(640 * var(--p)); height: 100%; }
  .s-reasons__inner { height: auto; padding: calc(40 * var(--p)) calc(33 * var(--p)) calc(56 * var(--p)); }
  .s-reasons__title { width: auto; font-size: calc(19 * var(--p)); line-height: calc(32 * var(--p)); transform: none; white-space: normal; }
  .s-reasons__card { --u: calc(var(--p) * .56); display: flex; flex-direction: column; align-items: center; gap: calc(20 * var(--p)); width: auto; height: auto; margin: calc(20 * var(--p)) 0 0; padding: calc(28 * var(--p)) 0 calc(32 * var(--p)); box-shadow: 0 calc(4 * var(--p)) calc(16 * var(--p)) rgba(0, 0, 0, .2); }
  .s-reasons__no1, .s-reasons__ring { position: relative; left: 0; top: 0; }
  .s-reasons__lead { width: auto; margin-top: calc(32 * var(--p)); font-size: calc(15 * var(--p)); line-height: calc(26 * var(--p)); white-space: normal; }
  .s-reasons__lead br { display: none; }
  .s-reasons__tiles { grid-template-columns: repeat(2, 1fr); gap: calc(12 * var(--p)); margin: calc(28 * var(--p)) 0 0; }
  .s-reasons__tiles img { width: 100%; height: auto; }
  .s-reasons__note { width: auto; margin: calc(16 * var(--p)) 0 0; transform: none; text-align: left; line-height: calc(18 * var(--p)); }
  .s-reasons__cta { position: relative; left: 0; top: 0; display: flex; align-items: center; justify-content: center; width: 100%; height: calc(58 * var(--p)); margin-top: calc(28 * var(--p)); padding: 0; font-size: calc(20 * var(--p)); }
}

/* ===== 10-flow ===== */
/* 10 FLOW（初めての方へ）— PC: Figma 52:156（1280×2088） */
.s-flow { background: #fff; }
.s-flow__inner { padding: calc(54 * var(--p)) 0 calc(102 * var(--p)); text-align: center; }
.s-flow__eyebrow { text-align: center; }
.s-flow__title { display: flex; flex-direction: column; align-items: center; margin-top: calc(29 * var(--p)); transform: translateX(calc(0.5 * var(--p))); font-size: calc(40 * var(--p)); line-height: calc(52 * var(--p)); white-space: nowrap; }
.s-flow__title-1 { position: relative; font-weight: 500; }
.s-flow__title-icon { position: absolute; left: calc(-43.5 * var(--p)); top: calc(9 * var(--p)); width: calc(43 * var(--p)); height: calc(43 * var(--p)); }
.s-flow__title-2 { color: var(--c-green); font-weight: 700; }
.s-flow__lead { margin-top: calc(40 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); white-space: nowrap; }

.s-flow__steps { display: flex; flex-direction: column; gap: calc(40 * var(--p)); margin: calc(75 * var(--p)) 0 0 calc(151 * var(--p)); text-align: left; }
.s-flow__step { position: relative; width: calc(980 * var(--p)); height: calc(212 * var(--p)); padding: calc(47 * var(--p)) 0 0 calc(128 * var(--p)); border-radius: calc(30 * var(--p)); background: var(--c-pale-1); }
.s-flow__step--05 { margin-left: calc(-1 * var(--p)); }
.s-flow__step--06 { margin-top: calc(2 * var(--p)); }
.s-flow__photo { position: absolute; right: 0; top: 0; height: calc(212 * var(--p)); border-radius: 0 calc(30 * var(--p)) calc(30 * var(--p)) 0; overflow: hidden; }
.s-flow__photo--w { width: calc(732 * var(--p)); }
.s-flow__step--01 .s-flow__photo { width: calc(379 * var(--p)); }
.s-flow__step--05 .s-flow__photo { top: calc(-9 * var(--p)); }
.s-flow__step--06 .s-flow__photo { right: calc(3 * var(--p)); width: calc(373 * var(--p)); }
.s-flow__photo img { width: 100%; height: 100%; object-fit: cover; }
.s-flow__num { position: absolute; left: calc(38 * var(--p)); top: calc(34 * var(--p)); width: calc(64 * var(--p)); height: calc(64 * var(--p)); }
.s-flow__num img { position: absolute; inset: 0; width: 100%; height: 100%; }
.s-flow__num span { position: absolute; left: calc(14 * var(--p)); top: calc(12 * var(--p)); color: #fff; font-family: var(--ff-sen); font-size: calc(32 * var(--p)); font-weight: 700; line-height: normal; }
.s-flow__step-title { position: relative; color: var(--c-green); font-size: calc(24 * var(--p)); font-weight: 700; line-height: normal; white-space: nowrap; }
.s-flow__text { position: relative; margin: calc(16 * var(--p)) 0 0 calc(5 * var(--p)); font-family: var(--ff-sen); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); white-space: nowrap; }

.s-flow__more { margin-top: calc(82 * var(--p)); }
.s-flow__btn { position: relative; width: calc(220 * var(--p)); padding: 0 calc(38 * var(--p)) 0 calc(18 * var(--p)); }
.s-flow__btn .c-btn-outline__icon { position: absolute; right: calc(18 * var(--p)); top: calc(14 * var(--p)); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-flow__inner { padding: calc(40 * var(--p)) calc(33 * var(--p)) calc(56 * var(--p)); }
  .s-flow__title { margin-top: calc(12 * var(--p)); transform: none; font-size: calc(22 * var(--p)); line-height: calc(34 * var(--p)); }
  .s-flow__title-icon { left: calc(-28 * var(--p)); top: calc(6 * var(--p)); width: calc(24 * var(--p)); height: calc(24 * var(--p)); }
  .s-flow__lead { margin-top: calc(20 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-flow__steps { gap: calc(16 * var(--p)); margin: calc(32 * var(--p)) 0 0; }
  .s-flow__step, .s-flow__step--05, .s-flow__step--06 { width: 100%; height: auto; margin: 0; padding: calc(176 * var(--p)) calc(20 * var(--p)) calc(22 * var(--p)); border-radius: calc(20 * var(--p)); }
  .s-flow__photo, .s-flow__step .s-flow__photo { left: 0; right: 0; top: 0 !important; width: 100% !important; height: calc(160 * var(--p)); border-radius: calc(20 * var(--p)) calc(20 * var(--p)) 0 0; }
  .s-flow__photo img { object-position: right top; } /* 顔が切れないよう上端基準 */
  .s-flow__photo--w img { width: 200%; max-width: none; margin-left: -100%; }
  .s-flow__num { left: calc(20 * var(--p)); top: calc(136 * var(--p)); width: calc(44 * var(--p)); height: calc(44 * var(--p)); }
  .s-flow__num span { left: 0; right: 0; top: 50%; transform: translateY(-50%); text-align: center; font-size: calc(20 * var(--p)); }
  .s-flow__step-title { margin-left: calc(54 * var(--p)); font-size: calc(18 * var(--p)); white-space: normal; }
  .s-flow__text { margin: calc(12 * var(--p)) 0 0; font-size: calc(14 * var(--p)); line-height: calc(24 * var(--p)); white-space: normal; }
  .s-flow__text br { display: none; }
  .s-flow__more { margin-top: calc(40 * var(--p)); }
  .s-flow__btn { width: 100%; }
}

/* ===== 11-strengths ===== */
/* 11 強み — Figma 71:221（1280×1803） */
.s-str { position: relative; overflow: hidden; background: var(--c-bg-1); }
.s-str__bg { position: absolute; inset: 0; }
.s-str__bg-img {
  position: absolute; left: calc(50% - 1973 * var(--p)); top: calc(-21 * var(--p));
  width: calc(2776 * var(--p)); height: calc(1850 * var(--p)); max-width: none; object-fit: cover;
}
.s-str__inner { padding: calc(170 * var(--p)) 0 calc(144 * var(--p)); }

/* heading */
.s-str__head { position: relative; height: calc(77 * var(--p)); }
.s-str__eyebrow { position: absolute; left: calc(792.5 * var(--p)); top: calc(8 * var(--p)); transform: translateX(-50%); white-space: nowrap; }
.s-str__title { font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(46 * var(--p)); white-space: nowrap; }
.s-str__title > span { position: absolute; top: calc(31 * var(--p)); transform: translateX(-50%); }
.s-str__title-1 { left: calc(507 * var(--p)); }
.s-str__title-2 { left: calc(826 * var(--p)); }
.s-str__em { color: var(--c-green); }
.s-str__title .s-str__title-num {
  left: calc(683.5 * var(--p)); top: calc(30.5 * var(--p)); transform: translate(-50%, -50%);
  font-family: var(--ff-sen); font-size: calc(156 * var(--p)); line-height: calc(46 * var(--p)); color: var(--c-green);
  -webkit-text-stroke: calc(10 * var(--p)) #fff; paint-order: stroke fill;
  text-shadow: 0 calc(4 * var(--p)) calc(4 * var(--p)) rgba(0, 0, 0, .25);
}

/* POINT panel */
.s-str__point {
  position: relative; width: calc(645 * var(--p)); height: calc(200 * var(--p));
  margin: calc(84 * var(--p)) 0 0 calc(310 * var(--p));
  background: rgba(255, 255, 255, .74);
}
.s-str__point-band {
  position: absolute; left: calc(88 * var(--p)); top: calc(-24 * var(--p));
  width: calc(387 * var(--p)); height: calc(47 * var(--p)); padding: calc(7 * var(--p)) 0 0 calc(20 * var(--p));
  background: var(--c-green); color: #fff; font-size: calc(24 * var(--p)); font-weight: 700; line-height: calc(32 * var(--p)); white-space: nowrap;
}
.s-str__point-deco {
  position: absolute; left: calc(-22 * var(--p)); top: calc(-21 * var(--p));
  width: calc(91.796 * var(--p)); height: calc(49.65 * var(--p));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ff-sen); font-weight: 700; font-size: calc(26 * var(--p)); line-height: calc(32 * var(--p)); color: rgba(83, 157, 86, .5);
  transform: rotate(-12.19deg);
}
.s-str__point-text {
  position: absolute; left: calc(88 * var(--p)); top: calc(52 * var(--p));
  font-size: calc(20 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); white-space: nowrap;
}
.s-str__point-text strong { font-weight: 700; color: var(--c-green); }
.s-str__director { position: absolute; left: calc(816 * var(--p)); top: calc(247 * var(--p)); width: calc(289 * var(--p)); height: calc(545 * var(--p)); object-fit: cover; }

/* cards */
.s-str__cards {
  position: relative; z-index: 1; display: grid; grid-template-columns: calc(353 * var(--p)) calc(681 * var(--p));
  column-gap: calc(36 * var(--p)); row-gap: calc(53 * var(--p));
  margin: calc(115 * var(--p)) 0 0 calc(105 * var(--p));
}
.s-str__card {
  position: relative; background: #fff; border-radius: calc(30 * var(--p));
  --pl: 41; --num-w: 70; --line-top: 39; --body-top: 35;
  padding: calc(144 * var(--p)) calc(40 * var(--p)) 0 calc(var(--pl) * var(--p));
  height: calc(543 * var(--p));
}
.s-str__card--03, .s-str__card--04 { height: calc(417 * var(--p)); width: calc(514 * var(--p)); --line-top: 31; --body-top: 19; }
.s-str__card--03 { grid-column: 1 / -1; grid-row: 2; }
.s-str__card--04 { grid-column: 1 / -1; grid-row: 2; margin-left: calc(557 * var(--p)); --pl: 44; }
.s-str__card--02 { --pl: 42; }
.s-str__illust { position: absolute; max-width: none; }
.s-str__card--01 .s-str__illust { left: calc(92 * var(--p)); top: calc(-42 * var(--p)); width: calc(165 * var(--p)); height: calc(165 * var(--p)); }
.s-str__card--02 .s-str__illust { left: calc(269 * var(--p)); top: calc(-41 * var(--p)); width: calc(164 * var(--p)); height: calc(164 * var(--p)); }
.s-str__card--03 .s-str__illust { left: calc(151 * var(--p)); top: calc(-33 * var(--p)); width: calc(178 * var(--p)); height: calc(178 * var(--p)); }
.s-str__card--04 .s-str__illust { left: calc(163 * var(--p)); top: calc(-48 * var(--p)); width: calc(195 * var(--p)); height: calc(195 * var(--p)); }

.s-str__card-head {
  display: flex; align-items: center; height: calc(40 * var(--p));
  padding-bottom: calc(var(--line-top) * var(--p)); box-sizing: content-box;
  border-bottom: 1px solid var(--c-pale-3);
}
.s-str__num { flex: none; width: calc(var(--num-w) * var(--p)); margin-left: calc(var(--num-ml, 2) * var(--p)); font-family: var(--ff-sen); font-weight: 700; font-size: calc(32 * var(--p)); line-height: normal; color: var(--c-pale-3); }
.s-str__card--02 { --num-ml: 36; --num-w: 64; }
.s-str__card--04 { --num-ml: 4; --num-w: 65; }
.s-str__card-title { font-size: calc(24 * var(--p)); font-weight: 700; line-height: normal; color: var(--c-green); white-space: nowrap; }
.s-str__card--01 .s-str__card-title { position: relative; top: calc(-2 * var(--p)); }
.s-str__card-body { margin-top: calc(var(--body-top) * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
.s-str__card--01 .s-str__card-body { width: calc(239 * var(--p)); margin-left: calc(6 * var(--p)); }
.s-str__card--02 .s-str__card-body { margin-top: calc(31 * var(--p)); margin-left: calc(1 * var(--p)); white-space: nowrap; }
.s-str__card--03 .s-str__card-body, .s-str__card--04 .s-str__card-body { width: calc(440 * var(--p)); margin-right: calc(-20 * var(--p)); } /* Figma 432 幅だが句読点のぶら下げ分を見込む */
.s-str__card--03 .s-str__card-body { margin-left: calc(2 * var(--p)); }
.s-str__card--04 .s-str__card-body { margin-left: calc(4 * var(--p)); }
.s-str__note {
  width: calc(576 * var(--p)); height: calc(147 * var(--p)); margin-bottom: calc(26 * var(--p));
  padding: calc(19 * var(--p)) calc(16 * var(--p)) 0 calc(34 * var(--p));
  border-radius: calc(20 * var(--p)); background: rgba(205, 218, 195, .25); white-space: normal;
}
.s-str__note-title { font-weight: 700; color: var(--c-green); line-height: calc(32 * var(--p)); }
.s-str__note-text { font-size: calc(14 * var(--p)); line-height: calc(27 * var(--p)); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-str__bg-img { left: calc(50% - 470 * var(--p)); top: 0; width: calc(940 * var(--p)); height: 100%; }
  .s-str__inner { padding: calc(64 * var(--p)) calc(33 * var(--p)) calc(72 * var(--p)); }
  .s-str__head { height: auto; padding-top: calc(28 * var(--p)); }
  .s-str__eyebrow { left: calc(262 * var(--p)); top: 0; }
  .s-str__title { display: flex; justify-content: center; align-items: flex-end; font-size: calc(20 * var(--p)); line-height: calc(30 * var(--p)); }
  .s-str__title > span, .s-str__title .s-str__title-num { position: relative; left: auto; top: auto; transform: none; }
  .s-str__title .s-str__title-num { margin: 0 calc(4 * var(--p)); font-size: calc(84 * var(--p)); line-height: calc(64 * var(--p)); -webkit-text-stroke-width: calc(6 * var(--p)); }
  .s-str__point { width: auto; height: auto; margin: calc(62 * var(--p)) 0 0; padding: calc(40 * var(--p)) calc(16 * var(--p)) calc(20 * var(--p)); }
  .s-str__point-band { left: calc(16 * var(--p)); top: calc(-15 * var(--p)); width: auto; height: auto; padding: calc(6 * var(--p)) calc(12 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(22 * var(--p)); }
  .s-str__point-deco { left: 0; top: calc(-56 * var(--p)); width: auto; height: auto; font-size: calc(18 * var(--p)); }
  .s-str__point-text { position: static; width: calc(206 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(24 * var(--p)); white-space: normal; word-break: auto-phrase; }
  .s-str__director { left: auto; right: calc(10 * var(--p)); top: auto; bottom: 0; width: calc(96 * var(--p)); height: calc(181 * var(--p)); }
  .s-str__point-wrap { position: relative; }
  .s-str__cards { display: flex; flex-direction: column; gap: calc(60 * var(--p)); margin: calc(70 * var(--p)) 0 0; }
  .s-str__card, .s-str__card--03, .s-str__card--04 {
    width: auto; height: auto; margin: 0; border-radius: calc(20 * var(--p));
    padding: calc(96 * var(--p)) calc(20 * var(--p)) calc(28 * var(--p));
    --line-top: 16; --body-top: 16; --num-w: 44; --num-ml: 0;
  }
  .s-str__illust, .s-str__card .s-str__illust { left: 50%; top: calc(-36 * var(--p)); width: calc(120 * var(--p)); height: calc(120 * var(--p)); transform: translateX(-50%); }
  .s-str__card-head { height: auto; min-height: calc(30 * var(--p)); }
  .s-str__num { font-size: calc(22 * var(--p)); }
  .s-str__card-title { font-size: calc(18 * var(--p)); white-space: normal; }
  .s-str__card--01 .s-str__card-title { top: 0; }
  .s-str__card-body, .s-str__card .s-str__card-body { width: auto; margin: calc(16 * var(--p)) 0 0; font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); white-space: normal; }
  .s-str__note { width: auto; height: auto; margin-bottom: calc(16 * var(--p)); padding: calc(14 * var(--p)) calc(16 * var(--p)); }
  .s-str__note-text { font-size: calc(12 * var(--p)); line-height: calc(22 * var(--p)); }
}

/* ===== 12-price ===== */
/* 12 料金・全額返金保証 — Figma 76:38（1280×1241）。21 price2 でも同じマークアップを再利用 */
.s-price { background: var(--c-bg-2); }
.s-price__inner { padding: calc(95 * var(--p)) 0 calc(35 * var(--p)); }
.s-price__lead { height: calc(86 * var(--p)); padding-left: calc(515 * var(--p)); color: var(--c-green); font-size: calc(40 * var(--p)); font-weight: 700; line-height: normal; }

/* band */
.s-price__band {
  position: relative; width: calc(1110 * var(--p)); height: calc(205 * var(--p)); margin-left: calc(85 * var(--p));
  padding: calc(29 * var(--p)) 0 0 calc(321.6 * var(--p)); background: var(--c-green); color: #fff;
}
.s-price__deco {
  position: absolute; left: calc(-105 * var(--p)); top: calc(86 * var(--p));
  width: calc(336 * var(--p)); height: calc(52 * var(--p)); transform: rotate(90deg);
  font-family: var(--ff-sen); font-weight: 500; font-size: calc(64 * var(--p)); line-height: normal; text-align: center; white-space: pre;
  color: rgba(255, 255, 255, .35);
}
.s-price__title { font-size: calc(40 * var(--p)); font-weight: 700; line-height: normal; }
.s-price__desc { margin-top: calc(14 * var(--p)); font-size: calc(20 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
.s-price__photo {
  position: absolute; left: calc(857.83 * var(--p)); bottom: 0;
  width: calc(225.174 * var(--p)); height: calc(298 * var(--p)); max-width: none; object-fit: cover; object-position: 50% 0;
}

/* price card */
.s-price__card {
  position: relative; width: calc(896 * var(--p)); height: calc(343 * var(--p)); margin: calc(94 * var(--p)) 0 0 calc(192 * var(--p));
  border-radius: calc(30 * var(--p)); background: #fff; box-shadow: 0 calc(4 * var(--p)) calc(16 * var(--p)) rgba(0, 0, 0, .25);
}
.s-price__card-title {
  position: absolute; left: 50%; top: calc(-34 * var(--p)); transform: translateX(-50%);
  width: calc(584 * var(--p)); height: calc(68 * var(--p)); padding: calc(18 * var(--p)) 0 0 calc(18 * var(--p));
  border-radius: calc(134 * var(--p)); background: var(--c-green); color: #fff;
  font-size: calc(32 * var(--p)); font-weight: 700; line-height: calc(32 * var(--p)); text-align: center; white-space: nowrap;
}
.s-price__body { display: flex; align-items: flex-start; padding: calc(95 * var(--p)) 0 0 calc(207 * var(--p)); height: calc(238 * var(--p)); }
.s-price__regular { width: calc(143 * var(--p)); }
.s-price__off {
  height: calc(48 * var(--p)); background: var(--c-red); color: #fff;
  font-family: var(--ff-sen); font-weight: 500; font-size: calc(32 * var(--p)); line-height: calc(48 * var(--p)); text-align: center;
}
.s-price__was {
  position: relative; width: calc(156 * var(--p)); margin: calc(8 * var(--p)) 0 0 calc(-6.5 * var(--p));
  font-family: var(--ff-sen); font-weight: 500; font-size: calc(16 * var(--p)); line-height: calc(32 * var(--p)); text-align: center; white-space: nowrap;
}
.s-price__was del { text-decoration: none; }
.s-price__strike { position: absolute; left: calc(18.5 * var(--p)); top: calc(10 * var(--p)); width: calc(134 * var(--p)); height: calc(14.5 * var(--p)); max-width: none; }
.s-price__amount {
  width: calc(404 * var(--p)); margin: calc(24 * var(--p)) 0 0 calc(24 * var(--p));
  color: var(--c-red); line-height: calc(32 * var(--p)); text-align: center; white-space: nowrap;
}
.s-price__num { font-family: var(--ff-sen); font-weight: 500; font-size: calc(128 * var(--p)); }
.s-price__comma { font-family: var(--ff-sen); font-weight: 500; font-size: calc(96 * var(--p)); }
.s-price__yen { font-size: calc(20 * var(--p)); font-weight: 700; letter-spacing: calc(2 * var(--p)); }
.s-price__foot { position: absolute; left: calc(81 * var(--p)); top: calc(238 * var(--p)); display: flex; align-items: flex-start; }
.s-price__note { width: calc(541 * var(--p)); font-size: calc(14 * var(--p)); font-weight: 500; line-height: calc(22 * var(--p)); white-space: nowrap; }
.s-price__btn { width: calc(220 * var(--p)); margin-top: calc(25 * var(--p)); }

/* refund guarantee */
.s-price__refund {
  position: relative; width: calc(911 * var(--p)); height: calc(347 * var(--p)); margin: calc(36 * var(--p)) 0 0 calc(185 * var(--p));
  padding-top: calc(47 * var(--p)); text-align: center;
  border: 1px solid rgba(255, 255, 255, .53); border-radius: calc(20 * var(--p));
  background: linear-gradient(159.37deg, rgba(233, 225, 191, .8) 15.429%, rgba(252, 251, 231, .8) 53.361%, rgba(214, 200, 152, .8) 84.902%);
  box-shadow: 0 calc(4 * var(--p)) calc(4 * var(--p)) rgba(0, 0, 0, .25), inset 0 calc(4 * var(--p)) calc(6 * var(--p)) rgba(255, 255, 255, .6);
}
.s-price__refund::before {
  content: ""; position: absolute; left: calc(7 * var(--p)); top: calc(9 * var(--p)); width: calc(895 * var(--p)); height: calc(328 * var(--p));
  border: calc(2 * var(--p)) solid var(--c-gold); border-radius: calc(20 * var(--p)); pointer-events: none;
}
.s-price__refund-label {
  display: block; width: calc(263 * var(--p)); height: calc(37 * var(--p)); margin: 0 auto; padding-top: calc(1 * var(--p));
  background: #2B4F2C; color: #fff; font-family: var(--ff-mincho); font-weight: 500; font-size: calc(20 * var(--p)); line-height: calc(32 * var(--p));
}
.s-price__refund-title {
  margin-top: calc(38 * var(--p)); height: calc(32 * var(--p));
  color: var(--c-gold-dark); font-family: var(--ff-mincho); font-weight: 700; font-size: calc(64 * var(--p)); line-height: calc(32 * var(--p));
}
.s-price__refund-text { margin: calc(48 * var(--p)) 0 0 calc(3 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
.s-price__refund-text strong { color: var(--c-gold-dark); font-weight: 700; }
.s-price__refund-note { margin: calc(21 * var(--p)) 0 0 calc(1 * var(--p)); font-size: calc(14 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
.s-price__btn { justify-content: flex-start; gap: calc(30 * var(--p)); padding-left: calc(47 * var(--p)); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-price__inner { padding: calc(48 * var(--p)) calc(33 * var(--p)) calc(40 * var(--p)); }
  .s-price__lead { height: auto; margin-bottom: calc(28 * var(--p)); padding: 0; font-size: calc(24 * var(--p)); text-align: center; }
  .s-price__band { width: auto; height: auto; margin: 0; padding: calc(20 * var(--p)) calc(104 * var(--p)) calc(20 * var(--p)) calc(46 * var(--p)); }
  .s-price__deco { left: calc(-78 * var(--p)); top: 50%; width: calc(200 * var(--p)); height: calc(40 * var(--p)); margin-top: calc(-20 * var(--p)); font-size: calc(36 * var(--p)); line-height: calc(40 * var(--p)); }
  .s-price__title { font-size: calc(20 * var(--p)); }
  .s-price__desc { margin-top: calc(8 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(22 * var(--p)); }
  .s-price__photo { left: auto; right: calc(-6 * var(--p)); width: calc(112 * var(--p)); height: calc(148 * var(--p)); }
  .s-price__card { width: auto; height: auto; margin: calc(52 * var(--p)) 0 0; padding-bottom: calc(24 * var(--p)); border-radius: calc(20 * var(--p)); }
  .s-price__card-title { top: calc(-22 * var(--p)); width: calc(300 * var(--p)); height: calc(44 * var(--p)); padding: calc(12 * var(--p)) 0 0; font-size: calc(16 * var(--p)); line-height: calc(20 * var(--p)); }
  .s-price__body { flex-direction: column; align-items: center; height: auto; padding: calc(44 * var(--p)) 0 0; }
  .s-price__regular { display: flex; align-items: center; gap: calc(10 * var(--p)); width: auto; }
  .s-price__off { width: calc(96 * var(--p)); height: calc(32 * var(--p)); font-size: calc(20 * var(--p)); line-height: calc(32 * var(--p)); }
  .s-price__was { width: auto; margin: 0; font-size: calc(13 * var(--p)); }
  .s-price__strike { left: 0; top: calc(9 * var(--p)); width: 100%; height: calc(12 * var(--p)); }
  .s-price__amount { width: auto; margin: calc(30 * var(--p)) 0 0; line-height: calc(40 * var(--p)); }
  .s-price__num { font-size: calc(76 * var(--p)); }
  .s-price__comma { font-size: calc(56 * var(--p)); }
  .s-price__yen { font-size: calc(15 * var(--p)); letter-spacing: calc(1 * var(--p)); }
  .s-price__foot { position: static; flex-direction: column; align-items: stretch; margin-top: calc(20 * var(--p)); padding: 0 calc(16 * var(--p)); }
  .s-price__note { width: auto; font-size: calc(12 * var(--p)); line-height: calc(20 * var(--p)); white-space: normal; }
  .s-price__btn { width: 100%; margin-top: calc(18 * var(--p)); justify-content: center; gap: calc(8 * var(--p)); padding-left: calc(18 * var(--p)); }
  .s-price__refund { width: auto; height: auto; margin: calc(28 * var(--p)) 0 0; padding: calc(32 * var(--p)) calc(18 * var(--p)) calc(26 * var(--p)); }
  .s-price__refund::before { left: calc(5 * var(--p)); top: calc(5 * var(--p)); right: calc(5 * var(--p)); bottom: calc(5 * var(--p)); width: auto; height: auto; }
  .s-price__refund-label { width: calc(210 * var(--p)); height: calc(30 * var(--p)); padding: 0; font-size: calc(16 * var(--p)); line-height: calc(30 * var(--p)); }
  .s-price__refund-title { height: auto; margin-top: calc(14 * var(--p)); font-size: calc(36 * var(--p)); line-height: calc(48 * var(--p)); }
  .s-price__refund-text { margin: calc(12 * var(--p)) 0 0; font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); text-align: left; }
  .s-price__refund-note { margin: calc(10 * var(--p)) 0 0; font-size: calc(12 * var(--p)); line-height: calc(20 * var(--p)); }
}

/* ===== 13-reserve ===== */
/* 13 初回ご予約の空き状況 — Figma 76:57（1280×1780） */
.s-rsv { background: var(--c-bg-2); }
.s-rsv__avail { position: relative; }
.s-rsv__avail::before { content: ""; position: absolute; left: 0; right: 0; top: calc(187 * var(--p)); bottom: 0; background: var(--c-pale-2); }
.s-rsv__wave { position: absolute; left: 0; top: calc(-2 * var(--p)); width: 100%; height: calc(212 * var(--p)); max-width: none; }
.s-rsv__inner { padding: calc(179 * var(--p)) 0 calc(51 * var(--p)); }
.s-rsv__deco { position: absolute; left: calc(88 * var(--p)); top: calc(40 * var(--p)); width: calc(200 * var(--p)); height: calc(72 * var(--p)); }

.s-rsv__title {
  position: relative; display: flex; align-items: flex-start;
  width: calc(521 * var(--p)); height: calc(90 * var(--p)); margin-left: calc(401 * var(--p));
  padding: calc(21 * var(--p)) 0 0 calc(93.5 * var(--p));
  border-radius: calc(60 * var(--p)); background: #fff;
  color: var(--c-green); font-size: calc(40 * var(--p)); font-weight: 500; line-height: calc(46 * var(--p)); white-space: nowrap;
}
.s-rsv__title-icon { position: absolute; left: calc(30.1 * var(--p)); top: calc(17.1 * var(--p)); width: calc(53.6667 * var(--p)); height: calc(53.6667 * var(--p)); }
.s-rsv__lead { margin-top: calc(25 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); text-align: center; }

.s-rsv__table-wrap { margin: calc(48 * var(--p)) 0 0 calc(141 * var(--p)); }
.s-rsv__table { border-collapse: separate; border-spacing: calc(8 * var(--p)) 0; table-layout: fixed; }
.s-rsv__table th, .s-rsv__table td {
  width: calc(246 * var(--p)); height: calc(62.5 * var(--p)); padding: calc(7 * var(--p)) 0 0; vertical-align: top;
  border-bottom: calc(8.5 * var(--p)) solid transparent; background-clip: padding-box;
  font-size: calc(16 * var(--p)); line-height: calc(32 * var(--p)); text-align: center; white-space: nowrap;
}
.s-rsv__table th { padding-top: calc(6 * var(--p)); background-color: var(--c-green-light); font-weight: 700; }
.s-rsv__table td { background-color: #fff; color: #000; font-weight: 500; }
.s-rsv__note { margin-top: calc(8.5 * var(--p)); padding-left: calc(460 * var(--p)); font-size: calc(14 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); text-align: center; white-space: nowrap; }

/* banner */
.s-rsv__banner { position: relative; height: calc(366 * var(--p)); overflow: hidden; background: var(--c-pale-2); }
.s-rsv__banner-img { position: absolute; left: 0; top: calc(-1 * var(--p)); width: 100%; height: calc(367 * var(--p)); max-width: none; object-fit: cover; mix-blend-mode: multiply; }
.s-rsv__banner-inner { padding-top: calc(95 * var(--p)); text-align: center; }
.s-rsv__banner-title { color: var(--c-green); font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(42 * var(--p)); }
.s-rsv__banner-text { margin: calc(52 * var(--p)) 0 0 calc(26 * var(--p)); color: #000; font-size: calc(20 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); white-space: nowrap; }

/* features */
.s-rsv__bottom { padding: calc(94 * var(--p)) 0 calc(117 * var(--p)); }
.s-rsv__features { position: relative; height: calc(226 * var(--p)); }
.s-rsv__feature {
  position: absolute; top: 0; left: calc(var(--cx) * var(--p)); transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; white-space: nowrap; text-align: center;
}
.s-rsv__feature img { width: calc(var(--iw) * var(--p)); height: calc(var(--ih) * var(--p)); margin: calc(var(--it) * var(--p)) 0 0 calc(var(--idx) * 2 * var(--p)); max-width: none; }
.s-rsv__feature-title { margin-top: calc(var(--tt) * var(--p)); color: var(--c-green); font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(52 * var(--p)); }
.s-rsv__feature-text { margin-top: calc(var(--st) * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: normal; }
.s-rsv__feature--1 { --cx: 308; --iw: 74; --ih: 72; --it: 12; --idx: -7; --tt: 21; --st: 45; }
.s-rsv__feature--1 .s-rsv__feature-title { font-size: calc(40 * var(--p)); line-height: calc(30 * var(--p)); }
.s-rsv__feature--2 { --cx: 545; --iw: 85; --ih: 73; --it: 5; --idx: -5.5; --tt: 16; --st: 34; }
.s-rsv__feature--3 { --cx: 771; --iw: 92; --ih: 80; --it: 0; --idx: -8; --tt: 16; --st: 26; }
.s-rsv__feature--4 { --cx: 992; --iw: 77; --ih: 79; --it: 5; --idx: 1.5; --tt: 14; --st: 25; }
.s-rsv__cta { margin-top: calc(81 * var(--p)); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-rsv__avail::before { top: calc(59 * var(--p)); }
  .s-rsv__wave { top: 0; height: calc(67 * var(--p)); }
  .s-rsv__deco { left: calc(24 * var(--p)); top: calc(10 * var(--p)); width: calc(100 * var(--p)); height: calc(36 * var(--p)); }
  .s-rsv__inner { padding: calc(80 * var(--p)) calc(33 * var(--p)) calc(36 * var(--p)); }
  .s-rsv__title { width: max-content; height: calc(56 * var(--p)); margin: 0 auto; padding: calc(12 * var(--p)) calc(22 * var(--p)) 0 calc(58 * var(--p)); font-size: calc(22 * var(--p)); line-height: calc(32 * var(--p)); }
  .s-rsv__title-icon { left: calc(20 * var(--p)); top: calc(11 * var(--p)); width: calc(32 * var(--p)); height: calc(32 * var(--p)); }
  .s-rsv__lead { margin-top: calc(16 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(22 * var(--p)); }
  .s-rsv__table-wrap { margin: calc(20 * var(--p)) calc(-8 * var(--p)) 0; overflow-x: auto; }
  .s-rsv__table th, .s-rsv__table td { width: calc(78 * var(--p)); height: calc(46 * var(--p)); padding-top: calc(7 * var(--p)); border-bottom-width: calc(6 * var(--p)); font-size: calc(12 * var(--p)); line-height: calc(26 * var(--p)); }
  .s-rsv__note { margin-top: calc(6 * var(--p)); padding: 0; font-size: calc(11 * var(--p)); line-height: calc(18 * var(--p)); text-align: left; white-space: normal; }
  .s-rsv__banner { height: calc(300 * var(--p)); }
  .s-rsv__banner-img { top: 0; height: 100%; object-position: 48% 50%; }
  .s-rsv__banner-inner { padding: calc(56 * var(--p)) calc(33 * var(--p)) 0; }
  .s-rsv__banner-title { font-size: calc(22 * var(--p)); line-height: calc(32 * var(--p)); }
  .s-rsv__banner-text { margin: calc(24 * var(--p)) 0 0; font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); white-space: normal; }
  .s-rsv__bottom { padding: calc(48 * var(--p)) calc(33 * var(--p)) calc(56 * var(--p)); }
  .s-rsv__features { display: grid; grid-template-columns: 1fr 1fr; row-gap: calc(32 * var(--p)); height: auto; }
  .s-rsv__feature { position: static; transform: none; }
  .s-rsv__feature img { width: calc(var(--iw) * .75 * var(--p)); height: calc(var(--ih) * .75 * var(--p)); margin: 0; }
  .s-rsv__feature-title, .s-rsv__feature--1 .s-rsv__feature-title { margin-top: calc(8 * var(--p)); font-size: calc(24 * var(--p)); line-height: calc(34 * var(--p)); }
  .s-rsv__feature-text { margin-top: calc(6 * var(--p)); font-size: calc(13 * var(--p)); }
  .s-rsv__cta { margin-top: calc(40 * var(--p)); }
}

/* ===== 14-director ===== */
/* 14 院長紹介 — Figma 78:151（1280×868） */
.s-dir { background: #fff; }
.s-dir__inner { padding: calc(126 * var(--p)) 0 calc(103 * var(--p)); }

.s-dir__title { position: relative; height: calc(131 * var(--p)); padding-left: calc(269 * var(--p)); color: var(--c-text); font-weight: 500; line-height: calc(46 * var(--p)); white-space: nowrap; }
.s-dir__title-sm { font-size: calc(40 * var(--p)); }
.s-dir__title-em { color: var(--c-green); font-size: calc(64 * var(--p)); font-weight: 700; }
.s-dir__slash { position: absolute; top: calc(20 * var(--p)); width: calc(35 * var(--p)); height: calc(35 * var(--p)); }
.s-dir__slash--back { left: calc(219 * var(--p)); }
.s-dir__slash--fwd { left: calc(1015 * var(--p)); }

.s-dir__card {
  position: relative; width: calc(1074 * var(--p)); height: calc(502 * var(--p)); margin-left: calc(121 * var(--p));
  background: var(--c-bg-3); box-shadow: 0 calc(4 * var(--p)) calc(36 * var(--p)) rgba(0, 0, 0, .25);
}
.s-dir__photo { position: absolute; left: calc(-41 * var(--p)); top: 0; width: calc(473 * var(--p)); height: 100%; overflow: hidden; }
.s-dir__photo img { position: absolute; left: -70.06%; top: -12.02%; width: 243.36%; height: 152.95%; max-width: none; }
.s-dir__name {
  position: absolute; left: calc(427 * var(--p)); top: calc(-2 * var(--p)); width: calc(647 * var(--p)); height: calc(128 * var(--p));
  padding: calc(25 * var(--p)) 0 0 calc(41 * var(--p)); background: var(--c-green); color: #fff; font-weight: 500; line-height: calc(38 * var(--p)); white-space: nowrap;
}
.s-dir__role { display: block; font-size: calc(15 * var(--p)); }
.s-dir__name-ja { font-size: calc(32 * var(--p)); }
.s-dir__name-kana { font-size: calc(20 * var(--p)); }
.s-dir__name { font-size: calc(24 * var(--p)); }
.s-dir__name-ja, .s-dir__name-kana { position: relative; top: calc(-5 * var(--p)); }

.s-dir__body { padding: calc(163 * var(--p)) 0 0 calc(468 * var(--p)); }
.s-dir__text { font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(46 * var(--p)); white-space: nowrap; }
.s-dir__text strong { color: var(--c-green); font-size: calc(20 * var(--p)); font-weight: 700; }
.s-dir__text-lg { font-size: calc(20 * var(--p)); }
.s-dir__tags { display: flex; gap: calc(14 * var(--p)); margin: calc(18 * var(--p)) 0 0 calc(-7 * var(--p)); }
.s-dir__tags li {
  width: calc(220 * var(--p)); height: calc(30 * var(--p)); padding-left: calc(12 * var(--p));
  border-radius: calc(20 * var(--p)); background: rgba(83, 157, 86, .1);
  font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(30 * var(--p)); white-space: nowrap;
}
.s-dir__tags li + li { padding-left: calc(14 * var(--p)); }
.s-dir__btn {
  width: calc(254 * var(--p)); margin: calc(25 * var(--p)) 0 0 calc(306 * var(--p));
  justify-content: flex-start; gap: calc(11 * var(--p)); padding-left: calc(21 * var(--p));
}
.s-dir__btn .c-btn-outline__icon { width: calc(16.268 * var(--p)); height: calc(16.268 * var(--p)); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-dir__inner { padding: calc(56 * var(--p)) calc(33 * var(--p)) calc(60 * var(--p)); }
  .s-dir__title { height: auto; padding: 0; line-height: calc(44 * var(--p)); text-align: center; }
  .s-dir__title-sm { font-size: calc(20 * var(--p)); }
  .s-dir__title-em { font-size: calc(32 * var(--p)); }
  .s-dir__slash { top: calc(10 * var(--p)); width: calc(24 * var(--p)); height: calc(24 * var(--p)); }
  .s-dir__slash--back { left: calc(20 * var(--p)); }
  .s-dir__slash--fwd { left: auto; right: calc(20 * var(--p)); top: calc(54 * var(--p)); }
  .s-dir__card { width: auto; height: auto; margin: calc(28 * var(--p)) 0 0; }
  .s-dir__photo { position: relative; left: 0; width: 100%; height: calc(300 * var(--p)); }
  .s-dir__photo img { position: static; width: 100%; height: 100%; object-fit: cover; object-position: 38% 30%; }
  .s-dir__name { position: static; width: auto; height: auto; padding: calc(14 * var(--p)) calc(20 * var(--p)); font-size: calc(18 * var(--p)); line-height: calc(32 * var(--p)); }
  .s-dir__role { font-size: calc(12 * var(--p)); line-height: calc(20 * var(--p)); }
  .s-dir__name-ja { font-size: calc(24 * var(--p)); }
  .s-dir__name-kana { font-size: calc(15 * var(--p)); }
  .s-dir__name-ja, .s-dir__name-kana { top: 0; }
  .s-dir__body { padding: calc(20 * var(--p)) calc(20 * var(--p)) calc(28 * var(--p)); }
  .s-dir__text { font-size: calc(14 * var(--p)); line-height: calc(28 * var(--p)); white-space: normal; }
  .s-dir__text strong, .s-dir__text-lg { font-size: calc(16 * var(--p)); }
  .s-dir__tags { flex-direction: column; align-items: flex-start; gap: calc(8 * var(--p)); margin: calc(16 * var(--p)) 0 0; }
  .s-dir__tags li, .s-dir__tags li + li { width: auto; height: calc(28 * var(--p)); padding: 0 calc(14 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(28 * var(--p)); }
  .s-dir__btn { width: 100%; margin: calc(20 * var(--p)) 0 0; justify-content: center; gap: calc(8 * var(--p)); padding-left: calc(18 * var(--p)); }
}

/* ===== 15-recommend ===== */
/* 15 推薦の声 — Figma 78:205（1280×1033） */
.s-recommend { background: var(--c-bg-3); padding-bottom: calc(60 * var(--p)); }
.s-recommend__head {
  height: calc(395 * var(--p));
  background: linear-gradient(163.04deg, rgba(233, 225, 191, .8) 15.429%, rgba(252, 251, 231, .8) 53.361%, rgba(214, 200, 152, .8) 84.902%);
}
.s-recommend__head-inner { height: 100%; padding-top: calc(93 * var(--p)); text-align: center; }
.s-recommend__eyebrow { color: var(--c-text); margin-left: calc(1 * var(--p)); }
.s-recommend__title {
  margin-top: calc(37 * var(--p));
  color: var(--c-gold-dark); font-weight: 500; font-size: calc(40 * var(--p)); line-height: calc(46 * var(--p));
}
.s-recommend__lead {
  margin: calc(64 * var(--p)) 0 0 calc(5 * var(--p));
  font-weight: 500; font-size: calc(20 * var(--p)); line-height: calc(32 * var(--p));
}
.s-recommend__laurel { position: absolute; top: calc(106 * var(--p)); width: calc(54 * var(--p)); height: calc(127 * var(--p)); }
.s-recommend__laurel--l { left: calc(301 * var(--p)); }
.s-recommend__laurel--r { left: calc(934 * var(--p)); }

/* cards */
.s-recommend__list { display: flex; gap: calc(37 * var(--p)); margin: calc(93 * var(--p)) 0 0 calc(85 * var(--p)); }
.s-recommend__card {
  display: flex; flex-direction: column;
  width: calc(345 * var(--p)); height: calc(359 * var(--p)); padding: 0 calc(33 * var(--p)) calc(30 * var(--p));
  border-radius: calc(30 * var(--p)); background: var(--c-bg-1);
  box-shadow: 0 calc(4 * var(--p)) calc(4 * var(--p)) rgba(0, 0, 0, .25);
}
.s-recommend__card-head { position: relative; flex: none; height: calc(148 * var(--p)); margin-inline: calc(-33 * var(--p)); }
.s-recommend__avatar {
  position: absolute; left: var(--av-x); top: var(--av-y);
  width: calc(98 * var(--p)); height: calc(98 * var(--p)); overflow: hidden; border-radius: 50%;
}
.s-recommend__avatar img { position: absolute; max-width: none; left: var(--im-x); top: var(--im-y); width: var(--im-w); height: var(--im-h); }
.s-recommend__card--1 { --av-x: calc(28 * var(--p)); --av-y: calc(35 * var(--p)); --im-x: 0px; --im-y: calc(-8.83 * var(--p)); --im-w: calc(124.887 * var(--p)); --im-h: calc(166.478 * var(--p)); --st-x: calc(149 * var(--p)); }
.s-recommend__card--2 { --av-x: calc(25 * var(--p)); --av-y: calc(28 * var(--p)); --im-x: calc(-301 * var(--p)); --im-y: 0px; --im-w: calc(430 * var(--p)); --im-h: calc(164 * var(--p)); --st-x: calc(152 * var(--p)); }
.s-recommend__card--3 { --av-x: calc(36 * var(--p)); --av-y: calc(28 * var(--p)); --im-x: calc(-121.962 * var(--p)); --im-y: calc(0.574 * var(--p)); --im-w: calc(293.857 * var(--p)); --im-h: calc(196.143 * var(--p)); --st-x: calc(151 * var(--p)); padding-bottom: calc(35 * var(--p)); }
.s-recommend__stars { position: absolute; left: var(--st-x); top: calc(73 * var(--p)); display: flex; gap: calc(8 * var(--p)); }
.s-recommend__stars img { width: calc(24 * var(--p)); height: calc(24 * var(--p)); }
.s-recommend__text { flex: 1; font-weight: 500; font-size: calc(14 * var(--p)); line-height: calc(32 * var(--p)); }
.s-recommend__text strong { font-weight: 700; color: var(--c-green); }
.s-recommend__role { color: var(--c-gray); font-weight: 500; font-size: calc(14 * var(--p)); line-height: calc(32 * var(--p)); }
.s-recommend__name { color: var(--c-green); font-weight: 700; font-size: calc(24 * var(--p)); line-height: calc(32 * var(--p)); }
.s-recommend__note {
  margin-top: calc(94 * var(--p)); padding-left: calc(46 * var(--p)); text-align: center;
  color: var(--c-gray); font-weight: 500; font-size: calc(14 * var(--p)); line-height: calc(32 * var(--p));
}

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-recommend { padding-bottom: calc(40 * var(--p)); }
  .s-recommend__head { height: auto; padding-bottom: calc(40 * var(--p)); }
  .s-recommend__head-inner { padding: calc(48 * var(--p)) calc(33 * var(--p)) 0; }
  .s-recommend__eyebrow { margin: 0; }
  .s-recommend__title { margin-top: calc(16 * var(--p)); font-size: calc(24 * var(--p)); line-height: calc(34 * var(--p)); }
  .s-recommend__lead { margin: calc(28 * var(--p)) 0 0; font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); }
  .s-recommend__lead br { display: none; }
  .s-recommend__laurel { top: calc(60 * var(--p)); width: calc(38 * var(--p)); height: calc(89 * var(--p)); }
  .s-recommend__laurel--l { left: calc(33 * var(--p)); }
  .s-recommend__laurel--r { left: auto; right: calc(33 * var(--p)); }
  .s-recommend__list { flex-direction: column; gap: calc(20 * var(--p)); margin: calc(40 * var(--p)) calc(33 * var(--p)) 0; }
  .s-recommend__card { width: 100%; height: auto; padding: 0 calc(28 * var(--p)) calc(24 * var(--p)); border-radius: calc(20 * var(--p)); }
  .s-recommend__card--3 { padding-bottom: calc(24 * var(--p)); }
  .s-recommend__card-head { height: calc(124 * var(--p)); margin-inline: calc(-28 * var(--p)); }
  .s-recommend__card { --av-x: calc(24 * var(--p)) !important; --av-y: calc(24 * var(--p)) !important; --st-x: calc(142 * var(--p)) !important; }
  .s-recommend__stars { top: calc(61 * var(--p)); }
  .s-recommend__text { margin-bottom: calc(12 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(28 * var(--p)); }
  .s-recommend__role { font-size: calc(12 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-recommend__name { font-size: calc(18 * var(--p)); line-height: calc(28 * var(--p)); }
  .s-recommend__note { margin: calc(32 * var(--p)) calc(33 * var(--p)) 0; padding: 0; text-align: left; font-size: calc(12 * var(--p)); line-height: calc(22 * var(--p)); }
}

/* ===== 16-media ===== */
/* 16 メディア — Figma 79:242（1278×948） */
.s-media { background: #fff; }
.s-media__inner { padding: calc(110 * var(--p)) 0 calc(99 * var(--p)); }
.s-media__band {
  position: absolute; top: calc(79 * var(--p)); height: calc(191 * var(--p));
  left: min(calc(-58 * var(--p)), calc(640 * var(--p) - 50vw)); right: calc(607 * var(--p));
  border-radius: calc(40 * var(--p)); background: var(--c-green);
}
.s-media__head { position: relative; margin-left: calc(130 * var(--p)); color: #fff; }
.s-media__title { margin: calc(12 * var(--p)) 0 0 calc(-0.5 * var(--p)); font-weight: 500; font-size: calc(40 * var(--p)); line-height: calc(46 * var(--p)); }

.s-media__intro { margin: calc(114 * var(--p)) 0 0 calc(144.5 * var(--p)); font-weight: 500; font-size: calc(16 * var(--p)); line-height: calc(32 * var(--p)); white-space: nowrap; }
.s-media__intro-2 { margin: calc(13 * var(--p)) 0 0 calc(-8 * var(--p)); font-size: calc(32 * var(--p)); }
.s-media__intro-2 strong { font-weight: 700; color: var(--c-green); }
.s-media__intro-3 { margin-top: calc(24 * var(--p)); }

.s-media__books {
  position: absolute; z-index: 2; left: calc(513 * var(--p)); top: calc(175 * var(--p));
  width: calc(729 * var(--p)); height: calc(443 * var(--p)); max-width: none;
  filter: drop-shadow(0 calc(4 * var(--p)) calc(20 * var(--p)) rgba(0, 0, 0, .25));
}
.s-media__box {
  width: calc(915 * var(--p)); height: calc(212 * var(--p)); margin: calc(71 * var(--p)) 0 0 calc(194 * var(--p));
  padding: calc(61 * var(--p)) 0 0 calc(114 * var(--p));
  background: var(--c-pale-1); font-weight: 500; font-size: calc(20 * var(--p)); line-height: calc(32 * var(--p)); white-space: nowrap;
}
.s-media__box strong { font-weight: 700; color: var(--c-green); }
.s-media__note {
  margin-top: calc(24 * var(--p)); padding-left: calc(42 * var(--p)); text-align: center;
  color: var(--c-gray); font-weight: 500; font-size: calc(14 * var(--p)); line-height: calc(32 * var(--p)); white-space: nowrap;
}

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-media__inner { padding: calc(64 * var(--p)) calc(33 * var(--p)) calc(50 * var(--p)); }
  .s-media__band { top: calc(40 * var(--p)); height: calc(132 * var(--p)); left: calc(-40 * var(--p)); right: calc(92 * var(--p)); border-radius: calc(24 * var(--p)); }
  .s-media__head { margin-left: 0; }
  .s-media__title { margin: calc(6 * var(--p)) 0 0; font-size: calc(24 * var(--p)); line-height: calc(32 * var(--p)); }
  .s-media__intro { margin: calc(48 * var(--p)) 0 0; font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); white-space: normal; }
  .s-media__intro-2 { margin: calc(6 * var(--p)) 0 0; font-size: calc(20 * var(--p)); line-height: calc(30 * var(--p)); }
  .s-media__intro-3 { margin-top: calc(8 * var(--p)); }
  .s-media__books { position: relative; left: auto; top: auto; width: 100%; height: auto; margin-top: calc(20 * var(--p)); }
  .s-media__box { width: auto; height: auto; margin: calc(-24 * var(--p)) calc(-33 * var(--p)) 0; padding: calc(48 * var(--p)) calc(33 * var(--p)) calc(28 * var(--p)); font-size: calc(16 * var(--p)); line-height: calc(28 * var(--p)); white-space: normal; }
  .s-media__box br { display: none; }
  .s-media__note { margin-top: calc(16 * var(--p)); padding: 0; text-align: left; font-size: calc(12 * var(--p)); line-height: calc(22 * var(--p)); white-space: normal; }
}

/* ===== 17-symptoms ===== */
/* 17 対応しているお悩み — Figma 81:63（1280×1056） */
.s-symptoms { background: var(--c-pale-1); }
.s-symptoms__inner { padding: calc(88 * var(--p)) 0 calc(67 * var(--p)); }
.s-symptoms__head { display: flex; align-items: flex-start; }
.s-symptoms__bubble {
  position: relative; flex: none; width: calc(467 * var(--p)); height: calc(164 * var(--p)); margin-left: calc(173 * var(--p));
  padding-top: calc(22 * var(--p)); color: #fff;
}
.s-symptoms__bubble-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.s-symptoms__eyebrow { position: relative; margin-left: calc(55 * var(--p)); }
.s-symptoms__title {
  position: relative; margin: calc(0 * var(--p)) 0 0 calc(38 * var(--p)); width: calc(397 * var(--p)); text-align: center;
  font-weight: 700; font-size: calc(36 * var(--p)); line-height: calc(46 * var(--p));
}
.s-symptoms__desc {
  margin: calc(35 * var(--p)) 0 0 calc(81 * var(--p)); width: calc(324 * var(--p)); text-align: center; white-space: nowrap;
  font-weight: 500; font-size: calc(20 * var(--p)); line-height: calc(32 * var(--p));
}

/* tiles: 表示カード 198 幅。画像は影・余白込み PNG を Figma の枠どおりにはみ出して配置 */
.s-symptoms__list {
  --k: 1;
  display: grid; grid-template-columns: repeat(5, calc(198 * var(--p))); grid-template-rows: calc(277 * var(--p)) calc(264 * var(--p));
  column-gap: calc(29 * var(--p)); row-gap: calc(18 * var(--p));
  margin: calc(67 * var(--p)) 0 0 calc(88 * var(--p));
}
.s-symptoms__list > li { display: block; }
.s-symptoms__tile {
  position: relative; display: block; height: 100%; border-radius: calc(20 * var(--p));
  transition: transform var(--t);
}
.s-symptoms__img {
  position: absolute; max-width: none;
  left: calc(var(--ix) * var(--k) * var(--p)); top: calc(var(--iy) * var(--k) * var(--p));
  width: calc(var(--iw) * var(--k) * var(--p)); height: calc(var(--ih) * var(--k) * var(--p));
  transition: filter var(--t);
}
.s-symptoms__label {
  position: absolute; left: 0; right: 0; top: calc((var(--lt) - 3) * var(--k) * var(--p));
  color: #fff; text-align: center; white-space: nowrap;
  font-family: var(--ff-sen); font-weight: 500; font-size: calc(32 * var(--p)); line-height: calc(40 * var(--p));
  text-shadow: 0 calc(4 * var(--p)) calc(4 * var(--p)) rgba(0, 0, 0, .8);
}
.s-symptoms__label-sm { font-size: calc(29 * var(--p)); }
.s-symptoms__tile:hover { transform: translateY(calc(-6 * var(--p))); }
.s-symptoms__tile:hover .s-symptoms__img { filter: brightness(1.1) saturate(1.1); }
.s-symptoms__tile:focus-visible { outline-offset: calc(4 * var(--p)); }

.s-symptoms__more { margin-top: calc(65 * var(--p)); text-align: center; }
.s-symptoms__btn { width: calc(324 * var(--p)); gap: calc(20 * var(--p)); margin-left: calc(-2 * var(--p)); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-symptoms__inner { padding: calc(44 * var(--p)) calc(33 * var(--p)) calc(40 * var(--p)); }
  .s-symptoms__head { flex-direction: column; align-items: center; }
  .s-symptoms__bubble { width: calc(280 * var(--p)); height: calc(98 * var(--p)); margin: 0; padding-top: calc(12 * var(--p)); }
  .s-symptoms__eyebrow { margin-left: calc(34 * var(--p)); }
  .s-symptoms__title { width: 100%; margin: calc(-2 * var(--p)) 0 0; font-size: calc(22 * var(--p)); line-height: calc(34 * var(--p)); }
  .s-symptoms__desc { width: auto; margin: calc(12 * var(--p)) 0 0; font-size: calc(14 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-symptoms__list {
    --k: 0.808;
    grid-template-columns: repeat(2, calc(160 * var(--p))); grid-template-rows: none; grid-auto-rows: calc(218 * var(--p));
    column-gap: calc(16 * var(--p)); row-gap: calc(16 * var(--p)); margin: calc(28 * var(--p)) 0 0;
  }
  .s-symptoms__tile { border-radius: calc(16 * var(--p)); }
  .s-symptoms__label { top: 50%; transform: translateY(-50%); font-size: calc(20 * var(--p)); line-height: 1.3; }
  .s-symptoms__label-sm { font-size: calc(18 * var(--p)); }
  .s-symptoms__more { margin-top: calc(32 * var(--p)); }
  .s-symptoms__btn { width: 100%; gap: calc(10 * var(--p)); margin: 0; }
}

/* ===== 18-graduation ===== */
/* 18 卒業までの流れ — Figma 81:70（1280×1874） */
.s-graduation { background: var(--c-bg-2); }
.s-graduation__inner { padding: calc(109 * var(--p)) 0 calc(110 * var(--p)); }
.s-graduation__band {
  position: absolute; top: calc(64 * var(--p)); height: calc(136 * var(--p));
  left: min(calc(-61 * var(--p)), calc(640 * var(--p) - 50vw)); right: calc(613 * var(--p));
  border-radius: calc(40 * var(--p)); background: var(--c-green);
}
.s-graduation__title {
  position: relative; width: calc(541 * var(--p)); margin-left: calc(107 * var(--p)); text-align: center;
  color: #fff; font-weight: 700; font-size: calc(40 * var(--p)); line-height: calc(46 * var(--p)); white-space: nowrap;
}

/* visual: 写真円・白円・矢印・ラベルの重なり（Figma y=235 起点） */
.s-graduation__visual { position: relative; height: calc(710.5 * var(--p)); margin-top: calc(80 * var(--p)); }
.s-graduation__photo { position: absolute; left: calc(152.5 * var(--p)); top: calc(19.5 * var(--p)); width: calc(691 * var(--p)); height: calc(691 * var(--p)); }
.s-graduation__bubble { position: absolute; z-index: 1; left: calc(711 * var(--p)); top: 0; width: calc(381 * var(--p)); height: calc(381 * var(--p)); }
.s-graduation__bubble-bg { position: absolute; inset: 0; width: 100%; height: 100%; filter: drop-shadow(calc(2 * var(--p)) calc(4 * var(--p)) calc(16 * var(--p)) rgba(0, 0, 0, .2)); }
.s-graduation__catch { position: relative; padding-top: calc(55 * var(--p)); text-align: center; white-space: nowrap; }
.s-graduation__catch-lead { display: block; margin-left: calc(1 * var(--p)); font-weight: 500; font-size: calc(24 * var(--p)); line-height: calc(32 * var(--p)); }
.s-graduation__catch-main { display: block; color: var(--c-green); font-weight: 700; font-size: calc(48 * var(--p)); line-height: calc(70 * var(--p)); }
.s-graduation__m, .s-graduation__s { line-height: 1; }
.s-graduation__l { font-size: calc(48 * var(--p)); }
.s-graduation__m { font-size: calc(36 * var(--p)); }
.s-graduation__s { font-size: calc(32 * var(--p)); }
.s-graduation__arrow {
  position: absolute; left: calc(849 * var(--p)); top: calc(356 * var(--p));
  display: flex; align-items: center; justify-content: center; width: calc(189.951 * var(--p)); height: calc(189.951 * var(--p));
}
.s-graduation__arrow img { flex: none; width: calc(174.931 * var(--p)); height: calc(174.931 * var(--p)); transform: rotate(84.84deg); }
.s-graduation__therefore { position: absolute; left: calc(902 * var(--p)); top: calc(435 * var(--p)); font-weight: 500; font-size: calc(32 * var(--p)); line-height: calc(32 * var(--p)); white-space: nowrap; }
.s-graduation__goal { position: absolute; left: calc(693 * var(--p)); top: calc(521 * var(--p)); width: calc(462 * var(--p)); }
.s-graduation__goal-label {
  display: block; height: calc(64 * var(--p)); padding: calc(16 * var(--p)) 0 0 calc(20 * var(--p));
  background: var(--c-green); color: #fff; font-weight: 700; font-size: calc(24 * var(--p)); line-height: calc(32 * var(--p)); white-space: nowrap;
}
.s-graduation__goal-tail { display: block; margin: calc(9 * var(--p)) 0 0 calc(322 * var(--p)); font-weight: 500; font-size: calc(20 * var(--p)); line-height: calc(32 * var(--p)); white-space: nowrap; }

.s-graduation__graph { width: calc(942 * var(--p)); height: calc(565 * var(--p)); margin: calc(93.5 * var(--p)) auto 0; }
.s-graduation__summary {
  margin-top: calc(64 * var(--p)); padding-left: calc(24 * var(--p)); text-align: center;
  font-weight: 500; font-size: calc(16 * var(--p)); line-height: calc(32 * var(--p)); white-space: nowrap;
}
.s-graduation__summary strong { font-weight: 700; color: var(--c-green); }

/* ---------- SP ---------- */
@media (max-width: 767px) {
  .s-graduation__inner { padding: calc(56 * var(--p)) 0 calc(56 * var(--p)); }
  .s-graduation__band { top: calc(36 * var(--p)); height: calc(72 * var(--p)); left: calc(-40 * var(--p)); right: calc(52 * var(--p)); border-radius: calc(24 * var(--p)); }
  .s-graduation__title { width: auto; margin-left: calc(33 * var(--p)); text-align: left; font-size: calc(24 * var(--p)); line-height: calc(32 * var(--p)); }
  .s-graduation__visual { height: calc(490 * var(--p)); margin-top: calc(40 * var(--p)); }
  .s-graduation__photo { left: calc(8 * var(--p)); top: calc(118 * var(--p)); width: calc(300 * var(--p)); height: calc(300 * var(--p)); }
  .s-graduation__bubble { left: calc(150 * var(--p)); width: calc(230 * var(--p)); height: calc(230 * var(--p)); }
  .s-graduation__catch { padding-top: calc(33 * var(--p)); }
  .s-graduation__catch-lead { margin: 0; font-size: calc(15 * var(--p)); line-height: calc(20 * var(--p)); }
  .s-graduation__catch-main { font-size: calc(29 * var(--p)); line-height: calc(42 * var(--p)); }
  .s-graduation__l { font-size: calc(29 * var(--p)); }
  .s-graduation__m { font-size: calc(22 * var(--p)); }
  .s-graduation__s { font-size: calc(19 * var(--p)); }
  .s-graduation__arrow { left: calc(240 * var(--p)); top: calc(222 * var(--p)); width: calc(115 * var(--p)); height: calc(115 * var(--p)); }
  .s-graduation__arrow img { width: calc(106 * var(--p)); height: calc(106 * var(--p)); }
  .s-graduation__therefore { left: calc(270 * var(--p)); top: calc(270 * var(--p)); font-size: calc(20 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-graduation__goal { left: calc(33 * var(--p)); top: calc(400 * var(--p)); width: calc(336 * var(--p)); }
  .s-graduation__goal-label { height: calc(44 * var(--p)); padding: calc(6 * var(--p)) 0 0 calc(14 * var(--p)); font-size: calc(16 * var(--p)); }
  .s-graduation__goal-tail { margin: calc(6 * var(--p)) 0 0; text-align: right; font-size: calc(16 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-graduation__graph { width: calc(336 * var(--p)); height: auto; margin-top: calc(32 * var(--p)); }
  .s-graduation__summary { margin: calc(28 * var(--p)) calc(33 * var(--p)) 0; padding: 0; text-align: left; font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); white-space: normal; }
  .s-graduation__summary br { display: none; }
}

/* ===== 19-inner ===== */
/* 19 身体の内側からも — Figma 204:48（Group, 1280x334）。最前面に rgba(83,157,86,.2) の緑オーバーレイ (81:73) */
.s-inner { position: relative; height: calc(334 * var(--p)); overflow: hidden; background: #fff; }
.s-inner::after { content: ""; position: absolute; inset: 0; z-index: 2; background: rgba(83, 157, 86, .2); pointer-events: none; }
/* 写真: 495x334 に切り抜き（1280超では左端まで伸ばす） */
.s-inner__photo {
  position: absolute; top: 0; bottom: 0;
  left: min(0px, calc(50% - 640 * var(--p)));
  right: calc(50% + 145 * var(--p));
  overflow: hidden;
}
.s-inner__photo img {
  /* 写真差し替え（2026-09-30 支給の横長写真 1536x1024）: 枠いっぱいに全体を表示 */
  position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: 50% 50%;
}
.s-inner__inner { z-index: 1; height: 100%; }
.s-inner__body { padding: calc(72 * var(--p)) 0 0 calc(555 * var(--p)); }
.s-inner__title { color: var(--c-green); font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(46 * var(--p)); }
.s-inner__text { width: calc(625 * var(--p)); margin-top: calc(20 * var(--p)); font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(46 * var(--p)); }
.s-inner__text strong { color: var(--c-green); font-weight: 700; }

@media (max-width: 767px) {
  .s-inner { height: auto; }
  .s-inner__photo { position: relative; left: auto; right: auto; width: 100%; height: calc(260 * var(--p)); }
  .s-inner__inner { height: auto; }
  .s-inner__body { padding: calc(32 * var(--p)) calc(33 * var(--p)) calc(40 * var(--p)); }
  .s-inner__title { font-size: calc(22 * var(--p)); line-height: calc(34 * var(--p)); }
  .s-inner__text { width: auto; margin-top: calc(14 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(26 * var(--p)); }
}

/* ===== 20-faq ===== */
/* 20 FAQ — Figma 81:76（1280x1638, bg #FAFBFA）。Figma は全項目「開」状態（−）。初期は閉（＋）: common.js アコーディオン */
.s-faq { background: var(--c-bg-3); }
.s-faq__inner { padding: calc(79 * var(--p)) calc(85 * var(--p)) calc(141 * var(--p)); }
.s-faq__eyebrow { text-align: center; }
/* Figma 上で見出し中心が +34px 右（81:79 left: calc(50%+34px)） */
.s-faq__title { margin-top: calc(58 * var(--p)); padding-left: calc(68 * var(--p)); color: var(--c-green); font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(46 * var(--p)); text-align: center; }
.s-faq__list { display: flex; flex-direction: column; gap: calc(23 * var(--p)); margin-top: calc(87 * var(--p)); }
.s-faq__item:nth-child(4) { margin-top: calc(4 * var(--p)); }
.s-faq__item { background: #fff; box-shadow: 0 calc(4 * var(--p)) calc(4 * var(--p)) rgba(0, 0, 0, .2); }

.s-faq__q {
  display: flex; align-items: center; width: 100%;
  padding: calc(27 * var(--p)) calc(40 * var(--p)) calc(27 * var(--p)) calc(38 * var(--p));
  text-align: left; transition: background-color var(--t);
}
.s-faq__q:hover { background: var(--c-pale-1); }
.s-faq__q:focus-visible { outline-offset: -2px; }
.s-faq__item.is-open .s-faq__q { padding-bottom: 0; }
.s-faq__mark {
  display: flex; align-items: center; justify-content: center; flex: none;
  width: calc(46 * var(--p)); height: calc(46 * var(--p)); border-radius: 50%;
  background: var(--c-green); color: #fff;
  font-size: calc(24 * var(--p)); font-weight: 900; line-height: calc(32 * var(--p));
}
.s-faq__mark--a { background: rgba(83, 157, 86, .5); }
.s-faq__q-text { flex: 1; margin: calc(2 * var(--p)) 0 0 calc(28 * var(--p)); font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
/* アイコン: Figma ant-design:minus-outlined。閉時は同じ線を90°回転して重ねた「＋」 */
.s-faq__icon {
  position: relative; flex: none;
  width: calc(32 * var(--p)); height: calc(32 * var(--p)); margin: 0 0 0 calc(14 * var(--p));
  font-size: 0; color: transparent;
}
.s-faq__icon::before, .s-faq__icon::after {
  content: ""; position: absolute; inset: 0;
  background: url(/assets/img/top/20-faq-minus.svg) center / 100% 100% no-repeat;
  transition: transform var(--t), opacity var(--t);
}
.s-faq__icon::after { transform: rotate(90deg); }
/* 開: Figma 位置（Q円上端 +13） / 閉: 行の縦中央 */
.s-faq__item.is-open .s-faq__icon { align-self: flex-start; margin-top: calc(13 * var(--p)); }
.s-faq__item.is-open .s-faq__icon::after { transform: rotate(0deg); opacity: 0; }

.s-faq__a { display: flex; align-items: flex-start; padding: calc(15 * var(--p)) calc(86 * var(--p)) calc(32 * var(--p)) calc(38 * var(--p)); }
.s-faq__a[hidden] { display: none; }
/* Figma のカード高さ差（1枚目 200 / 6枚目 163）に合わせる */
.s-faq__item.is-open:first-child .s-faq__q { padding-top: calc(35 * var(--p)); }
.s-faq__item:first-child .s-faq__a { padding-top: calc(10 * var(--p)); padding-bottom: calc(27 * var(--p)); }
.s-faq__item:first-child .s-faq__a-text { margin-top: calc(7 * var(--p)); }
.s-faq__item:last-child .s-faq__a { padding-bottom: calc(29 * var(--p)); }
.s-faq__a-text { flex: 1; margin: calc(3 * var(--p)) 0 calc(11 * var(--p)) calc(28 * var(--p)); font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }

@media (max-width: 767px) {
  .s-faq__inner { padding: calc(40 * var(--p)) calc(33 * var(--p)) calc(70 * var(--p)); }
  .s-faq__title { margin-top: calc(16 * var(--p)); padding-left: 0; font-size: calc(22 * var(--p)); line-height: calc(34 * var(--p)); }
  .s-faq__list { gap: calc(12 * var(--p)); margin-top: calc(28 * var(--p)); }
  .s-faq__item:nth-child(4) { margin-top: 0; }
  .s-faq__q { padding: calc(14 * var(--p)) calc(12 * var(--p)) calc(14 * var(--p)) calc(14 * var(--p)); }
  .s-faq__mark { width: calc(32 * var(--p)); height: calc(32 * var(--p)); font-size: calc(18 * var(--p)); line-height: 1; }
  .s-faq__q-text { margin: 0 0 0 calc(10 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(22 * var(--p)); }
  .s-faq__icon, .s-faq__item.is-open .s-faq__icon { align-self: center; width: calc(24 * var(--p)); height: calc(24 * var(--p)); margin: 0 0 0 calc(8 * var(--p)); }
  .s-faq__item.is-open:first-child .s-faq__q { padding-top: calc(14 * var(--p)); }
  .s-faq__item:first-child .s-faq__a-text { margin-top: calc(4 * var(--p)); }
  .s-faq__a, .s-faq__item:first-child .s-faq__a, .s-faq__item:last-child .s-faq__a { padding: calc(10 * var(--p)) calc(14 * var(--p)) calc(18 * var(--p)); }
  .s-faq__a-text { margin: calc(4 * var(--p)) 0 0 calc(10 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(24 * var(--p)); }
  .s-faq__a-text br { display: none; }
}

/* ===== 21-price2 ===== */
/* 21 料金・全額返金保証（FAQ 下の再掲）— Figma 204:49（1280×1403）。マークアップ・CSS は 12 を再利用し差分のみ */
.s-price--2 { background: #E7EBE3; } /* Figma: rgba(205,218,195,.34) を Figma 表示色で不透明化 */
.s-price--2 .s-price__inner { padding: calc(93 * var(--p)) 0 calc(157 * var(--p)); }
.s-price--2 .s-price__card { margin-top: calc(136 * var(--p)); }
@media (max-width: 767px) {
  .s-price--2 .s-price__inner { padding: calc(48 * var(--p)) calc(33 * var(--p)) calc(64 * var(--p)); }
  .s-price--2 .s-price__card { margin-top: calc(60 * var(--p)); }
  .s-price--2 .s-price__band { padding-left: calc(20 * var(--p)); }
}

/* ===== 22-cta ===== */
/* 22 CTA — Figma 84:215（1280x625）。背景写真 image 9 は 1024x683 の画像を 1280x699 に引き伸ばして top 0 に配置（下 74px が切れる）。
   1280 超は同じ比率(1280:699)のまま幅いっぱいに拡大 */
.s-cta { position: relative; overflow: hidden; color: #fff; }
.s-cta__bg { position: absolute; left: 0; right: 0; top: 0; aspect-ratio: 1280 / 699; }
.s-cta__bg img { width: 100%; height: 100%; max-width: none; object-fit: fill; }
.s-cta__inner { z-index: 1; padding: calc(139 * var(--p)) 0 calc(114 * var(--p)); text-align: center; }
.s-cta__sub, .s-cta__title { text-shadow: 0 calc(4 * var(--p)) calc(4 * var(--p)) rgba(0, 0, 0, .25); }
/* Figma 上の中心 x: sub 664 / title 661.5 */
.s-cta__sub { padding-left: calc(48 * var(--p)); font-size: calc(20 * var(--p)); font-weight: 700; line-height: calc(60 * var(--p)); white-space: nowrap; }
.s-cta__title { margin-top: calc(22 * var(--p)); padding-left: calc(43 * var(--p)); font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(60 * var(--p)); }
/* Figma: WEB予約 left 85（.c-cta3 中央寄せ 87.5 から 2.5 左へ） */
.s-cta__btns { margin-top: calc(84 * var(--p)); padding-right: calc(5 * var(--p)); }

@media (max-width: 767px) {
  .s-cta__bg { bottom: 0; aspect-ratio: auto; }
  .s-cta__bg img { object-fit: cover; object-position: 60% 50%; }
  .s-cta__inner { padding: calc(56 * var(--p)) calc(33 * var(--p)) calc(60 * var(--p)); }
  .s-cta__sub { padding-left: 0; font-size: calc(15 * var(--p)); line-height: calc(26 * var(--p)); }
  .s-cta__title { margin-top: calc(14 * var(--p)); padding-left: 0; font-size: calc(22 * var(--p)); line-height: calc(36 * var(--p)); }
  .s-cta__btns { margin-top: calc(32 * var(--p)); padding-right: 0; }
}
