@charset "UTF-8";
/*
 * Config
 */
/*
 * Color
 */
/*
 * Media Break
 */
/*
 * Fonts
 */
@import url("https://fonts.googleapis.com/css2?family=Barlow:wght@600&family=Noto+Sans+JP:wght@300;350;400;500;700;900&family=Noto+Serif+JP:wght@400;500;700;900&display=swap");

@media screen and (min-width: 769px) {
  html {
    font-size: 0.685vw;
  }
}

@media (min-width: 1600px) {
  html {
    font-size: 62.5%;
  }
}

@media (max-width: 768px) {
  html {
    font-size: 10px;
  }
}

@media (max-width: 500px) {
  html {
    font-size: 10px;
  }
}

/*
 * BEM関連
 */
/*
 * clearfix
 */
/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs
*/
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

ul li,
ol li {
  list-style: none;
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  margin-top: 0 !important;
}

html,
body {
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  line-height: 1.4;
  font-weight: 400;
  width: 100%;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

body {
  color: #333;
  background-color: #fff;
  -webkit-text-size-adjust: 100%;
  -webkit-overflow-scrolling: touch;
  overflow: hidden;
  background-size: 100%;
  position: relative;
  text-align: unset !important;
  font-size: 1.4rem;
  min-height: 100vh;
}

@media (min-width: 561px) {
  body {
    font-size: 1.6rem;
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: normal;
}

img {
  max-width: 100%;
  vertical-align: bottom;
}

header,
nav,
main,
footer,
small,
button,
label {
  display: block;
}

a {
  text-decoration: none !important;
  cursor: pointer;
  color: #333;
}

a:hover,
a:active,
button:hover,
button:active {
  color: inherit;
  outline: 0;
  text-decoration: none;
}

input,
button,
textarea,
select {
  margin: 0;
  padding: 0;
  border-radius: 0;
}

a:hover,
a:active {
  outline: 0;
  opacity: 0.8;
  text-decoration: none;
}

::-webkit-input-placeholder {
  color: #a5a5a5;
}

:-ms-input-placeholder {
  color: #a5a5a5;
}

::-moz-placeholder {
  color: #a5a5a5;
}

::-placeholder {
  color: #a5a5a5;
}

input[type="checkbox"] {
  cursor: pointer;
}

select {
  cursor: pointer;
}

.cf:after {
  clear: both;
  content: "";
  display: block;
}

.text_indent {
  padding-left: 1em;
  text-indent: -1em;
}

.is-or {
  color: #de645d;
}

.is-serif {
  font-family: "Noto Serif JP", serif !important;
}

.sponly {
  display: block;
}

@media (min-width: 561px) {
  .sponly {
    display: none;
  }
}

.pconly {
  display: none;
}

@media (min-width: 561px) {
  .pconly {
    display: block;
  }
}

.wrapper {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
}

.inner {
  width: 100%;
  padding-left: 20px;
  padding-right: 20px;
  max-width: 1090px;
  margin: 0 auto;
}

@-webkit-keyframes FadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes FadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@-webkit-keyframes FadeInY {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes FadeInY {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@-webkit-keyframes FadeInX {
  0% {
    opacity: 0;
    transform: translateX(40px);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes FadeInX {
  0% {
    opacity: 0;
    transform: translateX(40px);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.is-fadeAutoin-no-transform {
  transition: opacity 0.6s ease;
  opacity: 0;
}

.is-fadeAutoin-no-transform.is-play {
  opacity: 1;
}

.is-fadein {
  transition:
    opacity 0.6s ease,
    transform 0.6s ease !important;
  opacity: 0;
}

.is-fadein.is-play {
  opacity: 1;
}

.is-fade-y {
  transition:
    opacity 0.6s ease,
    transform 0.6s ease !important;
  opacity: 0;
  transform: translateY(50px);
}

.is-fade-y.is-play {
  opacity: 1;
  transform: translateY(0);
}

.is-fade-x {
  transition:
    opacity 0.6s ease,
    transform 0.6s ease !important;
  opacity: 0;
  transform: translateX(50px);
}

.is-fade-x.is-play {
  opacity: 1;
  transform: translateX(0);
}

.is-fade-x-rev {
  transition:
    opacity 0.6s ease,
    transform 0.6s ease !important;
  opacity: 0;
  transform: translateX(-50px);
}

.is-fade-x-rev.is-play {
  opacity: 1;
  transform: translateX(0);
}

.is-fadeAutoin {
  opacity: 0;
  -webkit-animation: FadeIn 0.6s ease;
  animation: FadeIn 0.6s ease;
  animation-fill-mode: forwards;
}

.is-fadeAuto-y {
  opacity: 0;
  -webkit-animation: FadeInY 0.6s ease;
  animation: FadeInY 0.6s ease;
  animation-fill-mode: forwards;
}

.is-fadeAuto-x {
  opacity: 0;
  -webkit-animation: FadeInX 0.6s ease;
  animation: FadeInX 0.6s ease;
  animation-fill-mode: forwards;
}

.is-fadeAuto-x-rev {
  opacity: 0;
  -webkit-animation: FadeInXrev 0.6s ease;
  animation: FadeInXrev 0.6s ease;
  animation-fill-mode: forwards;
}

.is-delay.delay-1 {
  transition-delay: 0.6s !important;
}

.is-delay.delay-2 {
  transition-delay: 0.6s !important;
}

.is-delay.delay-3 {
  transition-delay: 0.9s !important;
}

.is-delay.delay-4 {
  transition-delay: 1.2s !important;
}

/* anim-delay */
.is-animdelay.delay-1 {
  animation-delay: 1s !important;
}

.is-animdelay.delay-2 {
  animation-delay: 1.5s !important;
}

.is-animdelay.delay-3 {
  animation-delay: 2s !important;
}

.is-animdelay.delay-4 {
  animation-delay: 2.5s !important;
}

.btn {
  cursor: pointer;
  border: none;
  display: flex;
  align-items: center !important;
  justify-content: center;
  text-align: center;
  transition: opacity 0.5s;
}

.btn:hover {
  opacity: 0.9;
}

.service__hd {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.service__hd h1 {
  padding-left: 20px;
}

.service__hd h1 img {
  display: block;
  width: 96px;
  height: 36px;
  object-fit: contain;
}

/* ヘッダー店舗名（カンプSP: 15px Noto Serif JP / ロゴ下） */
.service__hd-store {
  display: block;
  margin-top: 10px;
  color: #333;
  font-size: clamp(15px, calc(20 / 1920 * 100vw), 20px);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1;
}

@media (min-width: 769px) {
  .service__hd h1 {
    align-items: flex-start;
    display: flex;
    gap: clamp(12px, calc(19 / 1920 * 100vw), 19px);
    margin-bottom: 0;
    padding: clamp(20px, calc(39 / 1920 * 100vw), 39px) 0 0
      clamp(32px, calc(67 / 1920 * 100vw), 67px);
  }

  .service__hd h1 img {
    height: clamp(48px, calc(74 / 1920 * 100vw), 74px);
    width: clamp(128px, calc(198 / 1920 * 100vw), 198px);
  }

  .service__hd-store {
    font-size: clamp(18px, calc(26 / 1920 * 100vw), 26px);
    letter-spacing: 0;
    margin-top: clamp(18px, calc(37 / 1920 * 100vw), 37px);
  }

  .service__hd .btn {
    width: clamp(240px, calc(364 / 1920 * 100vw), 364px);
  }
}

/* ヘッダー予約ボタン（SPカンプ: 178x42 / 上14px / 右端付け） */
.service__hd .btn {
  width: 178px;
}

.service__hd .btn img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 561px) {
  .service__hd .btn {
    width: auto;
    margin-top: 0;
  }
}

.service .fixed_cv {
  position: fixed;
  z-index: 10;
  top: 0;
  right: 0;
  transform: translateX(100%);
  opacity: 0;
  transition:
    transform 0.4s ease,
    opacity 0.3s ease;
  width: 200px;
}

@media (min-width: 561px) {
  .service .fixed_cv {
    width: auto;
  }
}

.service .fixed_cv.visible {
  transform: translateX(0);
  opacity: 1;
}

@media (max-width: 768px) {
  .service .fixed_cv,
  .p-shop .fixed_cv {
    display: none;
  }
}

.service .fv {
  background-color: #fbf7ec;
  height: 500px;
  background-position: right;
  background-size: cover;
  /* SP: fv_sp / PC: fv.png */
  background-image: url(../../assets/images/service/fv_sp.png);
}

@media (min-width: 561px) {
  .service .fv {
    height: 700px;
    background-position: 60%;
    background-image: url(../../assets/images/service/fv.png);
  }
}

@media (min-width: 769px) {
  .service .fv {
    height: clamp(700px, calc(1080 / 1920 * 100vw), 1080px);
    background-position: center;
  }
}

.service .fv__inner {
  /* 通常 .inner の max-width / 左右padding を外し、カンプ座標（1920基準）で置く */
  display: grid;

  height: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

.service .fv__content {
  display: grid;
  /* キャッチ〜メダル間。1920基準で広めに空ける */
  gap: clamp(48px, calc(64 / 1920 * 100vw), 80px);
  justify-items: start;
  max-width: 100%;
  /* SPカンプ: 左20px / 下60px（vw連動はPC側のみ） */
  margin-left: 20px;
  margin-bottom: clamp(60px, calc(110 / 1920 * 100vw), 110px);
}

@media (min-width: 561px) {
  .service .fv__content {
    /* カンプ: margin-left 230 @1920 */
    margin-left: clamp(20px, calc(230 / 1920 * 100vw), 230px);
  }
}

/* FVキャッチコピー */
.service .fv__copy {
  /* スマホの時の文字の位置 */
  margin-top: calc(90 / 390 * 100vw);

  /* SP: 幅制限なし（右余白のみ確保）。280px制限だとアクセント行(25px×12文字)が折り返す */
  max-width: none;
  padding-right: 14px;
}

@media (min-width: 561px) {
  .service .fv__copy {
    max-width: clamp(280px, calc(640 / 1920 * 100vw), 640px);
    padding-right: 0;
  }
}

.service .fv__catch {
  /* カンプSP: リード文との間14px */
  margin-bottom: clamp(14px, calc(28 / 1920 * 100vw), 28px);
  color: #333;
  /* カンプSP: 20px / PC: 48px */
  font-size: clamp(20px, calc(48 / 1920 * 100vw), 48px);
  font-weight: 600;
  line-height: 1.45;
}

.service .fv__catch-line {
  display: block;
  margin-bottom: 6px;
}

.service .fv__catch-line--accent {
  color: #d8564b;
  /* カンプSP: アクセント行のみ25px */
  font-size: clamp(24px, calc(48 / 1920 * 100vw), 48px);
  letter-spacing: -0.02em;
}

/* FVリード文（左にアクセントライン） */
.service .fv__lead {
  margin-bottom: 0;
  border-left: 2px solid #de645d;
  padding-left: clamp(9px, calc(18 / 1920 * 100vw), 18px);
  color: #333;
  /* カンプSP: 13px Noto Sans JP */
  font-size: clamp(13px, calc(16 / 1920 * 100vw), 16px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.58;
}

/* FVメダル：見える化 / 専門家が伴走 / 個別プログラム（＋なし）
   カンプ基準 1920px: サイズ 253x244 */
.service .fv__medals {
  display: flex;
  align-items: center;
  /* gap: clamp(8px, calc(16 / 1920 * 100vw), 24px); */
  margin-left: -10px;
  padding: 0;
  list-style: none;
}

.service .fv__medal {
  flex-shrink: 0;
  margin-bottom: 0;
  /* SPカンプ: 88px @390 / PCカンプ: 253px @1920（比率は 253:244） */
  width: clamp(120px, calc(253 / 1920 * 100vw), 253px);
  aspect-ratio: 253 / 244;
}

.service .fv__medal img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 769px) {
  .service .fv__content {
    align-content: start;
    gap: 8px;
    margin-bottom: 0;
    margin-left: clamp(100px, calc(227 / 1920 * 100vw), 227px);
  }

  .service .fv__copy {
    margin-top: clamp(96px, calc(147 / 1920 * 100vw), 147px);
    max-width: clamp(700px, calc(1090 / 1920 * 100vw), 1090px);
  }

  .service .fv__catch {
    font-size: clamp(52px, calc(73 / 1920 * 100vw), 73px);
    line-height: 1.49;
    margin-bottom: clamp(18px, calc(28 / 1920 * 100vw), 28px);
  }

  .service .fv__catch-line {
    margin-bottom: 5px;
  }

  .service .fv__catch-line:last-child {
    margin-bottom: 0;
  }

  .service .fv__catch-line--accent {
    font-size: clamp(58px, calc(82 / 1920 * 100vw), 82px);
  }

  .service .fv__lead {
    border-left-width: clamp(3px, calc(6 / 1920 * 100vw), 6px);
    font-size: clamp(21px, calc(30 / 1920 * 100vw), 30px);
    letter-spacing: 0;
    line-height: 1.5;
    max-width: 920px;
    padding-left: clamp(18px, calc(34 / 1920 * 100vw), 34px);
    white-space: nowrap;
  }

  .service .fv__medals {
    gap: clamp(4px, calc(8 / 1920 * 100vw), 8px);
    margin-left: clamp(-42px, calc(-42 / 1920 * 100vw), -24px);
    margin-top: -10px;
  }

  .service .fv__medal {
    aspect-ratio: 1;
    width: clamp(220px, calc(323 / 1920 * 100vw), 323px);
  }
}

.service .cv {
  padding: 4rem 0 3rem;
}

@media (min-width: 769px) {
  .service .cv {
    padding: 6rem 0 4rem;
  }
}

.service .cv .inner {
  display: flex;
  align-items: center;
  justify-content: center;
}

.service section {
  padding: 4rem 0;
}

@media (min-width: 769px) {
  .service section {
    padding: 8rem 0;
  }
}

.service .sec1 {
  background-color: #ecf3f7;
  background-size: cover;
  background-image: url(../../assets/images/service/sec1_bg.png);
}

.service .sec1 h2 {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 3rem;
}

.service .sec1 h2 img {
  width: 200px;
  margin: unset !important;
}

@media (min-width: 561px) {
  .service .sec1 h2 img {
    width: auto;
  }
}

.service .sec1 h2 span {
  font-size: 2rem;
  font-weight: 500;
  padding-top: 0.8em;
  padding-left: 0.5rem;
}

@media (min-width: 561px) {
  .service .sec1 h2 span {
    font-size: 3rem;
    padding-top: 0.7em;
  }
}

@media (min-width: 769px) {
  .service .sec1 h2 span {
    padding-top: 0.5em;
    font-size: 4rem;
  }
}

.service .sec1__content > div:first-child {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  margin-bottom: 4rem;
}

@media (min-width: 561px) {
  .service .sec1__content > div:first-child {
    gap: 2.4rem;
    margin-bottom: 5rem;
    flex-direction: row;
  }
}

.service .sec1__content > div:first-child .swiper {
  width: 80%;
}

@media (min-width: 561px) {
  .service .sec1__content > div:first-child .swiper {
    width: auto;
    max-width: 372px;
  }
}

.service .sec1__content > div:first-child .text {
  flex-grow: 1;
}

.service .sec1__content > div:first-child .text p {
  margin-bottom: 1rem;
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 1.8;
}

@media (min-width: 561px) {
  .service .sec1__content > div:first-child .text p {
    margin-bottom: 2rem;
    font-size: 2rem;
  }
}

@media (min-width: 769px) {
  .service .sec1__content > div:first-child .text p {
    margin-bottom: 4rem;
    font-size: 2.8rem;
  }
}

.service .sec1__content > div:first-child .text p span {
  color: #fff;
  background-color: #e97469;
  padding: 0 0em 0.1em 0.5em;
  margin-right: 0.3em;
}

@media (min-width: 769px) {
  .service .sec1__content > div:first-child .text p:nth-child(2) {
    padding-left: 20%;
  }
}

.service .sec1__content > div:first-child .text p:last-child {
  margin-bottom: 0;
}

.service .sec1__content > div:first-child .text p:last-child span {
  padding: 0 0.5em 0.1em;
}

.service .sec1__content > div:last-child {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.service .sec1__content > div:last-child img {
  margin-bottom: 1rem;
}

.service .sec1__content > div:last-child p {
  text-align: center;
  font-size: 2rem;
  letter-spacing: 0.1em;
  font-weight: 500;
}

@media (min-width: 769px) {
  .service .sec1__content > div:last-child p {
    font-size: 4.4rem;
  }
}

.service .sec2 {
  background-color: #faf0ec;
}

.service .sec2 h2 {
  text-align: center;
  font-size: 2.5rem;
  font-weight: 500;
  margin-bottom: 2rem;
  letter-spacing: 0.1em;
}

@media (min-width: 769px) {
  .service .sec2 h2 {
    margin-bottom: 3rem;
    font-size: 4rem;
  }
}

.service .sec2 h2 + p {
  text-align: center;
  font-size: 1.8rem;
  font-weight: 500;
  margin-bottom: 2rem;
}

@media (min-width: 769px) {
  .service .sec2 h2 + p {
    font-size: 3rem;
    margin-bottom: 3rem;
  }
}

.service .sec2__content {
  display: flex;
  gap: 2rem;
  flex-direction: column;
}

@media (min-width: 561px) {
  .service .sec2__content {
    flex-direction: row;
  }
}

.service .sec2__content > div {
  background-color: #fff;
  padding: 2rem;
  width: 100%;
}

@media (min-width: 561px) {
  .service .sec2__content > div {
    width: 35%;
  }
}

@media (min-width: 561px) {
  .service .sec2__content > div:first-child {
    width: 65%;
  }
}

.service .sec2__content > div:first-child dl dd {
  flex-direction: column;
  align-items: center;
}

@media (min-width: 561px) {
  .service .sec2__content > div:first-child dl dd {
    align-items: stretch;
    flex-direction: row;
  }
}

.service .sec2__content > div:first-child dl dd .image {
  width: 60%;
}

@media (min-width: 561px) {
  .service .sec2__content > div:first-child dl dd .image {
    width: 33%;
  }
}

@media (min-width: 769px) {
  .service .sec2__content > div:first-child dl dd .image {
    width: auto;
  }
}

.service .sec2__content > div:first-child dl dd .text {
  background-color: #fcf4ea;
  flex-grow: 1;
  padding: 2rem 1.5rem;
  width: 100%;
}

@media (min-width: 561px) {
  .service .sec2__content > div:first-child dl dd .text {
    width: auto;
  }
}

.service .sec2__content > div:first-child dl dd .text p {
  line-height: 2;
  margin-bottom: 2rem;
  font-size: 1.6rem;
  font-weight: 500;
}

@media (min-width: 769px) {
  .service .sec2__content > div:first-child dl dd .text p {
    font-size: 2rem;
  }
}

.service .sec2__content > div:first-child dl dd .text p span {
  font-weight: 500;
  background-color: #e97469;
  color: #fff;
  padding: 0.2em 0.5em 0.3em;
  border-radius: 1em;
  margin-right: 0.2em;
}

.service .sec2__content > div:first-child dl dd .text p b.is-or {
  font-size: 2em;
  line-height: 1.3;
  padding: 0 0.1em;
}

.service .sec2__content > div:nth-child(2) dl dd .image {
  margin-bottom: 2rem;
}

.service .sec2__content > div:nth-child(2) dl dd .text p {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.service .sec2__content > div:nth-child(2) dl dd .text p span {
  background-color: #e97469;
  color: #fff;
  padding: 0.2em 1em 0.3em;
  border-radius: 1em;
  margin-right: 0.2em;
  font-size: 2rem;
  font-weight: 700;
}

@media (min-width: 769px) {
  .service .sec2__content > div:nth-child(2) dl dd .text p span {
    font-size: 2.6rem;
  }
}

.service .sec2__content > div:nth-child(2) dl dd .text p b {
  font-size: 2rem;
}

@media (min-width: 769px) {
  .service .sec2__content > div:nth-child(2) dl dd .text p b {
    font-size: 2.4rem;
  }
}

.service .sec2__content > div:nth-child(2) dl dd .text p b.is-or {
  font-size: 3rem;
}

@media (min-width: 769px) {
  .service .sec2__content > div:nth-child(2) dl dd .text p b.is-or {
    font-size: 4.4rem;
  }
}

.service .sec2__content > div dl dt {
  color: #fff;
  background-color: #e97469;
  text-align: center;
  font-size: 2rem;
  padding: 0.5rem 0 0.3rem;
  font-weight: bold;
}

@media (min-width: 769px) {
  .service .sec2__content > div dl dt {
    font-size: 3.4rem;
  }
}

.service .sec2__content > div dl dd {
  display: flex;
  gap: 1rem;
  flex-direction: column;
  padding-top: 2rem;
}

.service .sec2__content > div dl dd img {
  width: 100%;
}

/* ============================================
   お悩みセクション（Figma 1036:26）
   ============================================ */
.service .p-service-worries {
  background-color: #f4f4ff;
  color: #333;
  padding: 40px 20px 48px;
}

.p-service-worries__inner {
  margin-inline: auto;
  max-width: 1090px;
  width: 100%;
}

.p-service-worries__heading {
  color: #000;
  font-size: clamp(22px, calc(25 / 390 * 100vw), 28px);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.58;
  margin-bottom: 28px;
  text-align: center;
}

.p-service-worries__list {
  display: grid;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-service-worries__item {
  min-width: 0;
  overflow: clip;
  position: relative;
}

.p-service-worries__card {
  align-items: center;
  background-color: #fff;
  border-radius: 7px;
  display: flex;
  gap: 10px;
  min-height: 88px;
  overflow: hidden;
  padding: 12px 78px 12px 12px;
  position: relative;
}

.p-service-worries__card p {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(13px, calc(15 / 390 * 100vw), 16px);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.58;
  margin: 0;
  position: relative;
  z-index: 1;
}

.p-service-worries__card p span {
  color: #c75e0e;
}

.p-service-worries__check {
  flex: 0 0 26px;
  height: 26px;
  object-fit: contain;
  width: 26px;
}

.p-service-worries__figure {
  bottom: 0;
  height: 78px;
  object-fit: contain;
  position: absolute;
  right: 2px;
  width: 78px;
  z-index: 2;
}

@media (min-width: 769px) {
  .service .p-service-worries {
    padding: clamp(56px, calc(72 / 1920 * 100vw), 72px) 20px
      clamp(64px, calc(72 / 1920 * 100vw), 72px);
  }

  .p-service-worries__heading {
    font-size: clamp(36px, calc(48 / 1000 * 100vw), 48px);
    margin-bottom: 20px;
  }

  .p-service-worries__list {
    gap: 0;
  }

  .p-service-worries__item {
    height: clamp(112px, calc(127 / 1000 * 100vw), 127px);
  }

  .p-service-worries__card {
    bottom: 0;
    gap: clamp(16px, calc(22 / 1000 * 100vw), 22px);
    left: 0;
    min-height: clamp(82px, calc(91 / 1000 * 100vw), 91px);
    overflow: clip;
    padding: clamp(16px, calc(19 / 1000 * 100vw), 19px);
    position: absolute;
    right: 0;
  }

  .p-service-worries__card p {
    font-size: clamp(24px, calc(33 / 1000 * 100vw), 33px);
    letter-spacing: 0.06em;
    white-space: nowrap;
  }

  .p-service-worries__check {
    flex-basis: clamp(38px, calc(46 / 1000 * 100vw), 46px);
    height: clamp(38px, calc(46 / 1000 * 100vw), 46px);
    width: clamp(38px, calc(46 / 1000 * 100vw), 46px);
  }

  .p-service-worries__figure {
    bottom: auto;
    height: clamp(120px, calc(140 / 1000 * 100vw), 140px);
    right: auto;
    top: 0;
    width: clamp(120px, calc(140 / 1000 * 100vw), 140px);
  }

  .p-service-worries__item--posture .p-service-worries__figure {
    left: 55.2%;
  }

  .p-service-worries__item--shape .p-service-worries__figure {
    left: 66.4%;
  }

  .p-service-worries__item--waist .p-service-worries__figure {
    left: 83.2%;
  }

  .p-service-worries__item--fatigue .p-service-worries__figure {
    left: 87.4%;
  }

  .p-service-worries__item--question .p-service-worries__figure {
    left: 81.9%;
  }
}

.service .sec4 {
  background-color: #f8f8fc;
  background-size: auto 100%;
  background-repeat: no-repeat;
  background-position: bottom center;
  padding-top: 4rem;
  background-image: url(../../assets/images/service/sec4_bg.png);
  padding-top: calc(400px + 4rem);
  padding-bottom: 4rem;
  margin-top: -400px;
}

@media (min-width: 561px) {
  .service .sec4 {
    padding-top: calc(500px + 4rem);
    margin-top: -500px;
  }
}

@media (min-width: 769px) {
  .service .sec4 {
    padding-top: calc(680px + 4rem);
    margin-top: -680px;
  }
}

.service .sec4 .inner h2 {
  text-align: center;
  font-size: 1.8rem;
  font-weight: 500;
  margin-bottom: 2rem;
}

@media (min-width: 769px) {
  .service .sec4 .inner h2 {
    font-size: 3rem;
    margin-bottom: 3rem;
  }
}

.service .sec4 .inner h2 b {
  font-size: 2em;
}

.service .sec4 .inner .image {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding-top: 2rem;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}

@media (min-width: 561px) {
  .service .sec4 .inner .image {
    padding-top: 5rem;
  }
}

.service .sec4 .inner .image img:nth-child(1) {
  position: absolute;
  left: 0;
  top: 0;
  height: 4rem;
}

@media (min-width: 561px) {
  .service .sec4 .inner .image img:nth-child(1) {
    height: 6rem;
  }
}

@media (min-width: 769px) {
  .service .sec4 .inner .image img:nth-child(1) {
    height: auto;
  }
}

.service .sec4 .inner .image img:nth-child(3) {
  position: absolute;
  right: 0;
  bottom: 0;
  height: 4rem;
}

@media (min-width: 561px) {
  .service .sec4 .inner .image img:nth-child(3) {
    height: 6rem;
  }
}

@media (min-width: 769px) {
  .service .sec4 .inner .image img:nth-child(3) {
    right: 2rem;
    height: auto;
  }
}

.service .sec4 .inner .text {
  text-align: center;
}

.service .sec4 .inner .text p {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
}

@media (min-width: 769px) {
  .service .sec4 .inner .text p {
    font-size: 3rem;
  }
}

.service .sec4 .inner .text p span {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
}

@media (min-width: 769px) {
  .service .sec4 .inner .text p span {
    font-size: 4rem;
  }
}

.service .sec4 .inner .text p span:not(.is-serif) {
  color: #fff;
  background-color: #e97469;
  margin: 0 0.3em;
}

.service .sec4 .inner .text p b {
  font-size: 1.8rem;
  font-weight: 500;
}

@media (min-width: 769px) {
  .service .sec4 .inner .text p b {
    font-size: 4rem;
  }
}

.service .sec5 {
  background-color: #fcefe9;
  background-size: cover;
  background-position: center;
  background-image: url(../../assets/images/service/sec5_bg.png);
}

.service .sec5 .inner h2 {
  font-size: 3.2rem;
  text-align: center;
  margin-bottom: 2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
}

@media (min-width: 561px) {
  .service .sec5 .inner h2 {
    font-size: 4rem;
    margin-bottom: 3rem;
  }
}

@media (min-width: 769px) {
  .service .sec5 .inner h2 {
    font-size: 6rem;
    margin-bottom: 5rem;
  }
}

.service .sec5__content {
  display: flex;
  gap: 2rem;
  /* flex-direction: column; */
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 auto;
}

@media (min-width: 561px) {
  .service .sec5__content {
    flex-direction: row;
  }
}

.service .sec5__content p {
  width: 47%;
}

@media (min-width: 561px) {
  .service .sec5__content p {
    width: calc((100% - 6rem) / 3);
  }
}

.service .sec5__content p img {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

@media (min-width: 561px) {
  .service .sec5__content p img {
    width: 100%;
  }
}

.service .sec6 {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 40%;
  background-image: url(../../assets/images/service/sec6_bg.png);
  height: 400px;
  position: relative;
}

@media (min-width: 561px) {
  .service .sec6 {
    background-position: 30%;
    height: 500px;
  }
}

@media (min-width: 769px) {
  .service .sec6 {
    height: 700px;
    background-position: top center;
    background-size: contain;
  }
}

/* 続けられる理由（sec6）のみコンテンツ幅1000pxを維持（他セクション1090と分離） */
.service .sec6 .inner {
  max-width: 1000px;
}

.service .sec6 .inner h2 {
  text-align: center;
  font-weight: 500;
  font-size: 1.6rem;
  margin-bottom: 1rem;
  letter-spacing: 0.1em;
}

@media (min-width: 561px) {
  .service .sec6 .inner h2 {
    font-size: 2rem;
  }
}

@media (min-width: 769px) {
  .service .sec6 .inner h2 {
    font-size: 3rem;
  }
}

.service .sec6 .inner h2 span {
  font-size: 2em;
}

.service .sec6__content {
  display: flex;
  justify-content: flex-end;
}

.service .sec6__content img {
  width: 100%;
}

@media (min-width: 561px) {
  .service .sec6__content img {
    width: 80%;
  }
}

@media (min-width: 769px) {
  .service .sec6__content img {
    width: auto;
  }
}

.service .sec7 {
  background-color: #fcfdfe;
  background-size: 100% 100%;
  background-position: top;
  background-image: url(../../assets/images/service/sec8_bg2.png);
  padding-top: calc(400px + 0rem);
  margin-top: -400px;
}

@media (min-width: 561px) {
  .service .sec7 {
    padding-top: calc(500px + 0rem);
    margin-top: -500px;
  }
}

@media (min-width: 769px) {
  .service .sec7 {
    padding-top: calc(700px + 0rem);
    margin-top: -700px;
  }
}

.service .sec7 .inner h2 {
  font-size: 1.7em;
  letter-spacing: 0.15em;
  text-align: center;
  margin-bottom: 2rem;
  font-weight: 500;
}

@media (min-width: 561px) {
  .service .sec7 .inner h2 {
    font-size: 4rem;
    margin-bottom: 3rem;
  }
}

@media (min-width: 769px) {
  .service .sec7 .inner h2 {
    font-size: 6rem;
    margin-bottom: 5rem;
  }
}

.service .sec7__content {
  margin-bottom: 6rem;
  gap: 2rem 0;
  justify-content: center;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

@media (min-width: 561px) {
  .service .sec7__content {
    gap: 2rem 1rem;
    display: flex;
    flex-wrap: wrap;
  }
}

@media (min-width: 769px) {
  .service .sec7__content {
    margin-bottom: 12rem;
    gap: 2rem 1rem;
  }
}

@media (min-width: 561px) {
  .service .sec7__content img {
    width: calc((100% - 2rem) / 3) !important;
  }
}

@media (min-width: 769px) {
  .service .sec7__content img {
    width: calc((100% - 5rem) / 6) !important;
  }
}

.service .sec8__content {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-bottom: 6rem;
  flex-direction: column;
}

@media (min-width: 561px) {
  .service .sec8__content {
    flex-direction: row;
  }
}

@media (min-width: 769px) {
  .service .sec8__content {
    margin-bottom: 10rem;
  }
}

.service .sec8__content div {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
  width: fit-content;
  margin: 0 auto;
}

@media (min-width: 561px) {
  .service .sec8__content div {
    width: fit-content;
    margin: unset;
  }
}

.service .sec8__content div img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.service .sec8__content div a img {
  width: 80% !important;
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: inherit !important;
}

@media (min-width: 561px) {
  .service .sec8__content div img {
    max-width: inherit !important;
    width: fit-content !important;
  }

  .service .sec8__content div a img {
    width: 100% !important;
    max-width: inherit !important;
  }
}

.service .sec8__content div p {
  font-weight: 500;
  font-size: 1.6rem;
  width: fit-content;
  text-align: center;
}

@media (min-width: 561px) {
  .service .sec8__content div p {
    width: 100%;
  }
}

@media (min-width: 769px) {
  .service .sec8__content div p {
    font-size: 2rem;
  }
}

.service .sec9__content {
  padding-top: 3rem;
  margin-bottom: 8rem;
}

.service .sec9__content > div {
  background-color: #fff;
  position: relative;
  padding: 4rem 2rem 2rem;
}

@media (min-width: 769px) {
  .service .sec9__content > div {
    padding: 5rem 6rem;
  }
}

.service .sec9__content > div:last-child {
  margin-top: 8rem;
}

@media (min-width: 561px) {
  .service .sec9__content > div:last-child {
    margin-top: 15rem;
  }
}

.service .sec9__content > div:last-child h3 {
  right: initial;
  left: 0;
}

@media (min-width: 561px) {
  .service .sec9__content > div:last-child dl dt {
    flex-direction: row-reverse;
  }
}

.service .sec9__content > div:last-child dl dt div {
  padding: 2rem 0;
}

@media (min-width: 561px) {
  .service .sec9__content > div:last-child dl dt div {
    padding: 2rem 2rem 2rem 0;
  }
}

@media (min-width: 769px) {
  .service .sec9__content > div:last-child dl dt div {
    padding: 2rem 5rem 2rem 0;
  }
}

.service .sec9__content > div h3 {
  position: absolute;
  top: -3rem;
  right: 0;
  width: 180px;
}

@media (min-width: 561px) {
  .service .sec9__content > div h3 {
    top: -8rem;
    width: auto;
  }
}

.service .sec9__content > div dl dt {
  display: flex;
  align-items: center;
  margin-bottom: 2rem;
  flex-direction: column;
}

@media (min-width: 561px) {
  .service .sec9__content > div dl dt {
    flex-direction: row;
  }
}

@media (min-width: 769px) {
  .service .sec9__content > div dl dt {
    margin-bottom: 3rem;
  }
}

.service .sec9__content > div dl dt div {
  padding: 2rem 0;
  flex-grow: 1;
}

@media (min-width: 561px) {
  .service .sec9__content > div dl dt div {
    padding: 2rem 0 2rem 2rem;
  }
}

@media (min-width: 769px) {
  .service .sec9__content > div dl dt div {
    padding: 2rem 0 2rem 5rem;
  }
}

.service .sec9__content > div dl dt div h4 {
  font-weight: 700;
  font-size: 1.9rem;
  line-height: 1.8;
  padding-bottom: 1rem;
}

@media (min-width: 769px) {
  .service .sec9__content > div dl dt div h4 {
    font-size: 3.4rem;
  }
}

.service .sec9__content > div dl dt div p {
  font-weight: 500;
  font-size: 1.6rem;
}

@media (min-width: 769px) {
  .service .sec9__content > div dl dt div p {
    font-size: 2.4rem;
  }
}

.service .sec9__content > div dl dd {
  font-weight: 500;
  font-size: 1.6rem;
}

@media (min-width: 769px) {
  .service .sec9__content > div dl dd {
    font-size: 2.4rem;
  }
}

.service .sec10__content .table {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
}

@media (min-width: 561px) {
  .service .sec10__content .table {
    overflow-x: visible;
    overflow-y: visible;
    justify-content: flex-end;
  }
}

.service .sec10__content .table:first-child {
  margin-top: 0rem;
  margin-bottom: 3rem;
}

@media (min-width: 561px) {
  .service .sec10__content .table:first-child {
    margin-top: -4rem;
    margin-bottom: 3rem;
  }
}

.service .sec10__content .table img {
  width: 150vw;
  max-width: none;
}

@media (min-width: 561px) {
  .service .sec10__content .table img {
    max-width: 100%;
    width: auto;
  }
}

.service .sec10__content h3 {
  font-weight: 500;
  font-size: 2.5rem;
  text-align: center;
  margin-bottom: 2rem;
}

@media (min-width: 561px) {
  .service .sec10__content h3 {
    font-size: 3rem;
  }
}

@media (min-width: 769px) {
  .service .sec10__content h3 {
    margin-bottom: 3rem;
    font-size: 4rem;
    padding-left: 8rem;
  }
}

.service .sec11 {
  background-color: #edf1f8;
  background-size: cover;
  background-position: center;
  background-image: url(../../assets/images/service/sec11_bg.png);
}

.service .sec11 .inner h2 {
  font-size: 3.2rem;
  text-align: center;
  margin-bottom: 2rem;
  letter-spacing: 0.1em;
  font-weight: 500;
}

@media (min-width: 561px) {
  .service .sec11 .inner h2 {
    font-size: 4rem;
  }
}

.service .sec11__content ul {
  max-width: 800px;
  margin: 0 auto;
}

.service .sec11__content ul li {
  margin-bottom: 1rem;
  background-color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  padding: 1.5rem;
}

@media (min-width: 769px) {
  .service .sec11__content ul li {
    padding: 1.5rem 4rem;
    font-size: 2rem;
  }
}

.service .sec11__content ul li:last-child {
  margin-bottom: 0;
}

.service .sec12 {
  background-color: #fde8da;
  background-size: cover;
  background-position: center;
  background-image: url(../../assets/images/service/sec12_bg.png);
}

.service .sec12 .inner h2 {
  font-size: 3.2rem;
  text-align: center;
  margin-bottom: 2rem;
  font-weight: 500;
}

@media (min-width: 561px) {
  .service .sec12 .inner h2 {
    font-size: 4rem;
    margin-bottom: 3rem;
  }
}

@media (min-width: 769px) {
  .service .sec12 .inner h2 {
    font-size: 6rem;
    margin-bottom: 5rem;
  }
}

.service .sec12__content dl {
  max-width: 800px;
  margin: 0 auto 2rem;
  cursor: pointer;
}

.service .sec12__content dl dt {
  background-color: #fce1de;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 4rem 1rem 1.5rem;
  font-size: 1.6rem;
  position: relative;
  user-select: none;
  letter-spacing: 0.1em;
}

.service .sec12__content dl dt img {
  margin: unset !important;
}

@media (min-width: 561px) {
  .service .sec12__content dl dt {
    font-size: 2rem;
  }
}

.service .sec12__content dl dt b {
  font-weight: 500;
}

.service .sec12__content dl dt::before {
  content: "";
  width: 20px;
  height: 4px;
  background-color: #e97469;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
}

.service .sec12__content dl dt::after {
  content: "";
  height: 20px;
  width: 4px;
  background-color: #e97469;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 28px;
}

.service .sec12__content dl dd {
  border: 2px solid #fce1de;
  border-top: none;
  background-color: #fff;
  padding: 1.5rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  display: none;
  user-select: none;
}

@media (min-width: 769px) {
  .service .sec12__content dl dd {
    font-size: 1.8rem;
  }
}

.service .sec12__content dl.open dt:after {
  display: none;
}

.service .sec12__content dl.open dd {
  display: block;
}

.service__ft {
  background-color: #fff3ef;
  /* SPは下部の固定LINEバー（約60px）に隠れないよう余白を確保 */
  padding: 3.6rem 0 8rem;
}

@media (min-width: 769px) {
  .service__ft {
    padding: 5.6rem 0 3.2rem;
  }
}

.service__ft .inner h2 {
  display: flex;
  justify-content: center;
  margin-bottom: 2.4rem;
}

.service__ft .inner h2 img {
  width: 190px;
  max-width: 60%;
  height: auto;
}

@media (min-width: 561px) {
  .service__ft .inner h2 img {
    width: 230px;
    max-width: none;
  }
}

.service__ft .inner .links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.2rem 0;
  margin-bottom: 1.2rem;
}

.service__ft .inner .links:last-of-type {
  margin-bottom: 0;
}

@media (min-width: 769px) {
  .service__ft .inner .links {
    gap: 1.6rem 0;
    margin-bottom: 1.6rem;
  }
}

.service__ft .inner .links a {
  color: #333;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  padding: 0 1.6rem;
  position: relative;
  text-decoration: none;
  transition: color 0.2s ease;
}

@media (min-width: 769px) {
  .service__ft .inner .links a {
    font-size: 1.7rem;
    padding: 0 2.4rem;
  }
}

.service__ft .inner .links a:hover,
.service__ft .inner .links a:focus-visible {
  color: #ef6968;
}

/* 区切りの縦線は横一列に収まるPC幅（769px〜）でのみ表示し、
   折り返しが起きるSPでは行頭に線が残らないよう非表示にする */
@media (min-width: 769px) {
  .service__ft .inner .links a::before {
    background-color: #d8c3bb;
    content: "";
    height: 1em;
    left: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
  }

  .service__ft .inner .links a:first-child::before {
    display: none;
  }
}

.service__ft .inner .copy {
  border-top: 1px solid rgba(51, 51, 51, 0.12);
  color: #333;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-top: 3.2rem;
  padding-top: 2rem;
  text-align: center;
}

@media (min-width: 769px) {
  .service__ft .inner .copy {
    font-size: 1.3rem;
    margin-top: 4rem;
    padding-top: 2.4rem;
  }
}

.pc-only {
  display: none !important;
}

.sp-only {
  display: block !important;
}

@media (min-width: 561px) {
  .pc-only {
    display: block !important;
  }

  .sp-only {
    display: none !important;
  }
}

/*# sourceMappingURL=service.css.map */

/* ----------------------------------------
 * fixed_line_cv (SP only)
 * ---------------------------------------- */
.fixed_line_cv {
  display: none;
}

@media (max-width: 768px) {
  .fixed_line_cv {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    padding: 0 10px 5px;
    box-sizing: border-box;
  }

  .fixed_line_cv__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    background-color: #00b900;
    border-radius: 6px;
    padding: 3px 15px 3px 0;
    text-decoration: none;
    overflow: hidden;
    box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.2);
  }

  .fixed_line_cv__icon {
    position: relative;
    z-index: 2;
    width: 46px;
    height: 46px;
    object-fit: contain;
    border-radius: 8px;
  }

  .fixed_line_cv__text {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 2;
  }

  .fixed_line_cv__label {
    background-color: #ffffff;
    color: #e06a6a;
    font-size: 11px;
    font-weight: 500;
    padding: 2px 8px;
    display: inline-block;
    margin-bottom: 4px;
  }

  .fixed_line_cv__main {
    color: #ffffff;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.2;
  }

  .fixed_line_cv__sep {
    margin: 0 4px;
    font-weight: 400;
  }

  .fixed_line_cv__arrow {
    color: #ffffff;
    font-size: 24px;
    font-weight: 400;
    z-index: 2;
    margin-left: 5px;
  }
}

@media (max-width: 389px) {
  .fixed_line_cv__main {
    font-size: 14px;
  }
}

/* ==========================================================================
   TANITA FIT
   SPはFigma 390pxカンプ、PCはFigma 1920pxカンプを基準にする。
   ========================================================================== */

.service .p-service-tanita {
  background-color: #faf0ec;
  color: #333;
  overflow: hidden;
  padding: 0 0 32px;
}

.p-service-tanita__brand {
  color: #000;
  font-family: "Noto Serif JP", sans-serif;
  font-size: clamp(20px, calc(20 / 375 * 100vw), 20px);
  font-weight: 500;
  line-height: 1.49;
  margin-bottom: 0;
}

.p-service-tanita__card {
  background-color: #fff;
  border-radius: 6px;
  display: grid;
  gap: 8px;
  margin-bottom: 0;
  overflow: hidden;
  padding: 10px 10px 12px;
}

/* 一旦非表示: アプリ誘導の説明カード */
.p-service-tanita__card--app {
  display: none;
}

/* 上段: 画像 | 見出し */
.p-service-tanita__card-top {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
}

.p-service-tanita__card-title {
  color: #ef6968;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.35;
  margin-bottom: 0;
  text-align: center;
}

.p-service-tanita__card-text {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  margin-bottom: 0;
  text-align: left;
}

@media (max-width: 767px) {
  /* SP: 上段=タイトル / 下段=左画像・右本文 */
  .p-service-tanita__card {
    align-items: start;
    column-gap: 8px;
    grid-template-areas:
      "title title"
      "visual text";
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    row-gap: 8px;
  }

  .p-service-tanita__card-top {
    display: contents;
  }

  .p-service-tanita__visual {
    align-self: start;
    grid-area: visual;
  }

  .p-service-tanita__card-title {
    align-self: start;
    grid-area: title;
    text-align: center;
  }

  .p-service-tanita__card-text {
    align-self: start;
    grid-area: text;
    text-align: left;
  }
}

.p-service-tanita__cards {
  display: grid;
  column-gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  row-gap: 12px;
}

.p-service-tanita__catch {
  color: #333;
  font-size: clamp(16px, calc(17 / 390 * 100vw), 17px);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.49;
  margin-bottom: 0;
}

.p-service-tanita__catch span {
  display: block;
  padding-left: 2.5em;
}

.p-service-tanita__closing {
  color: #333;
  margin-top: 24px;
  text-align: center;
}

.p-service-tanita__closing h3 {
  color: #000;
  font-size: clamp(20px, calc(22 / 390 * 100vw), 22px);
  font-weight: 600;
  letter-spacing: 0.11em;
  line-height: 1.5;
  margin-bottom: 9px;
}

.p-service-tanita__closing p {
  font-size: clamp(19px, calc(22 / 390 * 100vw), 22px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2.07;
  margin-bottom: 0;
}

.p-service-tanita__closing strong {
  background-color: #ef6968;
  color: #fff;
  display: inline-block;
  font-size: clamp(22px, calc(26 / 390 * 100vw), 26px);
  line-height: 1.5;
  padding: 12px;
}

.p-service-tanita__eyebrow {
  align-items: center;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(240, 119, 118, 0.7) 9%,
    rgb(240, 119, 118) 24%,
    rgb(240, 121, 120) 75%,
    rgba(240, 121, 120, 0.7) 89%,
    rgba(255, 255, 255, 0) 100%
  );
  color: #fff;
  display: flex;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 700;
  /* height: 23px; */
  justify-content: center;
  /* justify-self: start; */
  line-height: 1.49;
  margin-bottom: 0;
  width: min(260px, 100%);
}

/* 線・テキスト・線の単純な横並びなのでFlex */
.p-service-tanita__heading {
  align-items: center;
  color: #ef6968;
  display: flex;
  font-size: 20px;
  font-weight: 700;
  gap: 10px;
  letter-spacing: 0.05em;
  line-height: 1.49;
  margin-top: 0.6em;
  margin-bottom: 0.6em;
  text-align: center;
}

.p-service-tanita__heading::after,
.p-service-tanita__heading::before {
  background-color: #ef6968;
  content: "";
  flex: 1;
  height: 1px;
}

.p-service-tanita__heading small {
  /* リセットCSSの small { display: block } を打ち消して1行に保つ */
  display: inline;
  font-size: 15px;
}

/* 見出し文言は1行に収めたい（SP幅390付近） */
.p-service-tanita__heading span {
  white-space: nowrap;
}

.p-service-tanita__hero {
  background:
    linear-gradient(
      155deg,
      rgba(255, 255, 255, 0.82),
      rgba(254, 250, 246, 0.35)
    ),
    #fefaf6;
  border-bottom-left-radius: 72px 43px;
  margin-inline: auto;
  max-width: 390px;
  min-height: 202px;
  position: relative;
}

/* テキストはGrid。体重計のみ absolute */
.p-service-tanita__hero-content {
  display: grid;
  gap: 1em;
  justify-items: center;
  padding-top: 20px;
  position: relative;
  z-index: 1;
}

.p-service-tanita__inner {
  margin-inline: auto;
  max-width: 390px;
  padding-inline: 15px;
}

.p-service-tanita__lead {
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.49;
  margin-bottom: 0;
}

.p-service-tanita__machine {
  display: block;
  height: 111px;
  object-fit: cover;
  position: absolute;
  right: -12px;
  top: 92px;
  width: 111px;
}

.p-service-tanita__devices-image {
  display: block;
  height: auto;
  width: 100%;
}

.p-service-tanita__product {
  display: grid;
  gap: 0;
  justify-items: start;
}

.p-service-tanita__visual {
  justify-self: center;
  position: relative;
  width: 100%;
}

.p-service-tanita__visual--app {
  height: auto;
  max-width: none;
}

.p-service-tanita__visual--app img {
  display: block;
  height: auto;
  object-fit: contain;
  width: 100%;
}

.p-service-tanita__visual--devices {
  aspect-ratio: 237 / 175;
  height: auto;
  max-width: none;
}

.p-service-tanita__visual--graph {
  max-width: none;
}

.p-service-tanita__visual--graph img {
  display: block;
  height: auto;
  width: 100%;
}

.p-service-tanita__visual--muscle {
  height: auto;
  max-width: none;
}

.p-service-tanita__visual--muscle img {
  display: block;
  height: auto;
  object-fit: contain;
  width: 100%;
}

@media (min-width: 769px) {
  .service .p-service-tanita {
    padding: 0 0 clamp(64px, calc(120 / 1920 * 100vw), 120px);
  }

  .p-service-tanita__brand {
    font-size: clamp(32px, calc(60 / 1440 * 100vw), 80px);
  }

  .p-service-tanita__catch {
    font-size: clamp(32px, calc(54 / 1920 * 100vw), 54px);
  }

  /* .p-service-tanita__catch span {
    padding-left: 4.5em;
  } */

  .p-service-tanita__eyebrow {
    font-size: clamp(24px, calc(48 / 1920 * 100vw), 48px);
    height: clamp(48px, calc(86 / 1920 * 100vw), 86px);
    width: clamp(500px, calc(973 / 1920 * 100vw), 973px);
  }

  /* 特徴以降はコンテンツ幅1000基準（旧1555→1000の比率でサイズを調整） */
  .p-service-tanita__heading {
    font-size: clamp(28px, calc(43 / 1000 * 100vw), 43px);
    gap: clamp(20px, calc(32 / 1000 * 100vw), 32px);
    margin-bottom: clamp(28px, calc(40 / 1000 * 100vw), 40px);
  }

  .p-service-tanita__heading small {
    font-size: 0.84em;
  }

  .p-service-tanita__hero {
    border-bottom-left-radius: clamp(144px, calc(354 / 1920 * 100vw), 354px)
      clamp(86px, calc(212 / 1920 * 100vw), 212px);
    max-width: 1920px;
    min-height: clamp(500px, calc(785 / 1920 * 100vw), 785px);
  }

  .p-service-tanita__hero-content {
    gap: 3em;
    padding-top: clamp(20px, calc(70 / 1920 * 100vw), 70px);
  }

  /* 他セクションと同じコンテンツ幅1090px（左右pad 20を含む） */
  .p-service-tanita__inner {
    max-width: 1090px;
    padding-inline: 20px;
  }

  .p-service-tanita__lead {
    font-size: clamp(20px, calc(36 / 1920 * 100vw), 36px);
  }

  /* 体重計: カンプ座標で absolute（1920基準） */
  .p-service-tanita__machine {
    height: clamp(300px, calc(560 / 1920 * 100vw), 560px);
    right: clamp(20px, calc(91 / 1920 * 100vw), 91px);
    top: clamp(205px, calc(299 / 1920 * 100vw), 299px);
    width: clamp(300px, calc(560 / 1920 * 100vw), 560px);
  }
}

@media (min-width: 769px) {
  /*
   * PCカンプ（ノード1023:5）: カード259×404・角丸15・影付き
   * コンテンツ幅1090・3カラム（選ばれる理由セクションと同じ幅）
   */
  .p-service-tanita__card {
    align-content: start;
    border-radius: 15px;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    gap: clamp(11px, calc(15 / 1040 * 100vw), 15px);
    height: auto;
    justify-items: stretch;
    padding: 20px;
  }

  /* PC: 上段も縦積み（画像の下に見出し） */
  .p-service-tanita__card-top {
    gap: clamp(13px, calc(18 / 1040 * 100vw), 18px);
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    width: 100%;
  }

  /* カードタイトルはデバイス間で18pxに統一。 */
  .p-service-tanita__card-title {
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.49;
    text-align: center;
  }

  .p-service-tanita__card-text {
    font-size: clamp(13px, calc(17 / 1040 * 100vw), 17px);
    font-weight: 500;
    line-height: 1.49;
    padding-inline: clamp(4px, calc(6 / 1040 * 100vw), 6px);
    text-align: left;
  }

  .p-service-tanita__cards {
    align-items: stretch;
    /* 選ばれる3つの理由（.p-service-reason__cards）と同じ3列・gapでカード幅を揃える */
    gap: clamp(16px, calc(20 / 1040 * 100vw), 20px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  /* 締めコピー: 見出しと本文のあいだを空け、本文は3行センター積み */
  .p-service-tanita__closing {
    margin-top: clamp(48px, calc(72 / 1920 * 100vw), 72px);
  }

  .p-service-tanita__closing h3 {
    font-size: clamp(28px, calc(40 / 1920 * 100vw), 40px);
    font-weight: 500;
    margin-bottom: clamp(28px, calc(48 / 1920 * 100vw), 48px);
  }

  .p-service-tanita__closing p {
    font-size: clamp(24px, calc(34 / 1920 * 100vw), 34px);
    font-weight: 500;
    line-height: 1.8;
  }

  .p-service-tanita__closing .pconly {
    display: inline;
  }

  /* 中央行だけ白抜き赤帯（スクショどおり1行ボックス） */
  .p-service-tanita__closing strong {
    font-size: clamp(28px, calc(40 / 1920 * 100vw), 40px);
    font-weight: 500;
    margin-block: 0.15em;
    padding-block: 0.15em;
    padding-inline: clamp(24px, calc(40 / 1920 * 100vw), 40px);
  }

  /* 画像エリア: カンプ 237×175（0.93倍で高さ162）
     ※flexにするのは、子imgの max-height:100% を確実に効かせるため */
  .p-service-tanita__visual {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    height: clamp(120px, calc(162 / 1040 * 100vw), 162px);
    justify-content: center;
    margin: 0;
    width: 100%;
  }

  .p-service-tanita__visual--app,
  .p-service-tanita__visual--graph,
  .p-service-tanita__visual--muscle {
    height: clamp(120px, calc(162 / 1040 * 100vw), 162px);
    margin: 0;
    max-width: none;
    width: 100%;
  }

  .p-service-tanita__visual--app img,
  .p-service-tanita__visual--graph img,
  .p-service-tanita__visual--muscle img,
  .p-service-tanita__devices-image {
    height: auto;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
    width: auto;
  }

  /* Figma 1047:101 書き出し合成（237×175） */
  .p-service-tanita__visual--devices {
    align-items: center;
    aspect-ratio: auto;
    display: flex;
    height: clamp(120px, calc(162 / 1040 * 100vw), 162px);
    justify-content: center;
    margin: 0;
    max-width: none;
    width: 100%;
  }
}

/* ==========================================================================
   自分を知る
   ========================================================================== */

.service .p-service-shiru {
  background-color: #f7f7fb;
  color: #333;
  padding: 40px 0;
}

.p-service-shiru__closing {
  font-size: clamp(18px, calc(20 / 390 * 100vw), 20px);
  font-weight: 700;
  line-height: 1.49;
  margin-bottom: 0;
  text-align: center;
}

.p-service-shiru__closing strong {
  color: #ef6968;
  font-size: inherit;
  font-weight: 900;
}

.p-service-shiru__heading {
  color: #333;
  font-size: clamp(18px, calc(18 / 390 * 100vw), 28px);
  font-weight: 600;
  line-height: 1.58;
  margin-bottom: 28px;
  text-align: center;
}

.p-service-shiru__heading span {
  color: #ef6968;
  font-weight: 700;
}

.p-service-shiru__inner {
  margin-inline: auto;
  max-width: 390px;
  padding-inline: 15px;
}

.p-service-shiru__item {
  margin: 0;
  min-width: 0;
}

.p-service-shiru__item figcaption {
  color: #ef6968;
  font-size: clamp(19px, calc(22 / 390 * 100vw), 26px);
  font-weight: 600;
  line-height: 1.49;
  margin-bottom: 8px;
  text-align: center;
}

.p-service-shiru__item img {
  aspect-ratio: 1;
  display: block;
  filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
  object-fit: cover;
  width: 100%;
}

.p-service-shiru__lead {
  font-size: clamp(14px, calc(16 / 390 * 100vw), 20px);
  font-weight: 500;
  line-height: 1.5;
  margin-bottom: 20px;
  text-align: center;
}

.p-service-shiru__pair {
  align-items: center;
  display: grid;
  gap: 9px;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  margin-bottom: 28px;
}

.p-service-shiru__pill {
  background-color: #faf0ec;
  border: 1px solid #ef6968;
  border-radius: 999px;
  color: #ef6968;
  font-size: clamp(14px, calc(16 / 390 * 100vw), 20px);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.5;
  margin-bottom: 20px;
  padding: 10px 12px;
  text-align: center;
}

.p-service-shiru__plus {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 32px;
  font-weight: 300;
  line-height: 1;
  padding-top: 32px;
  text-align: center;
}

@media (min-width: 769px) {
  /* PCカンプ（Figma 1023:53 自分を知る）: コンテンツ幅1087→1000（約0.92倍）で適用。
     TB（769〜）でも崩れないよう画像はfr列で伸縮させる */
  .service .p-service-shiru {
    padding: clamp(48px, calc(72 / 1040 * 100vw), 72px) 0
      clamp(56px, calc(104 / 1040 * 100vw), 104px);
  }

  .p-service-shiru__closing {
    font-size: clamp(22px, calc(37 / 1040 * 100vw), 37px);
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 2.03;
  }

  /* カンプ: アクセント45px（base 40pxの約1.12倍） */
  .p-service-shiru__closing strong {
    font-size: 1.12em;
    font-weight: 700;
  }

  /* カンプ: 「自分を知る」58px（base 48pxの約1.2倍） */
  .p-service-shiru__heading {
    font-size: clamp(28px, calc(44 / 1040 * 100vw), 44px);
    margin-bottom: clamp(28px, calc(45 / 1040 * 100vw), 45px);
  }

  .p-service-shiru__heading span {
    font-size: 1.2em;
  }

  /* 実質コンテンツ幅1090px（他セクションと統一） */
  .p-service-shiru__inner {
    max-width: 1090px;
    padding-inline: 20px;
  }

  /* カンプ: ラベル75px（0.92倍で69px）・赤セリフ */
  .p-service-shiru__item figcaption {
    font-size: clamp(32px, calc(69 / 1040 * 100vw), 69px);
    margin-bottom: clamp(8px, calc(14 / 1040 * 100vw), 14px);
  }

  /* カンプ: 画像の影 2px 4px 15px。円形PNGにも追従するdrop-shadow */
  .p-service-shiru__item img {
    filter: drop-shadow(2px 4px 15px rgba(0, 0, 0, 0.25));
  }

  /* サブ文は中央揃え */
  .p-service-shiru__lead {
    font-size: clamp(20px, calc(30 / 1040 * 100vw), 30px);
    margin-bottom: clamp(14px, calc(21 / 1040 * 100vw), 21px);
    text-align: center;
  }

  /* カンプ: 2画像＋中央＋。fr列でTBでも比率維持 */
  .p-service-shiru__pair {
    align-items: center;
    gap: clamp(16px, calc(100 / 1040 * 100vw), 100px);
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    justify-content: center;
    margin-bottom: clamp(24px, calc(37 / 1040 * 100vw), 37px);
  }

  /* カンプ: 帯は角丸ピル・赤枠・全幅、文字34px（0.92倍で31px） */
  .p-service-shiru__pill {
    font-size: clamp(16px, calc(31 / 1040 * 100vw), 31px);
    letter-spacing: 0.06em;
    margin-bottom: clamp(24px, calc(45 / 1040 * 100vw), 45px);
    padding: clamp(16px, calc(24 / 1040 * 100vw), 24px) 24px;
    width: 100%;
  }

  /* ＋は画像の縦中心付近に合わせて少し下げる */
  .p-service-shiru__plus {
    font-size: clamp(56px, calc(99 / 1040 * 100vw), 99px);
    margin-top: clamp(30px, calc(56 / 1040 * 100vw), 56px);
    padding-top: 0;
  }
}

/* ==========================================================================
   料金
   ========================================================================== */

.p-service-price {
  /* background-color: #f2f1f1; */
  color: #333;
  margin: 0 -20px 60px;
  padding: 18px 15px 32px;
  width: calc(100% + 40px);
}

.p-service-price__amount {
  align-items: baseline;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  margin-bottom: 12px;
}

.p-service-price__amount-tax {
  flex-shrink: 0;
  font-size: 16px;
  font-style: normal;
  margin-left: 4px;
  white-space: nowrap;
}

.p-service-price__amount-label {
  flex-shrink: 0;
  font-size: 16px;
  margin-right: 12px;
  white-space: nowrap;
}

.p-service-price__amount-value {
  color: #000;
  flex-shrink: 0;
  font-family: Barlow, "Noto Sans JP", sans-serif;
  font-size: clamp(32px, calc(36 / 390 * 100vw), 40px);
  font-weight: 600;
  line-height: 1.22;
  white-space: nowrap;
}

.p-service-price__amount-currency {
  font-size: 0.84em;
}

.p-service-price__benefit {
  color: #ef6968;
  font-size: clamp(14px, calc(17 / 390 * 100vw), 17px);
  font-weight: 500;
  line-height: 1.34;
  margin-bottom: 12px;
}

.p-service-price__benefit span {
  color: #333;
  display: inline-block;
  font-size: 0.94em;
  padding-left: 1em;
}

.p-service-price__box {
  margin-bottom: 13px;
}

.p-service-price__box h3,
.p-service-price__plan h3 {
  background-color: #ef6968;
  border-radius: 5px 5px 0 0;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 700;
  height: 28px;
  letter-spacing: 0.07em;
  line-height: 28px;
  margin-bottom: 0;
  padding-inline: 37px;
  width: fit-content;
}

.p-service-price__box-body {
  background-color: #fff;
  border: 1px solid #ef6968;
  padding: 16px 0 9px 14px;
  position: relative;
}

.p-service-price__campaign {
  margin-bottom: 15px;
}

.p-service-price__campaign-image {
  display: block;
  height: auto;
  width: 100%;
}

.p-service-price__common-image {
  height: 113px;
  object-fit: contain;
  position: absolute;
  right: 8px;
  top: 48px;
  width: 113px;
}

.p-service-price__common-notes {
  font-size: 14px;
  line-height: 1.6;
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}

.p-service-price__common-notes li {
  margin-bottom: 0;
}

.p-service-price__common-notes li::before {
  content: "・";
}

.p-service-price__frequency {
  border-top: 1px solid #c8c8c8;
  color: #000;
  font-size: clamp(15px, calc(17 / 390 * 100vw), 17px);
  letter-spacing: 0.08em;
  line-height: 1.22;
  margin-bottom: 0;
  padding-top: 10px;
  text-align: center;
}

/* VIPのみ回数ブロックの下線（その下にレンタル案内が続くため） */
.p-service-price__plan--vip .p-service-price__frequency {
  border-bottom: 1px solid #c8c8c8;
  padding-bottom: 10px;
}

.p-service-price__heading {
  color: #333;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.58;
  margin-bottom: 19px;
  text-align: center;
}

.p-service-price__plan {
  margin-bottom: 13px;
  position: relative;
}

.p-service-price__plan-body {
  background-color: #fff;
  border: 1px solid #ef6968;
  min-height: 115px;
  padding: 12px 15px 9px;
}

.p-service-price__plan--vip .p-service-price__plan-body {
  min-height: 197px;
}

.p-service-price__plans {
  display: grid;
}

.p-service-price__recommended {
  align-items: center;
  background-color: #faf0ec;
  border: 2px solid #ef6968;
  border-radius: 50%;
  color: #ef6968;
  display: flex;
  font-size: 12px;
  height: 63px;
  justify-content: center;
  line-height: 1.22;
  position: absolute;
  right: 9px;
  text-align: center;
  top: 5px;
  width: 63px;
}

.p-service-price__rental {
  font-size: 16px;
  letter-spacing: 0.08em;
  line-height: 1.34;
  margin: 18px 0 0;
  text-align: center;
}

/* PCカンプの「タニタ体組成計：」の区切り。SPは改行のため非表示
   （.p-service-price__benefit span の指定に負けないよう詳細度を上げる） */
.p-service-price__benefit .p-service-price__sep {
  display: none;
}

.p-service-price__ticket {
  margin-bottom: 0;
}

.p-service-price__ticket h3 {
  padding-inline: 20px;
  width: 100%;
}

.p-service-price__ticket-title {
  font-weight: inherit;
}

.p-service-price__ticket-unit {
  font-weight: inherit;
}

.p-service-price__ticket ul {
  font-size: 15px;
  letter-spacing: -0.02em;
  line-height: 1.55;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-service-price__ticket li {
  margin-bottom: 0;
}

/* SP/PC共通: 赤い■の箇条書き（PCカンプ準拠） */
.p-service-price__ticket li::before {
  color: #ef6968;
  content: "■";
  padding-right: 2px;
}

.p-service-price__yearly-lead {
  font-size: 16px;
  margin-bottom: 10px;
}

.p-service-price__yearly-lead strong {
  color: #ef6968;
}

.p-service-price__yearly-note {
  display: block;
  font-size: 13px;
  line-height: 1.4;
}

.p-service-price__yearly-note-detail {
  display: block;
  padding-left: 1em;
}

.p-service-price__yearly-note-line {
  display: block;
}

@media (min-width: 561px) {
  .p-service-price {
    margin-inline: auto;
    /* 他セクションの .inner と同じ、コンテンツ幅1090pxに統一。 */
    max-width: 1090px;
    padding: 48px 0 64px;
    width: 100%;
  }

  /* sponlyの改行が消えて1行になるため、字下げを解除して文中に流す */
  .p-service-price__benefit span {
    display: inline;
    padding-left: 0;
  }

  .p-service-price__common-image {
    height: 180px;
    right: 24px;
    width: 180px;
  }

  .p-service-price__benefit .p-service-price__sep {
    display: inline;
    padding-left: 0;
  }
}

/* タブレットはPCの情報構成を保ちつつ、カード幅に合わせて密度を下げる。
   3列の料金カードにSP用の40px金額をそのまま載せると税込表記がはみ出し、
   PC用のアイコン配置を外すと512pxの元画像が等倍で表示されるため専用に調整。 */
@media (min-width: 561px) and (max-width: 967px) {
  /* セクション自身のpaddingで外側余白を作る。カードごとの追加余白は不要。 */
  .p-service-price__plans {
    gap: 14px;
  }

  .p-service-price__plan-body {
    padding: 10px 6px 9px;
  }

  .p-service-price__amount {
    margin-bottom: 9px;
  }

  .p-service-price__amount-label,
  .p-service-price__amount-tax {
    font-size: 13px;
  }

  .p-service-price__amount-label {
    margin-right: 5px;
  }

  .p-service-price__amount-tax {
    margin-left: 1px;
  }

  .p-service-price__amount-value {
    font-size: clamp(28px, calc(32 / 820 * 100vw), 32px);
  }

  .p-service-price__frequency {
    font-size: 14px;
    letter-spacing: 0.04em;
  }

  .p-service-price__rental {
    font-size: 14px;
    margin-top: 14px;
  }

  /* PCと同じく、ラベル・スタッフ・タニタを左右に分けて見せる。 */
  .p-service-price__common {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .p-service-price__common h3 {
    align-items: center;
    border-radius: 0 0 0 5px;
    display: flex;
    height: auto;
    justify-content: center;
    padding: 8px;
    writing-mode: vertical-rl;
  }

  .p-service-price__common .p-service-price__box-body {
    border-radius: 0 0 5px 0;
    padding: 16px 116px 12px 10px;
  }

  .p-service-price__common-copy {
    min-width: 0;
    padding-left: 62px;
    position: relative;
  }

  .p-service-price__common-staff {
    height: auto;
    left: 0;
    position: absolute;
    top: 2px;
    width: 50px;
  }

  .p-service-price__common-image {
    height: 100px;
    right: 8px;
    top: 16px;
    width: 100px;
  }

  .p-service-price__common-notes {
    font-size: 13px;
    margin-left: 62px;
    margin-top: 8px;
  }
}

/* iPad縦向き以上では、PC版のカード構成を一段コンパクトにして踏襲する。 */
@media (min-width: 768px) and (max-width: 967px) {
  .p-service-price__plans {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .p-service-price__plan {
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
    min-width: 0;
  }

  .p-service-price__plan h3 {
    border-radius: 5px 5px 0 0;
    font-size: clamp(24px, calc(30 / 820 * 100vw), 30px);
    height: 42px;
    line-height: 1.2;
    padding: 3px 0;
    text-align: center;
    width: 100%;
  }

  .p-service-price__plan-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 270px;
    padding: 18px 18px 14px;
  }

  .p-service-price__amount {
    align-items: baseline;
    display: grid;
    grid-template-areas:
      "text text"
      "price tax";
    grid-template-columns: max-content max-content;
    justify-content: start;
    margin: 0 0 12px 4px;
  }

  .p-service-price__amount-label {
    font-size: 16px;
    grid-area: text;
    margin: 0 0 4px;
  }

  .p-service-price__amount-value {
    font-size: clamp(36px, calc(45 / 820 * 100vw), 45px);
    grid-area: price;
    line-height: 1.1;
  }

  .p-service-price__amount-tax {
    align-self: end;
    font-size: 12px;
    grid-area: tax;
    margin: 0 0 0.45em -0.15em;
  }

  .p-service-price__frequency {
    border-bottom: none;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.45;
    padding: 13px 0 0;
  }

  .p-service-price__plan--vip .p-service-price__frequency {
    border-bottom: 1px solid #c8c8c8;
    padding-bottom: 20px;
  }

  .p-service-price__frequency-detail {
    font-size: 13px;
    letter-spacing: 0.06em;
    white-space: nowrap;
  }

  .p-service-price__plan:not(.p-service-price__plan--vip)
    .p-service-price__plan-body::after {
    background-color: #c8c8c8;
    content: "";
    flex: none;
    height: 1px;
    margin: auto auto 0;
    width: 58px;
  }

  .p-service-price__plan--vip .p-service-price__plan-body {
    min-height: 270px;
  }

  .p-service-price__rental {
    font-size: 16px;
    letter-spacing: 0;
    line-height: 1.55;
    margin: 24px 0 0;
    text-align: left;
  }

  .p-service-price__recommended {
    font-size: 14px;
    height: 70px;
    right: -4px;
    top: -29px;
    width: 70px;
  }

  .p-service-price__plan--recommended h3 {
    padding-right: 52px;
  }
}

/* PCカンプ（Figma 1008:99）: グレー背景に直接コンテンツを置く
   カンプは1920カンバス・コンテンツ幅1087（x415〜1502）。
   コンテンツ幅1090pxに適用 */
@media (min-width: 968px) {
  .p-service-price {
    /* 他セクションと同じコンテンツ幅1090pxを維持し、
       1024px以上ではPC用の情報密度・レイアウトへ切り替える。 */
    margin-inline: auto;
    max-width: 1090px;
    padding: clamp(40px, calc(64 / 1920 * 100vw), 64px) 0px;
    width: 100%;
  }

  /* カンプ: 「月額」は上段、金額と税込は下段に並べて中央揃え。 */
  .p-service-price__amount {
    align-items: baseline;
    display: grid;
    grid-template-areas:
      "text text"
      "price tax";
    grid-template-columns: max-content max-content;
    justify-content: center;
    margin-bottom: 10px;
    margin-left: 0.5em;
  }

  .p-service-price__amount-tax {
    align-self: end;
    font-size: 14px;
    grid-area: tax;
    line-height: 1.22;
    margin-bottom: 1em;
    margin-left: -0.3em;
    white-space: nowrap;
  }

  .p-service-price__amount-label {
    font-size: 20px;
    grid-area: text;
    letter-spacing: 0.07em;
    margin-bottom: 4px;
    margin-right: 0;
    white-space: nowrap;
    width: auto;
  }

  .p-service-price__amount-value {
    font-size: 60px;
    grid-area: price;
    white-space: nowrap;
  }

  .p-service-price__amount-currency {
    font-size: 0.714em;
  }

  /* カンプ: 1行目（専門職〜）は全文赤。1行に収まる上限23px */
  .p-service-price__benefit {
    font-size: clamp(15px, calc(23 / 1040 * 100vw), 23px);
    line-height: 1.3;
    margin-bottom: 14px;
  }

  .p-service-price__benefit span {
    color: inherit;
    font-size: inherit;
  }

  /* カンプ: 「タニタ体組成計：」以降は黒 */
  .p-service-price__benefit .p-service-price__benefit-sub {
    color: #333;
  }

  /* ラベル帯を左・本文を右に並べる */
  .p-service-price__box {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    margin-bottom: clamp(14px, calc(22 / 1040 * 100vw), 22px);
  }

  .p-service-price__box h3 {
    align-items: center;
    border-radius: 7px 0 0 7px;
    display: flex;
    font-size: clamp(15px, calc(22 / 1040 * 100vw), 22px);
    font-weight: 500;
    height: auto;
    justify-content: center;
    line-height: 1.5;
    padding: 12px;
  }

  /* カンプ: 年間特典・チケットの本文枠は線なしの白角丸 */
  .p-service-price__box-body {
    border: 0;
    border-radius: 0 7px 7px 0;
    min-width: 0;
    padding: clamp(12px, calc(16 / 1040 * 100vw), 16px)
      clamp(16px, calc(30 / 1040 * 100vw), 30px);
  }

  /* カンプ: バナーはコンテンツ幅より狭い973（0.92倍で895px）・中央寄せ */
  .p-service-price__campaign {
    margin-bottom: clamp(28px, calc(56 / 1040 * 100vw), 56px);
    margin-inline: auto;
    max-width: 895px;
  }

  /* 「全プラン共通」: 縦書きラベル。プランカード直下に密着し角丸は下側のみ */
  .p-service-price__common h3 {
    border-radius: 0 0 0 7px;
    padding: clamp(12px, calc(20 / 1040 * 100vw), 20px)
      clamp(8px, calc(12 / 1040 * 100vw), 12px);
    width: clamp(56px, calc(81 / 1040 * 100vw), 81px);
    writing-mode: vertical-rl;
  }

  .p-service-price__common .p-service-price__box-body {
    border: 1px solid #ef6968;
    border-radius: 0 0 7px 0;
    padding: clamp(20px, calc(28 / 1040 * 100vw), 28px)
      clamp(110px, calc(130 / 1040 * 100vw), 130px)
      clamp(20px, calc(28 / 1040 * 100vw), 28px)
      clamp(8px, calc(12 / 1040 * 100vw), 12px);
  }

  /* スタッフアイコンぶん左に余白（カンプ: アイコン67px＋間隔） */
  .p-service-price__common-copy {
    min-width: 0;
    padding-left: clamp(56px, calc(84 / 1040 * 100vw), 84px);
    position: relative;
  }

  .p-service-price__common-image {
    height: clamp(120px, calc(168 / 1040 * 100vw), 168px);
    right: clamp(4px, calc(8 / 1040 * 100vw), 8px);
    top: clamp(12px, calc(20 / 1040 * 100vw), 20px);
    transform: none;
    width: clamp(120px, calc(168 / 1040 * 100vw), 168px);
  }

  /* カンプ: 注釈も◎本文と同じ左位置に揃える */
  .p-service-price__common-notes {
    font-size: clamp(14px, calc(22 / 1040 * 100vw), 22px);
    line-height: 1.58;
    margin-left: clamp(56px, calc(84 / 1040 * 100vw), 84px);
    margin-top: clamp(12px, calc(20 / 1040 * 100vw), 20px);
  }

  .p-service-price__common-notes .pconly {
    display: list-item;
  }

  .p-service-price__common-staff {
    height: auto;
    left: 0;
    position: absolute;
    top: 4px;
    width: clamp(48px, calc(67 / 1040 * 100vw), 67px);
  }

  /* Figma 1012:183: 回数の上罫線は全プラン共通。下罫線はVIPのみ（レンタル案内の区切り）。 */
  .p-service-price__frequency {
    border-bottom: none;
    font-size: 30px;
    font-weight: 500;
    letter-spacing: 0.14em;
    line-height: 1.58;
    padding: 15px 0 0;
  }

  .p-service-price__plan--vip .p-service-price__frequency {
    border-bottom: 1px solid #c8c8c8;
    padding-bottom: 32px;
  }

  /* カード内で内訳を1行に保つ。 */
  .p-service-price__frequency-detail {
    font-size: 19px;
    letter-spacing: 0.14em;
    white-space: nowrap;
  }

  /* 1090px幅で「あなたに合った通い方を選べます」が1行に収まるサイズ */
  .p-service-price__heading {
    font-size: clamp(36px, calc(48 / 1040 * 100vw), 48px) !important;
    margin-bottom: clamp(24px, calc(44 / 1040 * 100vw), 44px) !important;
  }

  /* ほかのセクションと揃うコンテンツ幅1090px。 */
  .p-service-price__panel {
    margin-inline: auto;
    max-width: 1090px;
    padding-inline: 0;
    width: 100%;
  }

  /* 3カードは同じ高さ・タブは全幅 */
  .p-service-price__plan {
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
    min-width: 0;
  }

  .p-service-price__plan h3 {
    border-radius: 7px 7px 0 0;
    font-size: 47px;
    height: 65px;
    line-height: 1.2;
    padding: 4px 0;
    text-align: center;
    width: 100%;
  }

  .p-service-price__plan-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    padding: 24px 25px 0;
  }

  /* A・Bカード下部の飾り線（カンプ再現: 97px） */
  .p-service-price__plan:not(.p-service-price__plan--vip)
    .p-service-price__plan-body::after {
    background-color: #c8c8c8;
    content: "";
    flex: none;
    height: 1px;
    margin: clamp(40px, calc(60 / 1040 * 100vw), 60px) auto auto;
    width: 97px;
  }

  .p-service-price__plan--vip .p-service-price__plan-body {
    height: 444px;
    min-height: 0;
    padding-bottom: 28px;
  }

  /* バッジと重ならないよう、Bプランのタブ文字は左に寄せる（カンプ同様） */
  .p-service-price__plan--recommended h3 {
    padding-right: clamp(64px, calc(84 / 1040 * 100vw), 84px);
  }

  /* プランカードは「全プラン共通」ボックスに密着（枠線を重ねる） */
  .p-service-price__plans {
    gap: clamp(12px, calc(20 / 1040 * 100vw), 20px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: -1px;
  }

  /* オススメバッジ: fill #FAF0EC / stroke 2px #EF6968 */
  .p-service-price__recommended {
    background-color: #faf0ec;
    border: 2px solid #ef6968;
    box-shadow: none;
    font-size: clamp(14px, calc(21 / 1000 * 100vw), 21px);
    font-weight: 500;
    height: clamp(76px, calc(112 / 1000 * 100vw), 112px);
    line-height: 1.43;
    right: clamp(-5px, calc(-5 / 1000 * 100vw), -3px);
    top: clamp(-47px, calc(-47 / 1000 * 100vw), -32px);
    width: clamp(76px, calc(112 / 1000 * 100vw), 112px);
    z-index: 1;
  }

  /* Figma: レンタル案内は23px、カード左端から25px。 */
  .p-service-price__rental {
    font-size: 20px;
    letter-spacing: 0;
    line-height: 1.58;
    margin-top: 28px;
    text-align: left;
  }

  /* チケット（Figma 1040:83）: 左340px相当の赤ラベル＋2列リスト（基準幅1000px） */
  .p-service-price__ticket {
    border: 1px solid #ef6968;
    border-radius: 7px;
    overflow: hidden;
  }

  .p-service-price__ticket h3 {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    font-size: clamp(20px, calc(24 / 1000 * 100vw), 24px);
    font-weight: 500;
    justify-content: center;
    letter-spacing: 0;
    line-height: 35px;
    min-height: clamp(96px, calc(105 / 1000 * 100vw), 105px);
    padding: clamp(18px, calc(21 / 1000 * 100vw), 21px)
      clamp(20px, calc(24 / 1000 * 100vw), 24px);
    text-align: left;
    white-space: normal;
    width: clamp(280px, calc(340 / 1000 * 100vw), 340px);
  }

  .p-service-price__ticket-unit {
    display: block;
    padding-left: clamp(100px, calc(168 / 1000 * 100vw), 168px);
  }

  .p-service-price__ticket .p-service-price__box-body {
    align-items: center;
    display: flex;
    min-height: clamp(96px, calc(105 / 1000 * 100vw), 105px);
    padding: clamp(8px, calc(9 / 1000 * 100vw), 9px)
      clamp(16px, calc(20 / 1000 * 100vw), 20px);
  }

  /* 左列: マシン/パーソナル、右列: マット/カウンセリング（HTML並び順どおり2列グリッド） */
  .p-service-price__ticket ul {
    column-gap: clamp(10px, calc(20 / 1000 * 100vw), 20px);
    display: grid;
    font-size: clamp(15px, calc(18 / 1000 * 100vw), 18px);
    font-weight: 500;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: start;
    letter-spacing: -0.02em;
    line-height: 2.33;
    width: 100%;
  }

  .p-service-price__ticket li {
    white-space: nowrap;
  }

  /* カンプ: 赤い■の箇条書き */
  .p-service-price__ticket li::before {
    color: #ef6968;
    content: "■";
    padding-right: 2px;
  }

  .p-service-price__yearly h3 {
    letter-spacing: 0.1em;
    width: clamp(190px, calc(262 / 1040 * 100vw), 262px);
  }

  .p-service-price__yearly .p-service-price__box-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-inline: clamp(20px, calc(30 / 1040 * 100vw), 30px);
  }

  .p-service-price__yearly-lead {
    font-size: clamp(15px, calc(24 / 1040 * 100vw), 24px);
    letter-spacing: 0.1em;
    margin-bottom: 4px;
  }

  .p-service-price__yearly-note {
    font-size: clamp(12px, calc(18 / 1040 * 100vw), 18px);
    letter-spacing: 0.1em;
  }

  .p-service-price__yearly-note-detail {
    display: inline;
    padding-left: 0;
  }

  .p-service-price__yearly-note-line {
    display: inline;
  }
}

/* ============================================
   選ばれる3つの理由（p-service-reason / Figma 60:39）
   ============================================ */

.service .p-service-reason {
  background-color: #faf0ec;
  color: #333;
  padding: 27px 0 40px;
}

.p-service-reason__badge {
  align-items: center;
  background-color: #ef6968;
  border-radius: 50%;
  color: #fff;
  display: grid;
  height: 70px;
  justify-items: center;
  left: 0;
  line-height: 1.2;
  place-content: center;
  position: absolute;
  top: 0;
  width: 70px;
  z-index: 1;
}

.p-service-reason__badge-label {
  font-family: "Noto Serif JP", serif;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0.16em;
  line-height: 1.29;
}

.p-service-reason__badge-num {
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.15;
}

.p-service-reason__card {
  background-color: #fff;
  border-radius: 10px;
  margin-bottom: 0;
  overflow: hidden;
  padding: 8px 12px 28px;
  position: relative;
}

.p-service-reason__cards {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1fr);
}

.p-service-reason__feature {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: 50px minmax(0, 1fr);
  margin-bottom: 0;
}

.p-service-reason__feature-icon {
  align-items: center;
  background-color: #ef6968;
  border-radius: 50%;
  display: grid;
  height: 50px;
  justify-items: center;
  overflow: hidden;
  place-content: center;
  width: 50px;
}

.p-service-reason__feature-icon img {
  display: block;
  height: 36px;
  object-fit: contain;
  width: 36px;
}

.p-service-reason__feature-label {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(15px, calc(17 / 390 * 100vw), 18px);
  font-weight: 400;
  line-height: 1.41;
  text-align: center;
}

.p-service-reason__features {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  margin: 0 0 20px;
  padding: 0 10px;
}

.p-service-reason__heading {
  font-size: clamp(22px, calc(24 / 390 * 100vw), 24px);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.49;
  margin-bottom: 24px;
  text-align: center;
}

.p-service-reason__heading-num {
  color: #ef6968;
  font-size: clamp(30px, calc(34 / 390 * 100vw), 34px);
  font-weight: 600;
}

.p-service-reason__image {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  width: 100%;
}

.p-service-reason__inner {
  margin-inline: auto;
  max-width: 390px;
  padding-inline: 15px;
}

.p-service-reason__points {
  display: grid;
  list-style: none;
  margin: 0;
  padding: 0 8px;
  row-gap: 16px;
}

.p-service-reason__points li {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(15px, calc(18 / 390 * 100vw), 18px);
  font-weight: 400;
  line-height: 1.41;
  margin-bottom: 0;
  padding-left: 22px;
  position: relative;
}

/* チェックアイコン（Figma書き出し）※他背景と同じ相対パス慣習に合わせる */
.p-service-reason__points li::before {
  background: url(../../assets/images/service/reason/check.svg) center / contain
    no-repeat;
  content: "";
  height: 16px;
  left: 0;
  position: absolute;
  top: 0.35em;
  width: 14px;
}

/* バッジは absolute なので、タイトルはカード全幅で中央揃え（左余白を足さない） */
.p-service-reason__title {
  display: grid;
  justify-items: center;
  margin-bottom: 12px;
  padding-top: 4px;
  text-align: center;
}

.p-service-reason__title-accent {
  color: #ef6968;
  font-size: clamp(26px, calc(30 / 390 * 100vw), 30px);
  font-weight: 700;
  line-height: 1.22;
}

.p-service-reason__title-lead {
  color: #333;
  font-size: clamp(18px, calc(20 / 390 * 100vw), 20px);
  font-weight: 600;
  line-height: 1.49;
}

.p-service-reason__visual {
  height: 155px;
  margin-bottom: 18px;
  overflow: hidden;
}

@media (min-width: 769px) {
  /* PCカンプ（Figma 1005:75 カード348px）をコンテンツ幅1000px・3カラム
     （カード320px ≒ カンプの0.92倍）に合わせて適用 */
  .service .p-service-reason {
    padding: clamp(48px, calc(64 / 1040 * 100vw), 64px) 0
      clamp(56px, calc(80 / 1040 * 100vw), 80px);
  }

  /* カンプ: バッジ95px（0.92倍で88px）・カード左上角に密着 */
  .p-service-reason__badge {
    height: clamp(64px, calc(88 / 1040 * 100vw), 88px);
    width: clamp(64px, calc(88 / 1040 * 100vw), 88px);
  }

  .p-service-reason__badge-label {
    font-size: clamp(16px, calc(22 / 1040 * 100vw), 22px);
    letter-spacing: 0.17em;
    line-height: 1.1;
  }

  .p-service-reason__badge-num {
    font-size: clamp(24px, calc(33 / 1040 * 100vw), 33px);
    line-height: 1.1;
  }

  .p-service-reason__card {
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    padding: 0 clamp(12px, calc(16 / 1040 * 100vw), 16px)
      clamp(24px, calc(32 / 1040 * 100vw), 32px);
  }

  .p-service-reason__cards {
    align-items: stretch;
    gap: clamp(16px, calc(20 / 1040 * 100vw), 20px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  /* アイコン＋横ラベルはflexで自然幅にし、ラベルは<br>の2段のまま
     3段目に折り返させない（nowrap） */
  .p-service-reason__feature {
    display: flex;
    gap: clamp(2px, calc(6 / 1040 * 100vw), 6px);
  }

  /* カンプ: アイコン円50px（0.92倍で46px） */
  .p-service-reason__feature-icon {
    height: clamp(36px, calc(46 / 1040 * 100vw), 46px);
    width: clamp(36px, calc(46 / 1040 * 100vw), 46px);
  }

  .p-service-reason__feature-icon img {
    height: clamp(26px, calc(33 / 1040 * 100vw), 33px);
    width: clamp(26px, calc(33 / 1040 * 100vw), 33px);
  }

  /* カンプ: ラベル18px（0.92倍で17px）/ 行間133% */
  .p-service-reason__feature-label {
    font-size: clamp(13px, calc(17 / 1040 * 100vw), 17px);
    line-height: 1.33;
    white-space: nowrap;
  }

  .p-service-reason__features {
    display: flex;
    justify-content: space-between;
    margin-bottom: clamp(18px, calc(24 / 1040 * 100vw), 24px);
    padding-inline: 0;
  }

  .p-service-reason__heading {
    font-size: clamp(28px, calc(36 / 1040 * 100vw), 36px);
    margin-bottom: clamp(32px, calc(40 / 1040 * 100vw), 40px);
  }

  .p-service-reason__heading-num {
    font-size: clamp(40px, calc(48 / 1040 * 100vw), 48px);
  }

  /* コンテンツ幅1090px（左右pad 20を除いた実質幅） */
  .p-service-reason__inner {
    max-width: 1090px;
    padding-inline: 20px;
  }

  .p-service-reason__points {
    padding-inline: 0;
    row-gap: clamp(20px, calc(30 / 1040 * 100vw), 30px);
  }

  /* カンプ: 本文17px / 行間149%（0.92倍で16px） */
  .p-service-reason__points li {
    font-size: clamp(13px, calc(16 / 1040 * 100vw), 16px);
    line-height: 1.49;
    padding-left: clamp(16px, calc(18 / 1040 * 100vw), 18px);
  }

  /* カンプ: タイトルはバッジ右側の領域（x=85〜）で中央揃え */
  .p-service-reason__title {
    margin-bottom: clamp(20px, calc(28 / 1040 * 100vw), 28px);
    padding-left: clamp(48px, calc(78 / 1040 * 100vw), 78px);
    padding-top: clamp(10px, calc(14 / 1040 * 100vw), 14px);
  }

  /* カンプ: アクセント38px（0.92倍で34px）。「筋肉貯金」を1行で保つ */
  .p-service-reason__title-accent {
    font-size: clamp(25px, calc(34 / 1040 * 100vw), 34px);
    letter-spacing: 0.06em;
    line-height: 1.22;
    white-space: nowrap;
  }

  /* カンプ: リード28px（0.92倍で26px） */
  .p-service-reason__title-lead {
    font-size: clamp(19px, calc(26 / 1040 * 100vw), 26px);
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.22;
    white-space: nowrap;
  }

  /* カンプ: 画像312×211（比率固定で可変） */
  .p-service-reason__visual {
    aspect-ratio: 312 / 211;
    height: auto;
    margin-bottom: clamp(22px, calc(28 / 1040 * 100vw), 28px);
  }
}

/* ============================================
   基本情報テーブル（service）
   shop.css のカラフルな th 色を #333 に上書き
   ============================================ */
.p-service-info .p-shop__data__table table th,
.p-service-info .p-shop__data__table table tr:first-child th,
.p-service-info .p-shop__data__table table tr:last-child th {
  color: #333;
}

.p-service-amenity .p-shop__amenity-card__text p {
  font-weight: 400;
}

@media (min-width: 769px) {
  .service .p-shop__amenity-cards,
  .service .p-service-info .p-shop__data__table {
    margin-inline: auto;
    max-width: 1090px;
    width: 100%;
  }
}

/* ============================================
   姉妹店バナー（p-service-ekimae / Figma 1039:54）
   ============================================ */

.p-service-ekimae-wrap {
  margin-inline: auto;
  max-width: 1090px;
  width: 100%;
  padding: 40px 20px;
}

/* バナー上のマイクロコピー */
.p-service-ekimae__lead {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 10px;
}

@media (min-width: 769px) {
  .p-service-ekimae__lead {
    font-size: clamp(16px, calc(20 / 1040 * 100vw), 20px);
    margin-bottom: 12px;
  }
}

/* SPカンプ（Figma 1040:82・330×277）: 写真上／テキスト＋矢印の縦積み。
   カンプに「店舗詳細・アクセス」テキストは無いためSPでは非表示 */
.p-service-ekimae {
  align-items: stretch;
  background-color: #fff;
  border: 2px solid #dadada;
  border-radius: 6px;
  color: #333;
  display: grid;
  grid-template-areas:
    "photo"
    "info";
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  position: relative;
  text-decoration: none;
}

.p-service-ekimae__photo {
  aspect-ratio: 330 / 147;
  grid-area: photo;
  overflow: hidden;
  width: 100%;
}

.p-service-ekimae__photo img {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  width: 100%;
}

/* カンプ: テキストブロック 左右22px・上19px・下17px、要素間gap10px */
.p-service-ekimae__info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  grid-area: info;
  padding: 19px 22px 17px;
}

.p-service-ekimae__cta-group {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: clamp(8px, calc(12 / 1040 * 100vw), 12px);
}

.p-service-ekimae__eyebrow {
  color: #ef6968;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.43;
  margin: 0;
}

/* 店名と「店舗詳細・アクセス」を横並び（TB以上）。SPはCTA非表示のため店名のみ */
.p-service-ekimae__name-wrap {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-top: -0.5em;
}

/* カンプ: 店名 24px・Regular(400) */
.p-service-ekimae__name {
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1.33;
  margin-bottom: 0;
}

.p-service-ekimae__tags {
  display: flex;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* SP: タグ 14px（春日側バナーと揃える） */
.p-service-ekimae__tags li {
  border: 1px solid #ef6968;
  color: #ef6968;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.5;
  margin-bottom: 0;
  padding: 2px 10px;
  white-space: nowrap;
}

/* カンプ（SP・560px以下）には「店舗詳細・アクセス」テキストが無いため非表示。TB以上で表示 */
.p-service-ekimae__cta-text {
  color: #000;
  display: none;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.4;
}

/* カンプ: 赤い30×30四角に白い右矢印 */
.p-service-ekimae__arrow {
  align-items: center;
  background-color: #ef6968;
  color: #fff;
  display: flex;
  flex-shrink: 0;
  height: 30px;
  justify-content: center;
  width: 30px;
}

.p-service-ekimae__arrow svg {
  display: block;
  height: 18px;
  width: 18px;
}

@media (min-width: 561px) {
  /* TB以上はPCカンプ（1039:54）: 横長バナー（高さ150px）
     白背景・赤2px枠／左に写真33%／中央テキスト／右にリンク文言＋赤矢印 */
  .p-service-ekimae {
    align-items: stretch;
    border-radius: 0;
    display: flex;
    height: 150px;
  }

  .p-service-ekimae__photo {
    aspect-ratio: auto;
    flex: none;
    width: 33%;
  }

  .p-service-ekimae__photo img {
    object-position: center;
  }

  .p-service-ekimae__info {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: clamp(6px, calc(10 / 1000 * 100vw), 10px);
    justify-content: center;
    min-width: 0;
    padding: clamp(12px, calc(20 / 1000 * 100vw), 20px)
      clamp(16px, calc(28 / 1000 * 100vw), 28px);
  }

  .p-service-ekimae__eyebrow {
    font-size: 12px;
  }

  .p-service-ekimae__name {
    font-size: clamp(24px, calc(32 / 1040 * 100vw), 32px);
  }

  .p-service-ekimae__tags li {
    font-size: clamp(13px, calc(16 / 1040 * 100vw), 16px);
  }

  /* TB以上: name-wrap内で店名とリンク文言を両端に配置 */
  .p-service-ekimae__cta-text {
    display: block;
    flex-shrink: 0;
    font-size: clamp(14px, calc(16 / 1040 * 100vw), 16px);
    white-space: nowrap;
  }

  .p-service-ekimae__arrow {
    height: 30px;
    width: 30px;
  }

  .p-service-ekimae__arrow svg {
    height: 18px;
    width: 18px;
  }
}
