@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=The+Nautigal:wght@700&display=swap');

/* ===========================
   Header overrides
=========================== */
.is-lp-page header .header__item a,
.is-lp-page header .header__sub-item a {
  color: #112C65;
}
.is-lp-page header svg path {
  fill: #112C65;
}
.is-lp-page .drawer-icon .drawer-icon__bar01,
.is-lp-page .drawer-icon .drawer-icon__bar02 {
  background-color: #112C65;
}
body {
  background-color: #fff;
}

/* ===========================
   Variables
=========================== */
.lp-ai-treatment {
  --color-primary: #01285e;
  --color-accent: #0a83c7;
  --color-red: #ff2b13;
  --color-cta-red: #f00c4c;
  --color-text: #333333;
  --font-mincho: 'Shippori Mincho', serif;
  --font-gothic: 'Noto Sans JP', sans-serif;
  --font-great-vibes: 'Great Vibes', cursive;
  --font-nautigal: 'The Nautigal', cursive;
}

.sp-only {
  display: none;
}
@media (max-width: 767px) {
  .sp-only {
    display: block;
  }
  .pc-only {
    display: none;
  }
}

/* ===========================
   animation
=========================== */

.js-fadeIn {
  opacity: 0;
  transition: opacity 1s;
}
.js-fadeIn.is-active {
  opacity: 1;
}

.js-fadeUp {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s, transform 1s;
}
.js-fadeUp.is-active {
  opacity: 1;
  transform: translateY(0);
}



/* ===========================
   Common Heading
=========================== */
.common-heading {
  text-align: center;
}

.common-heading__subtitle {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 26px;
  color: var(--color-primary);
  line-height: 1.5;
}

.common-heading__deco {
  display: block;
  margin: 0 auto 2px;
  width: 232px;
}

.common-heading__title {
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: 52px;
  color: var(--color-primary);
  letter-spacing: 0.09em;
  line-height: 1.5;
}


/* ===========================
   FV Section
=========================== */
.fv {
  padding-top: 136px;
  padding-bottom: 60px;
  overflow: hidden;
  background-image: url(../images/lp-ai-treatment/fv_bg.webp);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.fv__inner {
  max-width: 1440px;
  padding-left: min(calc(100vw / 1440 * 92), 92px);
  margin-left: auto;
  margin-right: auto;
}

/* PC: 左60% コンテンツ / 右40% 画像 */
.fv__flex {
  display: flex;
  row-gap: 39px;
}

.fv__body {
  width: 55%;
}

/* ===========================
   FV Heading
=========================== */
.fv__heading {
  padding-inline: min(calc(100vw / 1440 * 72), 72px);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 1;
}

.fv__heading::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(calc(100vw / 1440 * 760), 760px);
  height: min(calc(100vw / 1440 * 567), 567px);
  background: rgba(255, 255, 255, 0.66);
  filter: blur(46.7px);
  border-radius: 50%;
  pointer-events: none;
  z-index: -1;
}

.fv__store {
  position: relative;
  z-index: 1;
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: min(calc(100vw / 1440 * 20), 20px);
  color: var(--color-text);
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: min(calc(100vw / 1440 * 22), 22px);
}

.fv__lead {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: min(calc(100vw / 1440 * 24), 24px);
  color: #fff;
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding: 8px 20px;
  background: #112C65;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: max(calc(-100vw / 1440 * 26), -26px);
  position: relative;
  z-index: 2;
}

.fv__title-wrap {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(calc(100vw / 1440 * 25), 25px);
  width: 100%;
}

.fv__deco-line {
  display: block;
  width: 100%;
  height: 1px;
  background: #000;
}

.fv__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(calc(100vw / 1440 * 35), 35px);
  font-family: var(--font-mincho);
  font-weight: 600;
  font-size: min(calc(100vw / 1440 * 56), 56px);
  color: var(--color-primary);
  letter-spacing: 0.01em;
  line-height: 1.17;
  text-align: center;
  padding-right: 8%;
}

.fv__title-group {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.fv__title-cross {
  width: min(calc(100vw / 1440 * 44), 44px);
  height: min(calc(100vw / 1440 * 44), 44px);
  position: relative;
}
.fv__title-cross::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 140%;
  height: 1.52px;
  background-color: #7C97A3;
}
.fv__title-cross::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
  width: 140%;
  height: 1.52px;
  background-color: #7C97A3;
}

.fv__catch {
  margin-top: min(calc(100vw / 1440 * 23), 23px);
  margin-inline: -1%;
  width: 102%;
  position: relative;
  z-index: 1;
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: min(calc(100vw / 1440 * 35), 35px);
  color: var(--color-text);
  letter-spacing: 0.01em;
  line-height: 1.5;
  text-align: center;
  font-style: normal;
}

.fv__em {
  font-style: normal;
  color: var(--color-red);
  font-size: min(calc(100vw / 1440 * 51), 51px);
}

.fv__medium {
  font-size: min(calc(100vw / 1440 * 41), 41px);
}

.fv__big {
  font-size: min(calc(100vw / 1440 * 51), 51px);
}

/* ===========================
   FV List (Cards)
=========================== */
.fv__list {
  margin-top: min(calc(100vw / 1440 * 21), 21px);
  position: relative;
  z-index: 2;
}

.fv__card-row {
  display: flex;
  gap: min(calc(100vw / 1440 * 10), 10px);
}

.fv__card {
  width: min(calc(100vw / 1440 * 232), 232px);
  position: relative;
  background: #fff;
  border: 1px solid #ccc;
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.1);
  height: min(calc(100vw / 1440 * 92), 92px);
  display: flex;
  align-items: center;
  z-index: 1;
}
.fv__card:nth-child(1) {
  padding-left: min(calc(100vw / 1440 * 24), 24px);
}
.fv__card:nth-child(2) {
  padding-left: min(calc(100vw / 1440 * 11), 11px);
  width: min(calc(100vw / 1440 * 253), 253px);
}
.fv__card:nth-child(3) {
  padding-left: min(calc(100vw / 1440 * 30), 30px);
}

.fv__card-color {
  color: var(--color-accent);
}

.fv__card-icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  object-fit: contain;
  z-index: -1;
}
.fv__card:nth-child(1) .fv__card-icon {
  right: min(calc(100vw / 1440 * 4), 4px);
  width: min(calc(100vw / 1440 * 86), 86px);
  height: min(calc(100vw / 1440 * 86), 86px);
}
.fv__card:nth-child(2) .fv__card-icon {
  right: min(calc(100vw / 1440 * 10), 10px);
  width: min(calc(100vw / 1440 * 81), 81px);
  height: min(calc(100vw / 1440 * 81), 81px);
}
.fv__card:nth-child(3) .fv__card-icon {
  right: min(calc(100vw / 1440 * 20), 20px);
  width: min(calc(100vw / 1440 * 73), 73px);
  height: min(calc(100vw / 1440 * 73), 73px);
}


.fv__card-text {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: min(calc(100vw / 1440 * 16), 16px);
  color: var(--color-text);
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.fv__card:nth-child(2) .fv__card-text {
  line-height: 1.2;
}

.fv__card-accent {
  color: var(--color-accent);
  font-size: min(calc(100vw / 1440 * 20), 20px);
}

.fv__card-count {
  font-size: min(calc(100vw / 1440 * 26), 26px);
  color: var(--color-text);
}

.fv__card-middle {
  font-size: min(calc(100vw / 1440 * 20), 20px);
}

.fv__card-num {
  color: var(--color-accent);
  font-size: min(calc(100vw / 1440 * 26), 26px);
  line-height: 1.23;
}

.fv__card-price .fv__card-num {
  font-size: min(calc(100vw / 1440 * 28), 28px);
  line-height: 1.23;
}

.fv__card-price {
  color: var(--color-accent);
}

.fv__card-yen {
  color: var(--color-accent);
  font-size: min(calc(100vw / 1440 * 16), 16px);
}

/* ===========================
   FV CTA
=========================== */
.fv__cta {
  margin-top: min(calc(100vw / 1440 * 45), 45px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  position: relative;
  z-index: 2;
}

.fv__cta-lead {
  display: flex;
  align-items: flex-end;
  gap: 0;
  font-family: var(--font-gothic);
  font-weight: 700;
  color: var(--color-text);
  white-space: nowrap;
  letter-spacing: 0.01em;
}

.fv__cta-badge {
  align-self: center;
  background: var(--color-cta-red);
  color: #fff;
  font-size: 20px;
  line-height: 1.5;
  padding: 0 4px;
  margin-right: 8px;
  flex-shrink: 0;
}

.fv__cta-num {
  color: var(--color-cta-red);
  font-size: 36px;
  line-height: 1.5;
}

.fv__cta-yen {
  color: var(--color-cta-red);
  font-size: 20px;
  line-height: 39px;
  letter-spacing: 0.08em;
}

.fv__cta-de {
  font-size: 22px;
  line-height: 39px;
}

.fv__cta-copy {
  font-size: 26px;
  line-height: 44px;
}

.fv__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: min(434px, 100%);
  height: 76px;
  background: linear-gradient(79.68deg, #0086db 0%, #00e1be 100%);
  filter: drop-shadow(4px 10px 20px rgba(0, 0, 0, 0.1));
  border: 3px solid #fff;
  border-radius: 10px;
  color: #fff;
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: 26px;
  letter-spacing: -0.02em;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s;
}

@media (hover: hover) {
  .fv__cta-btn:hover {
    opacity: 0.7;
  }
}

.fv__cta-arrow {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}

.fv__image {
  flex: 1;
  margin-left: min(calc(100vw / 1440 * 39), 39px);
  margin-right: max(calc(-100vw / 1440 * 39), -39px);
  margin-top: min(calc(100vw / 1440 * 74), 74px);
  position: relative;
  z-index: 1;
}

/* ===========================
   SP (max-width: 767px)
=========================== */
@media (max-width: 767px) {
  .fv {
    padding-top: 42px;
    padding-bottom: 12px;
    background-image: url(../images/lp-ai-treatment/fv_bg_sp.webp);
  }

  .fv__inner {
    padding-left: 0;
    margin-inline: auto;
    max-width: 450px;
  }

  .fv__flex {
    flex-direction: column;
    row-gap: 0;
  }

  .fv__body {
    display: contents;
  }

  /* SP order: heading → image → list → cta */
  .fv__heading { order: 1; }
  .fv__image   { order: 2; }
  .fv__list    { order: 3; }
  .fv__cta     { order: 4; }

  /* SP heading */
  .fv__heading {
    padding: 40px min(calc(100vw / 375 * 16), 16px) 20px;
  }

  .fv__heading::before {
    width: 355px;
    height: 330px;
    filter: blur(27.16px);
    top: 26px;
  }

  .fv__store {
    font-size: 16px;
    margin-bottom: 4px;
  }

  .fv__lead {
    font-size: 1rem;
    padding: 0.25rem 0.75rem;
    margin-bottom: -1rem;
  }

  .fv__title-wrap {
    gap: 11px;
  }

  .fv__title-cross {
    width: min(calc(100vw / 375 * 25), 25px);
    height: min(calc(100vw / 375 * 25), 25px);
  }

  .fv__title {
    font-size: min(calc(100vw / 375 * 32), 32px);
    gap: min(calc(100vw / 375 * 20), 20px);
    padding-right: 0;
  }

  .fv__catch {
    font-size: min(calc(100vw / 375 * 20), 20px);
  }

  .fv__em,
  .fv__big {
    font-size: min(calc(100vw / 375 * 30), 30px);
  }

  .fv__medium {
    font-size: min(calc(100vw / 375 * 23), 23px);
  }


  /* SP image */
  .fv__image {
    width: 89%;
    position: relative;
    z-index: 2;
    margin-inline: auto;
    transform: translateX(6%);
    margin-top: 0px;
  }

  .fv__image img {
    height: auto;
    object-fit: initial;
  }

  /* SP list: 2枚横並び + 3枚目全幅 */
  .fv__list {
    margin-top: 28px;
    padding-inline: min(calc(100vw / 375 * 12), 12px);
  }

  .fv__card-row {
    flex-wrap: wrap;
    gap: 10px;
  }

  .fv__card-row .fv__card {
    flex: 0 0 calc(50% - 5px);
  }

  .fv__card-row .fv__card.fv__card--wide {
    flex: 0 0 100%;
  }

  .fv__card {
    min-height: 72px;
  }

  .fv__card--wide {
    min-height: 56px;
  }

  .fv__card-text {
    font-size: min(calc(100vw / 375 * 14), 14px);
  }
  .fv__card:nth-child(1) .fv__card-text {
    line-height: 1.3;
    padding-bottom: 4px;
  }
  .fv__card:nth-child(3) .fv__card-text {
    font-size: min(calc(100vw / 375 * 16), 16px);
  }

  .fv__card-accent {
    font-size: min(calc(100vw / 375 * 16), 16px);
  }

  .fv__card-count {
    font-size: min(calc(100vw / 375 * 20), 20px);
  }

  .fv__card-middle {
    font-size: min(calc(100vw / 375 * 14), 14px);
  }

  .fv__card-num {
    font-size: min(calc(100vw / 375 * 26), 26px);
  }

  .fv__card-price .fv__card-num {
    font-size: min(calc(100vw / 375 * 26), 26px);
  }

  .fv__card-yen {
    font-size: min(calc(100vw / 375 * 18), 18px);
  }

  .fv__card:nth-child(1),
  .fv__card:nth-child(2) {
    padding-left: min(calc(100vw / 375 * 10), 10px);
  }
  .fv__card:nth-child(3) {
    padding-left: min(calc(100vw / 375 * 40), 40px);
  }

  .fv__card:nth-child(1) .fv__card-icon {
    width: min(calc(100vw / 375 * 42), 42px);
    height: min(calc(100vw / 375 * 42), 42px);
    right: 6px;
  }
  .fv__card:nth-child(2) .fv__card-icon {
    width: min(calc(100vw / 375 * 54), 54px);
    height: min(calc(100vw / 375 * 50), 50px);
    right: 8px;
  }
  .fv__card:nth-child(3) .fv__card-icon {
    width: min(calc(100vw / 375 * 48), 48px);
    height: min(calc(100vw / 375 * 46), 46px);
    right: min(calc(100vw / 375 * 21), 21px);
  }

  /* SP CTA */
  .fv__cta {
    margin-top: 21px;
  }

  .fv__cta-badge {
    font-size: 16px;
  }

  .fv__cta-num {
    font-size: 28px;
  }

  .fv__cta-yen {
    font-size: 16px;
    line-height: 2;
  }

  .fv__cta-de {
    font-size: 18px;
    line-height: 2;
  }

  .fv__cta-copy {
    font-size: 20px;
    line-height: 1.87;
  }

  .fv__cta-btn {
    width: 100%;
    max-width: min(calc(100vw / 375 * 344), 344px);
    height: 58px;
    font-size: min(calc(100vw / 375 * 20), 20px);
    border-width: 2px;
    border-radius: 8px;
    gap: 18px;
  }

  .fv__cta-arrow {
    width: 13px;
    height: 13px;
  }
}

/* ===========================
   Pain Section
=========================== */
.pain {
  position: relative;
  background: linear-gradient(to bottom, #d8d8d8 0%, #ffffff 72%);
  overflow: hidden;
  padding-bottom: calc(100vw / 1440 * 145);
}

.pain__inner {
  max-width: 940px;
  margin: 0 auto;
  padding: 53px 20px 0;
  position: relative;
}

/* 右背景写真 */
.pain__bg-photo {
  position: absolute;
  right: 0;
  top: 0;
  width: min(calc(100vw / 1440 * 677), 677px);
  margin: 0;
  pointer-events: none;
  z-index: 0;
}

.pain__bg-photo::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(to bottom, transparent 0%, #f0f0f0 85%);
  pointer-events: none;
}

.pain__bg-photo img {
  width: 100%;
  height: auto;
  display: block;
}

/* 見出し */
.pain__title {
  position: relative;
  z-index: 1;
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: min(calc(100vw / 1000 * 52), 52px);
  color: var(--color-text);
  line-height: 1.35;
  letter-spacing: 0.007em;
}

.pain__title span {
  font-size: min(calc(100vw / 1000 * 46), 46px);
}

.pain__cards {
  margin-top: 70px;
  position: relative;
  z-index: 1;
  display: flex;
  gap: 16px;
}

.pain__card {
  flex: 1;
  background: #fff;
  display: flex;
  flex-direction: column;
  border-radius: 0 0 8px 8px;
}

.pain__card-top {
  position: relative;
}

.pain__card-img {
  display: block;
  width: 100%;
  height: 152px;
  object-fit: cover;
}

.pain__badge {
  position: absolute;
  top: -40px;
  left: 9px;
  width: 68px;
  z-index: 2;
}
.pain__card:nth-child(1) .pain__badge {
  top: -30px;
  left: 1px;
}
.pain__card:nth-child(4) .pain__badge {
  top: -28px;
  left: 13px;
}

.pain__badge > img {
  display: block;
  width: 100%;
  height: auto;
}

.pain__card-text {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 16px;
  color: var(--color-text);
  line-height: 1.5;
  letter-spacing: 0.01em;
  text-align: center;
  padding: 8px 8px 12px;
}

.pain__card-em {
  color: #2e59ad;
  display: inline-block;
}

/* ボトムセクション */
.pain__bottom {
  margin-top: 50px;
  margin-inline: -20px;
  padding-right: 12px;
  width: calc(100% + 50px);
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(calc(100vw / 1440 * 50), 50px);
}

/* 写真ブロック */
.pain__photo {
  position: relative;
  flex-shrink: 0;
  width: 43%;
}

/* メッセージブロック */
.pain__message {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding-bottom: 10px;
}

.pain__message-lead {
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: min(calc(100vw / 1000 * 26), 26px);
  color: var(--color-text);
  line-height: 1.5;
  letter-spacing: 0.01em;
  white-space: nowrap;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 16px;
  text-decoration-color: #4B4B4B;
}

.pain__message-main {
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: min(calc(100vw / 1000 * 30), 30px);
  color: var(--color-primary);
  line-height: 1.5;
  letter-spacing: 0.01em;
  white-space: nowrap;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 16px;
  text-decoration-color: #4B4B4B;
}

@media screen and (min-width: 2200px) {
  .pain__bg-photo {
    width: 780px;
  }
}

@media screen and (max-width: 939.98px) {
  .pain {
    padding-bottom: 145px;
  }
  .pain__cards {
    flex-wrap: wrap;
    row-gap: 50px;
  }
  .pain__card {
    flex: auto;
    width: calc((100% - 16px) / 2);
  }
  .pain__bg-photo {
    width: 580px;
  }
}


/* ===========================
   Solution Section
=========================== */
.solution {
  background: #F0F6F9;
  position: relative;
  z-index: 2;
}

.solution::before {
  position: absolute;
  top: calc(-100vw / 1440 * 220);
  left: 0;
  content: "";
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 750;
  background-image: url(../images/lp-ai-treatment/solution_bg_top.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
}

.solution::after {
  position: absolute;
  bottom: calc(-100vw / 1440 * 150);
  left: 0;
  content: "";
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 750;
  background-image: url(../images/lp-ai-treatment/solution_bg_bottom.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom center;
  max-height: 1778px;
}

.solution__deco {
  position: absolute;
  top: -110px;
  left: calc(50% - 4px);
  width: 1px;
  height: 81px;
  background-color: #01285E;
}
.solution__deco::after {
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-45%);
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: #01285E;
}

.solution__header {
  text-align: center;
  padding: 0 20px 100px;
  position: relative;
  z-index: 1;
}

.solution__subtitle {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 26px;
  color: var(--color-text);
  letter-spacing: 0.02em;
  line-height: 1.5;
  margin-bottom: 22px;
}

.solution__circles-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 18px;
}

.solution__circle-wrap {
  position: relative;
  width: 189px;
  height: 189px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.solution__circle-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.solution__circle-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: 38px;
  color: #fff;
  text-align: center;
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  margin: 0;
}
.solution__circle-wrap--right .solution__circle-text {
  letter-spacing: -0.03em;
}

.solution__circles-x {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  position: relative;
}
.solution__circles-x::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 140%;
  height: 1.52px;
  background-color: #7C97A3;
}
.solution__circles-x::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
  width: 140%;
  height: 1.52px;
  background-color: #7C97A3;
}

.solution__circles-de {
  font-family: var(--font-mincho);
  font-weight: 500;
  font-size: 40px;
  color: var(--color-text);
  flex-shrink: 0;
  padding-top: 30px;
  line-height: 1;
}

.solution__headline {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  margin: 0;
}

.solution__headline-pre,
.solution__headline-post {
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: 32px;
  color: var(--color-text);
  letter-spacing: 0.07em;
  line-height: 1.5;
}

.solution__headline-em {
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: 40px;
  color: #008bd9;
  letter-spacing: 0.07em;
  line-height: 1.5;
}

.solution__headline-excl {
  display: inline-block;
  transform: rotate(-34.27deg);
  font-size: 34px;
}

/* ===========================
   Solution Reasons
=========================== */
.solution__inner {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  gap: 76px;
  position: relative;
  z-index: 1;
}

.solution__reason {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}

.solution__reason-content {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.solution__reason-header {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.solution__reason-label-row {
  display: flex;
  align-items: center;
  gap: 18px;
}

.solution__reason-label {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #0a4598;
  white-space: nowrap;
  flex-shrink: 0;
}

.solution__reason-en {
  font-family: var(--font-great-vibes);
  font-weight: 400;
  font-size: 40px;
  letter-spacing: 0.05em;
  line-height: normal;
}

.solution__reason-num {
  font-family: var(--font-nautigal);
  font-weight: 700;
  font-size: 32px;
  line-height: normal;
}

.solution__reason-line {
  display: block;
  height: 1px;
  background: #5276A9;
  transition: all 1s;
}
.solution__reason-label-row.is-active .solution__reason-line {
  flex: 1;
}

.solution__reason-title {
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: min(calc(100vw / 1000 * 30), 30px);
  color: var(--color-primary);
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin: 0;
}

.solution__reason-body {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 18px;
  color: var(--color-text);
  line-height: 1.8;
  margin: 0;
}

.solution__reason-image {
  flex-shrink: 0;
  width: 40%;
  margin: 0;
}

.solution__reason-image img {
  width: 100%;
  height: auto;
  display: block;
}


@media screen and (min-width: 1441px) {
  .solution__deco {
    top: calc(-100vw / 1440 * 110);
  }
}

@media screen and (min-width: 2000px)  {
  .solution__deco {
    top: calc(-100vw / 2000 * 140);
  }
}

@media screen and (max-width: 939.98px) {
  .solution__deco {
    top: -90px;
  }
}



/* ===========================
   Service Section
=========================== */
.service {
  margin-top: calc(100vw / 1440 * 66);
  position: relative;
  background: #fff;
  overflow: hidden;
  padding-bottom: 95px;
  z-index: 1;
}
.service::before {
  content: '';
  position: absolute;
  left: 0px;
  top: 23px;
  width: 449px;
  height: auto;
  aspect-ratio: 449 / 315;
  background: url(../images/lp-ai-treatment/service_bg_top.png) no-repeat left top / contain;
  pointer-events: none;
  z-index: 0;
}
.service::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 415px;
  background-image: url(../images/lp-ai-treatment/service_bg_bottom.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  z-index: -1;
}

/* Service heading spacing */
.service__heading {
  position: relative;
  z-index: 1;
  padding-top: 100px;
  margin-bottom: 60px;
}

.service__layout {
  position: relative;
  z-index: 1;
  max-width: 1290px;
  margin: 0 auto;
  padding-inline: 20px;
  display: flex;
  align-items: flex-start;
  gap: min(calc(100vw / 1440 * 90), 90px);
}

/* ===========================
   Service Panels (left)
=========================== */
.service__panels-area {
  width: 48%;
  padding-top: 26px;
  padding-left: min(calc(100vw / 1440 * 40), 40px);
  flex-shrink: 0;
}

.service__panel {
  display: none;
}

.service__panel.is-active {
  display: block;
}

.service__panel-head {
  position: relative;
  height: 57px;
  background-color: #9d9b94;
  background-size: auto 115px;
  background-position: left center;
  background-repeat: no-repeat;
  border-radius: 10px 10px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.service__panel-title {
  position: relative;
  z-index: 1;
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: min(calc(100vw / 1000 * 40), 40px);
  color: #fff;
  letter-spacing: 0.11em;
  line-height: 1.5;
  text-align: center;
}

.service__panel-body {
  background: #fff;
  border-radius: 0 0 10px 10px;
  display: flex;
  flex-direction: column;
  padding: 24px 16px 16px;
}

.service__panel-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
}

.service__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #333;
  color: #fff;
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.27em;
  padding: 0 16px;
  line-height: 1.5;
}

.service__panel-desc {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 18px;
  color: var(--color-text);
  line-height: 1.5;
  padding: 0 10px;
}

.service__panel-bottom {
  border-top: 1px solid #c7c2c2;
  margin-top: 28px;
}

.service__panel-solution-title {
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: 20px;
  color: var(--color-text);
  letter-spacing: 0.07em;
  text-align: center;
  padding: 21px 10px 10px;
}

.service__solution-list {
  background: #f0f6f9;
  border-radius: 0 0 10px 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  list-style: none;
  margin: 0;
}

.service__solution-item {
  display: flex;
  gap: 6px;
  align-items: flex-start;
}

.service__solution-item::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 9px;
  height: 9px;
  background: var(--color-primary);
  border-radius: 50%;
  margin-top: 10px;
}

.service__solution-item p {
  flex: 1;
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 20px;
  color: var(--color-text);
  line-height: 1.5;
  margin: 0;
}

.service__solution-accent {
  color: var(--color-primary);
}

.service__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 60px;
}

.service__dot {
  display: block;
  height: 8px;
  width: 16px;
  border-radius: 10px;
  background: #d9d9d9;
  transition: width 0.2s ease, background-color 0.2s ease;
}

.service__dot.is-active {
  background: #034495;
  width: 32px;
}

/* ===========================
   Service Tabs Area (right)
=========================== */
.service__tabs-area {
  flex: 1;
  min-width: 0;
}

.service__tabs-guide {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: min(calc(100vw / 1000 * 18), 18px);
  color: var(--color-primary);
  letter-spacing: 0.08em;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  margin-bottom: 36px;
  line-height: 1;
  width: fit-content;
  margin-inline: auto;
}

.service__tabs-guide span {
  font-size: 12px;
}

/* ===========================
   Common: Symptoms Grid
=========================== */
.symptoms-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.symptom-item {
  position: relative;
  background: #6d6d6d;
  border: 2px solid #b8b8b8;
  border-radius: 10px;
  height: 100px;
  overflow: hidden;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: opacity 0.2s;
}

@media (hover: hover) {
  .symptom-item:hover {
    opacity: 0.7;
  }
}

.symptom-item__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  display: block;
}

.symptom-item__label {
  position: relative;
  z-index: 1;
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: min(calc(100vw / 1100 * 24), 24px);
  color: #fff;
  text-align: center;
  text-shadow: 0 0 5.2px rgba(0, 0, 0, 0.25);
  line-height: 1.5;
  pointer-events: none;
}

.service__photo {
  position: relative;
  z-index: 2;
}

/* =========================================
   Greeting
   ========================================= */
.greeting {
  background: #fff;
  position: relative;
}
.greeting::before {
  position: absolute;
  top: -6px;
  left: 0px;
  content: "";
  width: min(calc(100vw / 1000 * 700), 700px);
  height: auto;
  aspect-ratio: 655 / 106;
  background-image: url(../images/lp-ai-treatment/greeting_logo_mark.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.greeting__heading {
  padding-top: 100px;
  margin-bottom: 40px;
}

.greeting__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}

.greeting__card {
  background: #f0f6f9;
  padding: 28px 28px 52px;
}

.greeting__layout {
  display: flex;
  gap: 35px;
  align-items: flex-start;
}

.greeting__photo {
  flex-shrink: 0;
  width: 27%;
}

.greeting__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-top: 25px;
  padding-right: 25px;
}

.greeting__body p {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  color: #333;
  margin: 0;
}

.greeting__body p + p {
  margin-top: 24px;
}

.greeting__quote {
  background: #fff;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.greeting__quote-lead,
.greeting__quote-tail {
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: 16px;
  color: #333;
  margin: 0;
  text-align: center;
}

.greeting__quote-text {
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: 23px;
  color: #008bd9;
  line-height: 1.5;
  margin: 0;
  text-align: center;
}

@media screen and (min-width: 1441px) {
  .greeting::before {
    left: calc(50% - 720px);
  }
}


/* =========================================
   Staff
   ========================================= */
.staff {
  background: #fff;
  padding: 100px 0 80px;
  position: relative;
}
.staff::after {
  position: absolute;
  bottom: -36px;
  right: -18px;
  content: "";
  width: min(calc(100vw / 1000 * 690), 690px);
  height: auto;
  aspect-ratio: 679 / 138;
  background-image: url(../images/lp-ai-treatment/staff_logo_mark.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.staff__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  position: relative;
  z-index: 1;
}

.staff__cards {
  display: flex;
  gap: 40px;
  max-width: 900px;
  margin-inline: auto;
}

.staff__card {
  flex: 1;
  background: #fff;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 32px 16px 16px;
  overflow: hidden;
}

.staff__photo {
  width: 232px;
  height: 232px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  margin: 0;
}

.staff__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.staff__card-info {
  margin-top: 2px;
  width: 100%;
}

.staff__name-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.staff__name {
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: 32px;
  color: var(--color-primary);
  letter-spacing: 0.04em;
  line-height: 1.5;
  margin: 0;
  text-align: center;
  padding-bottom: 3px;
  border-bottom: 0.5px solid #7793BA;
}

.staff__role {
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: 16px;
  color: #4772ad;
  letter-spacing: 0.12em;
  margin: 0;
  text-align: center;
}

.staff__bio {
  padding: 16px;
}

.staff__bio p {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 16px;
  color: #333;
  letter-spacing: 0.04em;
  line-height: 1.8;
  margin: 0;
}

@media screen and (min-width: 1441px) {
  .staff::after {
    right: calc(50% - 735px);
  }
}


/* =========================================
   Voice
   ========================================= */
.lp-voice {
  position: relative;
  overflow: hidden;
  z-index: 2;
}

.lp-voice__inner {
  position: relative;
  z-index: 1;
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 min(calc(100vw / 1440 * 70), 70px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

.lp-voice__container {
  width: 100%;
  padding: 80px 20px;
  background-image: url(../images/lp-ai-treatment/voice_bg.webp);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.lp-voice__cards {
  margin-top: 40px;
  padding-inline: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
}

.lp-voice__card {
  position: relative;
  width: 357px;
  flex-shrink: 0;
  background: #fff;
  border-radius: 10px;
  box-shadow: 4px 4px 9.2px 0 rgba(0, 0, 0, 0.25);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 49px 16px 16px;
}

.lp-voice__badge {
  position: absolute;
  top: 0;
  left: 0;
  background: #018bda;
  padding: 4px 16px;
  min-height: 32px;
  min-width: 84px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 16px;
  color: #fff;
  letter-spacing: 0.11em;
  margin: 0;
}

.lp-voice__card-header {
  margin-top: 0;
  display: flex;
  gap: 16px;
  align-items: center;
  width: 100%;
}

.lp-voice__avatar {
  width: 28%;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  margin: 0;
}

.lp-voice__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lp-voice__card-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.lp-voice__card-title {
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: min(calc(100vw / 1000 * 20), 20px);
  color: #333;
  letter-spacing: 0.11em;
  line-height: 1.5;
  margin: 0;
}

.lp-voice__card-name {
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: 14px;
  color: #333;
  letter-spacing: 0.11em;
  line-height: 1.5;
  margin: 0;
}

.lp-voice__card-name span {
  display: inline-block;
}

.lp-voice__card-stars {
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: min(calc(100vw / 1000 * 18), 18px);
  color: #ebc703;
  letter-spacing: 0.11em;
  line-height: 1.5;
  margin: 0;
}

.lp-voice__separator {
  margin-top: 0;
  width: 100%;
  height: 1px;
  background-color: var(--color-text);
  flex-shrink: 0;
}

.lp-voice__card-body {
  margin-top: 0;
}

.lp-voice__card-body p {
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: min(calc(100vw / 1000 * 16), 16px);
  color: #333;
  letter-spacing: 0.02em;
  line-height: 1.8;
  margin: 0;
}

/* =========================================
   Voice Splide スライダー（4枚以上時）
========================================= */

.lp-voice__cards.splide {
  display: block;
  padding-inline: 0;
  position: relative;
}

.lp-voice__cards.splide .splide__track {
  padding-top: 6px;
  padding-inline: 20px !important;
  padding-bottom: 12px;
}

.lp-voice__cards.splide .lp-voice__card {
  width: auto;
  height: 100%;
}
.lp-voice__cards.splide .splide__slide.is-prev .lp-voice__card {
  box-shadow: none;
}

.lp-voice__cards .splide__arrow {
  position: absolute;
  top: 50%;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-primary);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  padding: 0;
  transition: opacity 0.2s;
}

.lp-voice__cards .splide__arrow--prev {
  left: -4px;
  transform: translateY(-50%) rotate(180deg);
}

.lp-voice__cards .splide__arrow--next {
  right: -4px;
  transform: translateY(-50%);
}

.lp-voice__cards .splide__arrow svg {
  fill: #fff;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.lp-voice__cards .splide__arrow:disabled {
  opacity: 0.3;
  cursor: default;
}

@media (hover: hover) and (min-width: 768px) {
  .lp-voice__cards .splide__arrow:not(:disabled):hover {
    opacity: 0.7;
  }
}

.lp-voice__cards .splide__pagination {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
  list-style: none;
  padding: 0;
  width: 100%;
}

.lp-voice__cards .splide__pagination li {
  list-style: none;
}

.lp-voice__cards .splide__pagination__page {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 10px;
  background: #fff;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background-color 0.2s, width 0.2s;
}

.lp-voice__cards .splide__pagination__page.is-active {
  background: var(--color-primary);
}

@media screen and (max-width: 999.98px) {
  .lp-voice__inner {
    padding-inline: 0;
  }
  .lp-voice__card-header {
    flex-direction: column;
  }
  .lp-voice__avatar {
    width: 84px;
  }
}


/* =========================================
   Access
   ========================================= */
.access {
  position: relative;
  padding: 92px 10px 60px;
  background-color: #F0F6F9;
  z-index: 1;
}
.access::before {
  position: absolute;
  bottom: calc(100% - 35px);
  left: 0;
  content: "";
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 151;
  background-image: url(../images/lp-ai-treatment/access_wave.webp);
  background-repeat: no-repeat;
  background-size: contain;
  z-index: -1;
}
.access::after {
  position: absolute;
  top: calc(100% - 10px);
  left: 0;
  content: "";
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 151;
  background-image: url(../images/lp-ai-treatment/access_wave.webp);
  background-repeat: no-repeat;
  background-size: contain;
  transform: scale(-1);
  z-index: -1;
}

.access__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.access__heading .common-heading__deco {
  width: 261px;
}

.access__layout {
  display: flex;
  gap: 40px;
  align-items: center;
  justify-content: center;
  padding-top: 16px;
  width: 100%;
}

.access__info {
  background: #fff;
  padding: 16px;
  flex: 1;
  min-width: 0;
}

.access__table {
  margin: 0;
  padding: 0;
}

.access__row {
  display: flex;
  gap: 24px;
  align-items: center;
  padding: 13px 16px;
}

.access__row + .access__row {
  border-top: 1px solid #CFCFCF;
}

.access__label {
  font-family: var(--font-gothic);
  font-weight: 700;
  font-size: 16px;
  color: var(--color-primary);
  letter-spacing: 0.11em;
  line-height: 1.5;
  width: 119px;
  flex-shrink: 0;
}

.access__value {
  flex: 1;
  font-family: var(--font-gothic);
  font-weight: 500;
  font-size: 16px;
  color: #333;
  letter-spacing: 0.02em;
  line-height: 1.5;
  margin: 0;
}

.access__map {
  width: 35.7%;
  height: 436px;
  flex-shrink: 0;
}

.access__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* =========================================
   CTA Bottom
   ========================================= */
.cta-bottom {
  background: #fff;
  padding: calc(100vw / 1440 * 130) 20px 45px;
}

.cta-bottom__inner {
  max-width: 430px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
}


/* ============================================================
   SP Responsive (max-width: 767px) — pain section and below
   ============================================================ */
@media (max-width: 767px) {

  /* ---- Common Heading ---- */
  .common-heading__subtitle {
    font-size: 16px;
  }
  .common-heading__title {
    font-size: 32px;
  }
  .common-heading__deco {
    width: 150px;
  }
  .access__heading .common-heading__deco {
    width: 175px;
  }

  /* ===========================
     Pain
=========================== */
  .pain {
    padding-bottom: 120px;
  }
  .pain__bg-photo {
    width: 60%;
    opacity: 0.45;
  }
  .pain__inner {
    padding: 40px 16px 0;
  }
  .pain__title {
    font-size: min(calc(100vw / 375 * 26), 26px);
  }
  .pain__title span {
    font-size: min(calc(100vw / 375 * 23), 23px);
  }
  .pain__cards {
    margin-top: 50px;
  }
  /* overflow防止: ネガティブマージンを解除 */
  .pain__bottom {
    margin-top: 36px;
    margin-inline: 0;
    width: 100%;
    padding-right: 0;
    flex-direction: column;
    gap: 20px;
  }
  .pain__photo {
    width: 85%;
    max-width: 450px;
    margin-inline: auto;
  }
  .pain__message {
    gap: 12px;
    padding-bottom: 0;
    padding-inline: 4px;
  }
  /* white-space: nowrap を解除してoverflow防止 */
  .pain__message-lead {
    font-size: min(calc(100vw / 375 * 16), 16px);
    white-space: normal;
    text-underline-offset: 6px;
  }
  .pain__message-main {
    font-size: min(calc(100vw / 375 * 20), 20px);
    white-space: normal;
    text-underline-offset: 6px;
  }

  /* ===========================
     Solution
=========================== */
  .solution {
    padding-top: 50px;
    padding-bottom: 50px;
  }
  .solution__deco {
    top: -55px;
    height: 60px;
  }
  .solution__header {
    padding: 0 16px 48px;
  }
  .solution__headline-pre {
    width: 100%;
  }
  .solution__subtitle {
    font-size: 18px;
    margin-bottom: 16px;
  }
  .solution__circles-row {
    gap: 8px;
    margin-bottom: 16px;
  }
  .solution__circle-wrap {
    width: 120px;
    height: 120px;
  }
  .solution__circle-text {
    font-size: 24px;
  }
  .solution__circles-x {
    width: 14px;
    height: 14px;
  }
  .solution__circles-de {
    font-size: 26px;
    padding-top: 16px;
  }
  .solution__headline {
    flex-wrap: wrap;
    justify-content: center;
  }
  .solution__headline-pre,
  .solution__headline-post {
    font-size: 20px;
  }
  .solution__headline-em {
    font-size: 26px;
  }
  .solution__headline-excl {
    font-size: 22px;
  }
  .solution__inner {
    padding: 0 16px;
    gap: 48px;
  }
  /* SP: 画像を上、テキストを下に統一 */
  .solution__reason {
    flex-direction: column-reverse; /* DOM: content→image → 視覚: image上 */
    gap: 20px;
  }
  .solution__reason:nth-child(2) {
    flex-direction: column; /* DOM: image→content → 視覚: image上 */
  }
  .solution__reason-image {
    width: 100%;
  }
  .solution__reason-en {
    font-size: 28px;
  }
  .solution__reason-num {
    font-size: 24px;
  }
  .solution__reason-title {
    font-size: min(calc(100vw / 375 * 20), 20px);
  }
  .solution__reason-body {
    font-size: 14px;
  }

  /* ===========================
     Service
=========================== */
  .service {
    margin-top: 0;
    padding-bottom: 40px;
  }
  .service::before {
    width: 200px;
  }
  .service__heading {
    padding-top: 60px;
    margin-bottom: 32px;
  }
  .service__layout {
    flex-direction: column;
    gap: 24px;
    padding-inline: 16px;
  }
  /* SP: タブ(症状ボタン)→パネル(内容)の順に表示 */
  .service__tabs-area {
    order: 1;
    width: 100%;
  }
  .service__panels-area {
    width: 100%;
    padding-top: 0;
    padding-left: 0;
    order: 2;
  }
  .service__tabs-guide {
    font-size: min(calc(100vw / 375 * 13), 13px);
    white-space: normal;
    text-align: center;
    margin-bottom: 16px;
  }
  .service__tabs-guide span {
    font-size: min(calc(100vw / 375 * 12), 12px);
  }
  .symptoms-grid {
    gap: 10px;
  }
  .symptom-item {
    height: 80px;
    border-radius: 8px;
  }
  .symptom-item__label {
    font-size: min(calc(100vw / 375 * 16), 16px);
  }
  .service__panel-title {
    font-size: min(calc(100vw / 375 * 24), 24px);
  }
  .service__panel-body {
    padding: 16px 12px 12px;
  }
  .service__badge {
    font-size: 16px;
  }
  .service__panel-desc {
    font-size: 14px;
    padding: 0 4px;
  }
  .service__panel-solution-title {
    font-size: 16px;
    padding: 16px 4px 8px;
  }
  .service__solution-list {
    gap: 10px;
    padding: 12px;
  }
  .service__solution-item p {
    font-size: 14px;
  }
  .service__solution-item::before {
    width: 7px;
    height: 7px;
    margin-top: 7px;
  }
  .service__dots {
    margin-top: 24px;
  }

  /* ===========================
     Greeting
=========================== */
  .greeting::before {
    left: -15px;
    width: 260px;
  }
  .greeting__heading {
    padding-top: 60px;
    margin-bottom: 20px;
  }
  .greeting__card {
    padding: 20px 16px 28px;
  }
  .greeting__layout {
    flex-direction: column;
    gap: 20px;
  }
  .greeting__photo {
    width: 55%;
    margin-inline: auto;
  }
  .greeting__content {
    padding-top: 0;
    padding-right: 0;
    gap: 16px;
  }
  .greeting__body p {
    font-size: 14px;
    line-height: 1.7;
  }
  .greeting__quote {
    padding: 16px;
    gap: 12px;
  }
  .greeting__quote-lead,
  .greeting__quote-tail {
    font-size: 13px;
  }
  .greeting__quote-text {
    font-size: 16px;
  }
  .greeting__quote-text span {
    display: inline-block;
  }

  /* ===========================
     Staff
=========================== */
  .staff {
    padding: 60px 0;
  }
  .staff::after {
    right: -15px;
    bottom: -16px;
    width: 260px;
  }
  .staff__inner {
    gap: 24px;
  }
  .staff__cards {
    flex-direction: column;
    gap: 24px;
    max-width: 450px;
  }
  .staff__photo {
    width: 160px;
    height: 160px;
  }
  .staff__name {
    font-size: 24px;
  }
  .staff__role {
    font-size: 14px;
  }
  .staff__bio p {
    font-size: 14px;
    line-height: 1.7;
  }

  /* ===========================
     Voice
=========================== */
  .lp-voice__inner {
    gap: 16px;
  }
  .lp-voice__container {
    padding: 40px 0;
  }
  .lp-voice__cards {
    flex-direction: column;
    gap: 16px;
    margin-top: 24px;
    margin-inline: auto;
    max-width: 450px;
  }
  .lp-voice__card {
    width: 100%;
  }
  .lp-voice__card-title {
    font-size: 18px;
  }
  .lp-voice__card-stars {
    font-size: 16px;
  }
  .lp-voice__card-body p {
    font-size: 14px;
  }

  /* Splide用 */
  .lp-voice__cards.splide {
    max-width: 100%;
  }
  .lp-voice__cards.splide .splide__track {
    padding-inline: 40px !important;
  }
  .lp-voice__cards.splide .lp-voice__card {
    padding-inline: 20px;
  }
  .lp-voice__cards.splide .splide__slide.is-prev .lp-voice__card {
    box-shadow: 4px 4px 9.2px 0 rgba(0, 0, 0, 0.25);
  }
  .lp-voice__cards .splide__arrow--prev {
    left: 18px;
  }
  .lp-voice__cards .splide__arrow--next {
    right: 18px;
  }

  /* ===========================
     Access
=========================== */
  .access {
    padding: 60px 16px 40px;
  }
  .access::after {
    top: calc(100% - 4px);
  }
  .access__layout {
    flex-direction: column;
    gap: 20px;
  }
  .access__info {
    width: 100%;
    padding-block: 6px;
  }
  .access__map {
    width: 100%;
    height: 240px;
  }
  .access__row {
    padding: 12px 8px;
    gap: 10px;
  }
  .access__label {
    width: 72px;
    font-size: 14px;
    letter-spacing: 0.05em;
  }
  .access__value {
    font-size: 13px;
  }

  /* ===========================
     CTA Bottom
=========================== */
  .cta-bottom {
    padding: 60px 16px 40px;
  }
}

@media screen and (max-width: 499px) {
  .pain {
    background: linear-gradient(to bottom, #d8d8d8 0%, #ffffff 25%);
  }
  .pain__bg-photo {
    width: 70%;
    right: -10%;
  }
  .pain__cards {
    flex-direction: column;
    gap: 40px;
  }
  .pain__card {
    width: 100%;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.1));
  }
}

@media screen and (max-width: 374px) {
  .greeting__quote {
    padding-inline: 8px;
  }
  .greeting__quote-text {
    font-size: 15px;
  }
  .lp-voice__card-header {
    gap: 12px;
  }
  .lp-voice__card-title {
    font-size: 15px;
  }
  .lp-voice__card-name {
    font-size: 13px;
  }
  .lp-voice__card-stars {
    font-size: 16px;
  }
}
