/* ============================================================
   シリコンバッグ豊胸 新デザイン：確認用 自己完結CSS
   （このファイルの内容をそのまま css/style.css に貼り付け）
   外部のテーマCSS・ロゴ画像は不要。新セクション画像のみ images/ に配置。
   ============================================================ */

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

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
figure,
figcaption {
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  line-height: 1;
  -webkit-font-smoothing: antialiased;
}

ul,
ol {
  list-style: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  background: none;
  border: none;
  cursor: pointer;
}

/* ===== テーマ本体からの必要CSS（自己完結化済み）===== */
/* ===== 検証用：本番テーマ style.css から関係箇所のみ抜粋 ===== */
html {
  font-family: "Noto Sans JP", sans-serif;
  color: #030209;
  font-size: 62.5%;
  scroll-behavior: smooth;
}
body {
  color: #030209;
  letter-spacing: 0.08em;
  font-size: 1.5rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-feature-settings: "palt" 1;
}
p {
  line-height: 2;
  text-align: justify;
  margin-bottom: 1.4em;
}
p:last-child {
  margin-bottom: 0 !important;
}
a {
  text-decoration: none;
  transition: 0.3s;
}
a:hover {
  opacity: 0.7;
}
#menu-annotation {
  max-width: 780px;
  margin: auto;
  text-align: left;
}
#annotation {
  font-size: 1.1rem;
  font-weight: bold;
}
@media screen and (max-width: 780px) {
  body {
    font-size: 1.3rem;
    line-height: 1.875em;
    letter-spacing: 0.1em;
  }
  p {
    line-height: 1.8;
  }
}
@media only screen and (min-width: 781px) {
  .sp {
    display: none !important;
  }
  .pc {
    display: block;
  }
}
@media only screen and (max-width: 780px) {
  .pc {
    display: none !important;
  }
  .sp {
    display: block !important;
  }
}

/* .page 相当（body_class） */
.page {
  background: #fdf6f4;
  color: #502200;
}

/* ===== #menu 見出し ===== */
#menu h1 {
  font-size: 4rem;
  font-weight: bold;
}
#menu h2 {
  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAAAcCAYAAADWZ2dHAAAC50lEQVR4nN3Z3YsVZRzA8c8Z35IulFJCQgMJrVWXtvXC1hdMNNQbt7uKQiuKQJZAYjOoCMQrJUIvFKQSRDTooghCUHujchWUVFDYFKHsD9iUEF92u/id445nPXvmnN2ZA37hgZlnnvN7mTPz/F6m1D1XM5zHv/gZ3+FEU1KaZx4WYA06MYAXGhUysQnF7+JpTEAXtuIiTuJz/NaEzKy8Uh6LMCc1P4BV+KERYdXOb6g6/w9Hq+ZeEo5XKKGtPF7FQbzeiBEZeB6fob3G9WlYa6Tz6zA5dT6AnyonE7EaX2B2DcF38DfO4AqWjGLkJGwqK92N7aOszcJT6MXLeKjO2sqfshjz8ViNdbdwCstK3XNtw4djNPJ+DOKCeESbYQW+xsxxs2iYISxNsDwH4ZBgIU5r/AZsxGH5OE68qs8kmJ6TggrPiojQmXH9FuzBrNwsCtoT8X7kzRP4MsO61SJ6TM3XHDAlUX8jGS8W4vtRri8QoTKvR30ESVGKxHu2Tu0IsM+9sTt3ElwtUiHewnNVc2+LEFUk1xMRjopkpsgS03wscoQiuZSIPL1oXkwdf4LHC9Z/C32J2ITuFKx8Mo6Uj98pWDeRsZ5KRD78VwsMWIqP8GgLdF9meLc/3QIDHkaP5irLsXKUYecPtsCAkgJjeoqb2MGw89/gxxYY0greqxykk5zNuFa8LYVyQpTauNf5i9gryr0HkZvYlZ6oTm97cbYwc4rlU1Em3+V+uX0H/izEnGIYxCF8UH2hVmHzmgfnBnwlmp4jqOX8SdEe/kO+e8DtnGXvV8Nx6pe0Hdhp/KPADVG7v4lj4yybyOB61OkilzJ+tGgT9XbXmM3iknD6l9TcG2JDmjZG2UM4IHqAdcnqfIVu8Rh1itbUhFFXB4OikDiLb0WbvBbvY7242TMy2nQD/egTjv+a8XcNO59mpfhQ0IEnkZb0j/iHz+C42Dz7G5DdLhqfy0STYzYeKV8bwrnU+L08GuZ/IG5/JtdWXoMAAAAASUVORK5CYII=")
    top center no-repeat;
  background-size: auto 14px;
  font-size: 2.8rem;
  font-weight: bold;
  text-align: center;
  color: #502200;
  line-height: 1;
  letter-spacing: 0.1em;
  padding-top: 36px;
  margin-bottom: 40px;
}
@media screen and (max-width: 780px) {
  #menu h1 {
    font-size: 3.2rem;
  }
  #menu h2 {
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAAAcCAYAAADWZ2dHAAAC50lEQVR4nN3Z3YsVZRzA8c8Z35IulFJCQgMJrVWXtvXC1hdMNNQbt7uKQiuKQJZAYjOoCMQrJUIvFKQSRDTooghCUHujchWUVFDYFKHsD9iUEF92u/id445nPXvmnN2ZA37hgZlnnvN7mTPz/F6m1D1XM5zHv/gZ3+FEU1KaZx4WYA06MYAXGhUysQnF7+JpTEAXtuIiTuJz/NaEzKy8Uh6LMCc1P4BV+KERYdXOb6g6/w9Hq+ZeEo5XKKGtPF7FQbzeiBEZeB6fob3G9WlYa6Tz6zA5dT6AnyonE7EaX2B2DcF38DfO4AqWjGLkJGwqK92N7aOszcJT6MXLeKjO2sqfshjz8ViNdbdwCstK3XNtw4djNPJ+DOKCeESbYQW+xsxxs2iYISxNsDwH4ZBgIU5r/AZsxGH5OE68qs8kmJ6TggrPiojQmXH9FuzBrNwsCtoT8X7kzRP4MsO61SJ6TM3XHDAlUX8jGS8W4vtRri8QoTKvR30ESVGKxHu2Tu0IsM+9sTt3ElwtUiHewnNVc2+LEFUk1xMRjopkpsgS03wscoQiuZSIPL1oXkwdf4LHC9Z/C32J2ITuFKx8Mo6Uj98pWDeRsZ5KRD78VwsMWIqP8GgLdF9meLc/3QIDHkaP5irLsXKUYecPtsCAkgJjeoqb2MGw89/gxxYY0greqxykk5zNuFa8LYVyQpTauNf5i9gryr0HkZvYlZ6oTm97cbYwc4rlU1Em3+V+uX0H/izEnGIYxCF8UH2hVmHzmgfnBnwlmp4jqOX8SdEe/kO+e8DtnGXvV8Nx6pe0Hdhp/KPADVG7v4lj4yybyOB61OkilzJ+tGgT9XbXmM3iknD6l9TcG2JDmjZG2UM4IHqAdcnqfIVu8Rh1itbUhFFXB4OikDiLb0WbvBbvY7242TMy2nQD/egTjv+a8XcNO59mpfhQ0IEnkZb0j/iHz+C42Dz7G5DdLhqfy0STYzYeKV8bwrnU+L08GuZ/IG5/JtdWXoMAAAAASUVORK5CYII=")
      top center no-repeat;
    background-size: auto 10px;
    font-size: 2rem;
    letter-spacing: 0.06em;
    padding-top: 26px;
    margin-bottom: 20px;
    line-height: 1.4;
  }
}

/* ===== menu02 症例 ===== */
.menu02 {
  background-color: #fef4f4;
  padding: 100px 20px 100px;
}
@media screen and (max-width: 780px) {
  .menu02 {
    padding: 4em 6% 4em;
  }
}

/* ===== menu04 施術の流れ ===== */
.menu04 {
  background-color: #fef4f4;
  padding: 100px 20px 100px;
}
.menu04_box_wrap {
  background: linear-gradient(#eeb9b8, #eeb9b8) no-repeat left 90px top / 1px
    100%;
  max-width: 820px;
  margin: 0 auto;
}
.menu04_box {
  padding: 30px 40px;
  background-color: #fff;
  margin-bottom: 20px;
}
.menu04_box:last-child {
  margin-bottom: 0;
}
.menu04_box h3 {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 16px;
}
.menu04_box h3 strong {
  color: #eeb9b8;
  font-family: "Noto Serif JP", serif;
  font-size: 2.4rem;
  font-weight: bold;
  margin-right: 20px;
  line-height: 1;
}
.menu04_box h3 strong span {
  font-size: 4rem;
}
.menu04 .clinic_btn {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
.menu04 .clinic_btn1,
.menu04 .clinic_btn2 {
  margin: 0;
}
.menu04 .clinic_btn1 a,
.menu04 .clinic_btn2 a {
  padding: 9px 26px;
  font-weight: bold;
  font-size: 1.5rem;
  text-decoration: none;
  line-height: 20px;
  border-radius: 100px;
  width: 320px;
  background-color: #fff;
  border: 2px solid #502200;
  color: #502200;
  display: flex;
  justify-content: center;
  gap: 8px;
  align-items: center;
}
.menu04 .clinic_btn1 a img,
.menu04 .clinic_btn2 a img {
  height: 30px;
  width: auto;
}
@media screen and (max-width: 780px) {
  .menu04 {
    padding: 4em 6% 4em;
  }
  .menu04_box_wrap {
    background: linear-gradient(#eeb9b8, #eeb9b8) no-repeat left 50px top / 1px
      100%;
  }
  .menu04_box {
    padding: 20px;
  }
  .menu04_box h3 {
    font-size: 1.5rem;
  }
  .menu04_box h3 strong {
    font-size: 1.8rem;
    margin-right: 14px;
  }
  .menu04_box h3 strong span {
    font-size: 3rem;
  }
  .menu04 .clinic_btn {
    display: block;
  }
  .menu04 .clinic_btn1 {
    margin-bottom: 20px;
  }
  .menu04 .clinic_btn1 a,
  .menu04 .clinic_btn2 a {
    padding: 12px 20px;
    font-size: 1.3rem;
    width: 80%;
    min-width: 280px;
    margin: 0 auto;
  }
  .menu04 .clinic_btn1 a img,
  .menu04 .clinic_btn2 a img {
    height: 20px;
  }
}

/* ===== menu05 料金表 ===== */
.menu05 {
  padding: 100px 20px 0;
}
#menu .price_box {
  background-color: transparent;
  padding: 0;
}
#menu .price_box td {
  background-color: #fff;
}
.price_box {
  background-color: #fff;
  max-width: 1140px;
  margin: 0 auto 100px;
  padding: 50px 20px 80px;
}
.price_box table {
  max-width: 770px;
  width: 100%;
  margin: 0 auto 50px;
  border-top: 1px solid #502200;
  border-left: 1px solid #502200;
}
.price_box table:last-child {
  margin: 0 auto;
}
.price_box table th,
.price_box table td {
  border-bottom: 1px solid #502200;
  border-right: 1px solid #502200;
  line-height: 1.6;
}
.price_box table th {
  background-color: #fef4f4;
  text-align: left;
  padding: 14px 26px;
  width: 62%;
}
.price_box table td {
  text-align: right;
  padding: 14px 26px;
  font-weight: bold;
}
.price_box table td strong {
  font-weight: bold;
  color: #d46a6a;
}
.price_box table th.ttl {
  background-color: #eeb9b8;
  font-size: 1.8rem;
  color: #fff;
  padding: 14px;
  text-align: center;
}
.price_box table th.ttl_sub {
  background-color: #502200;
  font-size: 1.5rem;
  color: #fff;
  padding: 4px;
  text-align: center;
}
.menu05_box {
  max-width: 770px;
  margin: 60px auto 0;
  padding: 0 40px 40px;
  background-color: #fff;
  text-align: center;
  border: 1px solid #502200;
}
.menu05_box h4 {
  border-bottom: 1px solid #502200;
  padding-bottom: 8px;
  margin-bottom: 10px;
  text-align: left;
  font-size: 1.8rem;
}
@media screen and (max-width: 780px) {
  .menu05 {
    padding: 4em 6% 0em;
  }
  .price_box table th,
  .price_box table td {
    font-size: 1.1rem;
    line-height: 1.5;
  }
  .price_box table th {
    padding: 10px 12px;
    width: 198px;
  }
  .price_box table td {
    padding: 10px 12px;
    width: 210px;
  }
  .price_box table th.ttl {
    font-size: 1.6rem;
    padding: 10px;
  }
  .price_box table th.ttl_sub {
    font-size: 1.4rem;
    padding: 4px;
  }
  .menu05_box {
    margin: 30px auto 0;
    padding: 0 20px 20px;
  }
  .menu05_box h4 {
    font-size: 1.5rem;
  }
}

/* ===== menu06 FAQ ===== */
.menu06 {
  background-color: #fef4f4;
  padding: 100px 20px 100px;
}
.menu06_box {
  max-width: 880px;
  margin: 0 auto;
}
.menu06 .question_area .qa dt button {
  color: #502200;
  font-weight: bold;
}
.menu06 .question_area .qa dd {
  color: #502200;
  font-weight: 500;
}
.menu06 .qa {
  margin: 0 0 14px;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
}
.menu06 .qa dt {
  margin: 0;
  padding: 0;
}
.menu06 .qa__btn {
  width: 100%;
  display: flex;
  align-items: flex-start;
  padding: 0;
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
  position: relative;
  z-index: 1;
}
.menu06 .qa__q {
  font-weight: 700;
  line-height: 1.2;
  margin-right: 20px !important;
}
.menu06 .qa__text {
  flex: 1;
  line-height: 1.8;
  font-size: 1.6rem;
  margin: 0;
}
.menu06 .qa__icon {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  position: relative;
  margin-left: 40px;
  margin-top: 2px;
  margin-right: 0 !important;
}
.menu06 .qa__icon::before,
.qa__icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 2px;
  background: #5a3a2a;
  transform: translate(-50%, -50%);
}
.menu06 .qa__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.menu06 .qa.is-open .qa__icon::after {
  display: none;
}
.menu06 .qa__answer {
  margin: 0;
  padding: 0;
}
.menu06 .qa__answer p {
  margin: 0 0 1em;
  line-height: 1.8;
}
.menu06 .question_area dl.qa > dd {
  display: block !important;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  transition:
    max-height 0.18s ease-in,
    opacity 0.12s linear,
    padding 0.18s ease-in,
    transform 0.12s linear;
  transform: translateY(-4px);
}
.menu06 .question_area dl.qa.is-open > dd {
  max-height: 1200px;
  opacity: 1;
  padding-top: 16px !important;
  padding-bottom: 0 !important;
  transform: translateY(0);
  transition:
    max-height 0.35s ease-out,
    opacity 0.25s ease-out,
    padding 0.35s ease-out,
    transform 0.25s ease-out;
}
@media screen and (max-width: 780px) {
  .menu06 {
    padding: 4em 6% 4em;
  }
  .menu06 .qa__text {
    line-height: 1.8;
    font-size: 1.3rem;
  }
  .menu06 .qa__icon {
    margin-left: 20px;
  }
}

/* ===== menu07 コラム ===== */
.menu07 {
  padding: 100px 20px 150px;
  max-width: 1100px;
  margin: 0 auto;
}
@media screen and (max-width: 780px) {
  .menu07 {
    padding: 4em 6% 6em;
  }
}

/* ===== 共通ボタン・パンくず ===== */
.btn_pink {
  text-align: right;
  margin-top: 40px;
}
.btn_pink a {
  display: inline-block;
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
  border-radius: 100px;
  padding: 12px 70px 12px 50px;
  background-color: #eeb9b8;
}
.w960 {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
.breadcrumb {
  padding: 20px 20px 20px;
  max-width: 1140px;
  margin: 0 auto;
  font-size: 1.2rem;
}
.breadcrumb a {
  color: #502200;
  text-decoration: underline;
}
@media screen and (max-width: 780px) {
  .btn_pink {
    margin-top: 30px;
  }
  .btn_pink a {
    font-size: 1.5rem;
    padding: 10px 60px 10px 40px;
  }
  .breadcrumb {
    padding: 0 6% 20px;
    font-size: 1rem;
    line-height: 1.6;
  }
}

/* ---- 新セクション限定：テーマpの justify/line-height を無効化（クラス指定は活きる） ---- */
:where(
    .sbh-hero,
    .sba-about,
    .spi-section,
    .tya-section,
    .ccp-section,
    .cmp-section,
    .doc-section
  )
  p {
  text-align: left;
  line-height: 1.8;
  margin-bottom: 0;
}
#menu .tya-eyebrow {
  color: #d46a6a;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.6;
}
#menu .ccp-eyebrow {
  color: #eeb9b8;
}
@media (min-width: 767px) {
  #menu .tya-eyebrow {
    font-size: 17px;
  }
}

/* ===== 新デザイン セクション（sbh/sba/spi/tya/ccp/cmp/doc）===== */
body {
  font-family: "Noto Sans JP", sans-serif;
  overflow-x: hidden;
}

/* ---------- Hero Section ---------- */

.sbh-hero {
  background-color: #eeb9b8;
  padding: 56px 24px;
}

.sbh-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.sbh-pc-br {
  display: none;
}

/* ---------- Media (image) ---------- */

.sbh-media {
  position: relative;
  width: 100%;
}

.sbh-media-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 552 / 459.28;
  overflow: hidden;
  border-radius: 32px;
  box-shadow: 0px 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.sbh-media-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sbh-media-blur {
  position: absolute;
  left: -16px;
  bottom: -14px;
  width: 128px;
  height: 128px;
  border-radius: 9999px;
  background-color: rgba(232, 178, 178, 0.2);
  filter: blur(20px);
  pointer-events: none;
}

/* ---------- Text ---------- */

.sbh-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  gap: 12px;
}

.sbh-eyebrow {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 26px;
  letter-spacing: 1px;
  color: #ffffff;
  width: 100%;
  text-align: center;
}

.sbh-heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
  letter-spacing: 1px;
  color: #ffffff;
  margin-top: -10px;
  margin-bottom: 12px;
  width: 100%;
  text-align: center;
}

.sbh-lead {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 24px;
  color: #ffffff;
}

/* ---------- Badges ---------- */

.sbh-badges {
  display: flex;
  gap: 8px;
  width: 100%;
  padding-top: 20px;
  flex-direction: column;
}

.sbh-badge {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 12px 10px 13px;
  background-color: #ffffff;
  border: 1px solid rgba(171, 44, 93, 0.1);
  border-radius: 12px;
}

.sbh-badge-number {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700;
  font-size: 22px;
  line-height: 28px;
  color: #eeb9b8;
  text-align: center;
  overflow-wrap: break-word;
}

.sbh-badge-number-sm {
  font-size: 20px;
  line-height: 25px;
}

.sbh-badge-label {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 18px;
  letter-spacing: 0.4px;
  color: #502200;
  text-align: center;
}

/* ---------- Breakpoint: 767px ---------- */

@media (min-width: 767px) {
  .sbh-hero {
    padding: 64px 32px;
  }

  .sbh-container {
    gap: 48px;
  }

  .sbh-eyebrow {
    font-size: 20px;
    line-height: 28px;
    width: auto;
    text-align: left;
  }

  .sbh-heading {
    font-size: 32px;
    line-height: 42px;
    margin-top: 0;
    margin-bottom: 0;
    width: auto;
    text-align: left;
  }

  .sbh-badges {
    gap: 12px;
    padding-top: 22px;
    display: flex;
    flex-direction: row;
  }

  .sbh-badge {
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 14px 14px 15px;
  }

  .sbh-badge-number {
    font-size: 18px;
    line-height: 24px;
  }

  .sbh-badge-number-sm {
    font-size: 16px;
    line-height: 22px;
  }

  .sbh-badge-label {
    font-size: 11px;
    line-height: 14px;
  }
}

/* ---------- Breakpoint: 900px (matches Figma desktop) ---------- */

@media (min-width: 900px) {
  .sbh-hero {
    padding: 80px 40px;
  }

  .sbh-container {
    flex-direction: row-reverse;
    align-items: center;
    gap: 48px;
    padding: 0 24px;
  }

  .sbh-pc-br {
    display: inline;
  }

  .sbh-media {
    flex: 1 1 0;
    max-width: 552px;
  }

  .sbh-text {
    flex: 1 1 0;
  }

  .sbh-eyebrow {
    font-size: 25px;
    line-height: 35px;
    letter-spacing: 2px;
  }

  .sbh-heading {
    font-size: 40px;
    line-height: 56px;
    letter-spacing: 2px;
  }

  .sbh-lead {
    font-size: 16px;
    line-height: 24px;
  }

  .sbh-badges {
    gap: 16px;
    padding-top: 24px;
    display: flex;
    flex-direction: row;
  }

  .sbh-badge {
    flex: 1 0 0;
    padding: 16px 10px;
  }

  .sbh-badge-number {
    font-size: 22px;
    line-height: 33.6px;
  }

  .sbh-badge-number-sm {
    font-size: 20px;
    line-height: 33.6px;
  }

  .sbh-badge-label {
    font-size: 12px;
    line-height: 14.4px;
    letter-spacing: 0.6px;
  }
}

/* ==========================================================
   About Section (sba-)
   ========================================================== */

.sba-about {
  background-color: #fffaf6;
  padding: 56px 24px;
}

.sba-intro {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.sba-heading-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}

.sba-heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 32px;
  letter-spacing: 0.3px;
  color: #502200;
}

.sba-heading-bar {
  display: block;
  width: 56px;
  height: 3px;
  background-color: #eeb9b8;
}

.sba-row {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.sba-text {
  min-width: 0;
}

.sba-text p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
  color: #502200;
  margin-bottom: 1em;
}

.sba-text p:last-child {
  margin-bottom: 0;
}

.sba-image {
  width: 100%;
}

.sba-image img {
  width: 100%;
  aspect-ratio: 443 / 296;
  object-fit: cover;
  display: block;
}

.sba-reasons {
  max-width: 1175px;
  margin: 32px auto 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.sba-reason {
  background-color: rgba(244, 220, 228, 0.2);
  border: 1px solid #f4dce4;
  border-radius: 16px;
  padding: 20px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.sba-reason-number {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  background-color: #eeb9b8;
  color: #ffffff;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700;
  font-size: 13px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sba-reason-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sba-reason-body h3 {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 22px;
  color: #502200;
}

.sba-reason-body p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 13px;
  line-height: 20px;
  color: #502200;
}

/* ---------- Breakpoint: 767px ---------- */

@media (min-width: 767px) {
  .sba-about {
    padding: 64px 32px;
  }

  .sba-heading {
    font-size: 26px;
    line-height: 38px;
    letter-spacing: 0.5px;
  }

  .sba-heading-bar {
    width: 68px;
  }

  .sba-text p {
    font-size: 15px;
    line-height: 26px;
  }

  .sba-reasons {
    margin-top: 40px;
  }

  .sba-reason {
    padding: 22px;
  }

  .sba-reason-number {
    width: 36px;
    height: 36px;
    font-size: 14px;
  }

  .sba-reason-body h3 {
    font-size: 16px;
    line-height: 24px;
  }

  .sba-reason-body p {
    font-size: 14px;
    line-height: 22px;
  }
}

/* ---------- Breakpoint: 900px (matches Figma desktop) ---------- */

@media (min-width: 900px) {
  .sba-about {
    padding: 120px 40px;
  }

  .sba-intro {
    gap: 64px;
    padding: 0 24px;
  }

  .sba-heading-block {
    gap: 16px;
  }

  .sba-heading {
    font-size: 32px;
    line-height: 48px;
    letter-spacing: 0.64px;
    white-space: nowrap;
  }

  .sba-heading-bar {
    width: 80px;
    height: 4px;
  }

  .sba-row {
    flex-direction: row;
    align-items: center;
    gap: 64px;
  }

  .sba-text {
    flex: 1 1 0;
    max-width: 644px;
  }

  .sba-text p {
    font-size: 16px;
    line-height: 30px;
  }

  .sba-image {
    flex: 1 1 0;
    max-width: 443px;
  }

  .sba-reasons {
    flex-direction: row;
    gap: 24px;
    margin-top: 64px;
  }

  .sba-reason {
    flex: 1 1 0;
    min-width: 0;
    padding: 25px;
  }

  .sba-reason-wide {
    max-width: 399px;
  }

  .sba-reason-number {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .sba-reason-body h3 {
    font-size: 18px;
    line-height: 28px;
  }

  .sba-reason-body p {
    font-size: 16px;
    line-height: 24px;
  }
}

/* ==========================================================
   Placement Section (spi-)
   ========================================================== */

.spi-section {
  background-color: #fffaf6;
  padding: 56px 24px;
}

.spi-container {
  max-width: 1200px;
  margin: 0 auto;
}

.spi-heading-block {
  margin-bottom: 24px;
}

.spi-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 26px;
  color: #502200;
  text-align: center;
}

.spi-cards {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.spi-card {
  background-color: #ffffff;
  border: 2px solid #ddbfc5;
  border-radius: 24px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.spi-card-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 17px;
  line-height: 22px;
}

.spi-card-01 .spi-card-heading {
  color: #502200;
  text-align: center;
}

.spi-card-02 .spi-card-heading {
  color: #502200;
  text-align: center;
}

.spi-card-desc {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 22px;
  color: #502200;
}

.spi-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 4px;
}

.spi-list-item {
  display: flex;
  align-items: center;
  gap: 10px;
}

.spi-list-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.spi-list-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  color: #502200;
}


/* ===== spi-card-03（デュアルプレーン法カード）追加分 ===== */
.spi-card-03 .spi-card-heading {
  color: #502200;
  text-align: center;
}
@media (min-width: 900px) {
  .spi-card-03 {
    padding: 50px;
  }
}

/* ===== 5つのこだわり：最終行を中央寄せ ===== */
@media (min-width: 767px) {
  .ccp-section .ccp-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
  }
  .ccp-section .ccp-card {
    width: calc((100% - 24px) / 2); /* タブレット：2列 */
  }
}
@media (min-width: 900px) {
  .ccp-section .ccp-grid {
    gap: 32px;
  }
  .ccp-section .ccp-card {
    width: calc((100% - 64px) / 3); /* PC：3列 */
  }
}


/* ---------- Breakpoint: 767px ---------- */

@media (min-width: 767px) {
  .spi-section {
    padding: 64px 32px;
  }

  .spi-heading {
    font-size: 20px;
    line-height: 28px;
  }

  .spi-card {
    padding: 36px 32px;
    border-radius: 32px;
  }

  .spi-card-heading {
    font-size: 18px;
    line-height: 23px;
  }

  .spi-card-desc {
    font-size: 15px;
    line-height: 24px;
  }

  .spi-list-text {
    font-size: 15px;
    line-height: 22px;
  }
}

/* ---------- Breakpoint: 900px (matches Figma desktop) ---------- */

@media (min-width: 900px) {
  .spi-section {
    padding: 60px 40px;
  }

  .spi-container {
    padding: 0 24px;
  }

  .spi-heading-block {
    margin-bottom: 40px;
  }

  .spi-heading {
    font-size: 24px;
    line-height: 24px;
    white-space: nowrap;
  }

  .spi-cards {
    flex-direction: row;
    gap: 32px;
    justify-content: center;
  }

  .spi-card {
    flex: 1 1 0;
    min-width: 0;
    border-radius: 40px;
    gap: 24px;
  }

  .spi-card-01 {
    padding: 50px;
  }

  .spi-card-02 {
    padding: 48px 48px 50px;
  }

  .spi-card-heading {
    font-size: 20px;
    line-height: 24px;
  }

  .spi-card-desc {
    font-size: 16px;
    line-height: 26px;
  }

  .spi-list {
    gap: 16px;
    padding-top: 8px;
  }

  .spi-list-icon {
    width: 20px;
    height: 20px;
  }

  .spi-list-text {
    font-size: 16px;
    line-height: 24px;
    white-space: nowrap;
  }
}


/* ② 挿入部位：デュアルプレーン法カードをカード1と統一 */
.spi-section .spi-card-03 .spi-card-heading {
  color: #502200;
  text-align: center;
}
@media (min-width: 900px) {
  .spi-section .spi-card-03 {
    padding: 50px;
  }
}
/* ② 挿入部位：チェックリストを各カード下端に揃える */
@media (min-width: 900px) {
  .spi-section .spi-list {
    margin-top: auto;
  }
}

/* ==========================================================
   Tayun Bust Section (tya-)
   ========================================================== */

.tya-section {
  position: relative;
  overflow: hidden;
  background-color: #fef4f4;
  padding: 40px 20px 56px;
}

.tya-gold-line {
  position: absolute;
  height: 2px;
  width: 120px;
  pointer-events: none;
}

.tya-gold-line-top {
  top: 22%;
  right: 0;
  background: linear-gradient(to left, #eeb9b8, rgba(238, 185, 184, 0));
}

.tya-gold-line-bottom {
  top: 76%;
  left: 0;
  background: linear-gradient(to right, #eeb9b8, rgba(238, 185, 184, 0));
}

.tya-container {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.tya-heading-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}

.tya-eyebrow {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 17px;
  line-height: 24px;
  color: #502200;
}

.tya-heading-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.tya-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 22px;
  color: #502200;
}

.tya-lead {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 22px;
  color: #502200;
  max-width: 560px;
}

.tya-pc-br {
  display: none;
}

.tya-points {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.tya-point {
  background-color: #ffffff;
  box-shadow: 0px 4px 15px rgba(240, 98, 146, 0.05);
  border-radius: 16px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tya-point-label {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 22px;
  color: #eeb9b8;
  text-align: center;
}

.tya-point-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 22px;
  color: #502200;
  text-align: center;
}

.tya-point-body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 13px;
  line-height: 20px;
  color: #502200;
}

.tya-point-body-alt {
  color: #502200;
}

.tya-doctor {
  background-color: #ffffff;
  box-shadow: 0px 4px 15px rgba(240, 98, 146, 0.05);
  border-radius: 24px;
  padding: 28px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.tya-doctor-photo {
  width: 180px;
  height: 180px;
  flex-shrink: 0;
  border-radius: 9999px;
  border: 4px solid rgba(171, 44, 93, 0.2);
  overflow: hidden;
}

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

.tya-doctor-text {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.tya-doctor-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 17px;
  line-height: 22px;
  color: #d46a6a;
}

.tya-doctor-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tya-doctor-body p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
  color: #502200;
}

.tya-accent {
  color: #d46a6a;
}

.tya-aftercare {
  background-color: #ffffff;
  box-shadow: 0px 4px 15px rgba(240, 98, 146, 0.05);
  border-radius: 24px;
  padding: 28px 20px;
}

.tya-aftercare-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  max-width: 1054px;
  margin: 0 auto;
}

.tya-aftercare-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 17px;
  line-height: 22px;
  color: #d46a6a;
  text-align: center;
  text-wrap: balance;
}

.tya-aftercare-body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
  color: #502200;
}

.tya-aftercare-body strong {
  font-weight: 700;
  color: #d46a6a;
}

/* ---------- Breakpoint: 767px ---------- */

@media (min-width: 767px) {
  .tya-section {
    padding: 48px 32px 64px;
  }

  .tya-gold-line {
    width: 180px;
  }

  .tya-eyebrow {
    font-size: 20px;
  }

  .tya-heading {
    font-size: 16px;
  }

  .tya-lead {
    font-size: 15px;
    line-height: 24px;
  }

  .tya-points {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px;
  }

  .tya-point {
    flex: 1 1 calc(50% - 8px);
    min-width: 0;
  }

  .tya-doctor {
    flex-direction: row;
    align-items: center;
    padding: 36px;
  }

  .tya-doctor-photo {
    width: 220px;
    height: 220px;
  }

  .tya-aftercare {
    padding: 36px;
  }
}

/* ---------- Breakpoint: 900px (matches Figma desktop) ---------- */

@media (min-width: 900px) {
  .tya-section {
    padding: 60px 40px 120px;
  }

  .tya-gold-line {
    width: 256px;
    height: 1.3px;
  }

  .tya-container {
    gap: 64px;
    padding: 0 24px;
  }

  .tya-heading-block {
    gap: 16px;
  }

  .tya-eyebrow {
    font-size: 26px;
    line-height: 24px;
  }

  .tya-heading-group {
    gap: 16px;
  }

  .tya-heading {
    font-size: 18px;
    line-height: 24px;
  }

  .tya-lead {
    font-size: 18px;
    line-height: 28px;
    max-width: 672px;
  }

  .tya-points {
    flex-wrap: nowrap;
    gap: 24px;
  }

  .tya-point {
    flex: 1 1 0;
    min-width: 0;
    min-height: 266px;
    padding: 32px;
    border-radius: 24px;
    gap: 11.3px;
  }

  .tya-point-label {
    font-size: 20px;
    line-height: 28px;
  }

  .tya-point-title {
    font-size: 20px;
    line-height: 28px;
  }

  .tya-point-body {
    font-size: 14px;
    line-height: 22.75px;
  }

  .tya-point-body-alt {
    font-size: 15px;
    line-height: 26px;
    max-width: 214px;
  }

  .tya-doctor {
    justify-content: center;
    gap: 48px;
    padding: 64px;
    border-radius: 48px;
  }

  .tya-doctor-photo {
    width: 355px;
    height: 355px;
  }

  .tya-doctor-text {
    max-width: 586px;
    gap: 24px;
  }

  .tya-doctor-heading {
    font-size: 22px;
    line-height: 24px;
    white-space: nowrap;
  }

  .tya-doctor-body {
    gap: 16px;
  }

  .tya-doctor-body p {
    font-size: 16px;
    line-height: 30px;
  }

  .tya-aftercare {
    padding: 40px 64px;
    border-radius: 48px;
  }

  .tya-aftercare-heading {
    font-size: 24px;
    line-height: 24px;
  }

  .tya-aftercare-body {
    font-size: 16px;
    line-height: 30px;
  }
}

/* ==========================================================
   Core Concept Section (ccp-)
   ========================================================== */

.ccp-section {
  background-color: #fffaf6;
  padding: 56px 24px;
}

.ccp-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

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

.ccp-eyebrow {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 2.4px;
  line-height: 20px;
  color: #eeb9b8;
}

.ccp-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 26px;
  color: #502200;
}

.ccp-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.ccp-card {
  background-color: #ffffff;
  border: 1px solid rgba(221, 191, 197, 0.5);
  border-radius: 16px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  font-family: "Noto Sans JP", sans-serif;
}

.ccp-card-label {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 20px;
  color: #eeb9b8;
}

.ccp-card-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 17px;
  line-height: 24px;
  color: #502200;
  margin-top: 10px;
}

.ccp-card-body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 13px;
  line-height: 20px;
  color: #502200;
  margin-top: 8px;
}

/* ---------- Breakpoint: 767px ---------- */

@media (min-width: 767px) {
  .ccp-section {
    padding: 64px 32px;
  }

  .ccp-eyebrow {
    font-size: 14px;
    letter-spacing: 2.8px;
  }

  .ccp-heading {
    font-size: 20px;
  }

  .ccp-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  .ccp-card-title {
    margin-top: 12px;
  }

  .ccp-card-body {
    margin-top: 10px;
  }
}

/* ---------- Breakpoint: 900px (matches Figma desktop) ---------- */

@media (min-width: 900px) {
  .ccp-container {
    gap: 64px;
    padding: 0 24px;
  }

  .ccp-heading-block {
    gap: 8px;
  }

  .ccp-eyebrow {
    font-size: 16px;
    letter-spacing: 3.2px;
    line-height: 24px;
    white-space: nowrap;
  }

  .ccp-heading {
    font-size: 22px;
    line-height: 24px;
    white-space: nowrap;
  }

  .ccp-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
  }

  .ccp-card {
    padding: 33px;
    border-radius: 24px;
  }

  .ccp-card-label {
    font-size: 16px;
    line-height: 24px;
  }

  .ccp-card-title {
    font-size: 20px;
    line-height: 28px;
    margin-top: 16px;
  }

  .ccp-card-body {
    font-size: 14px;
    line-height: 22.75px;
    margin-top: 15.25px;
  }
}

/* ==========================================================
   Comparison Table Section (cmp-)
   ========================================================== */

.cmp-section {
  background-color: #fef4f4;
  padding: 56px 20px;
}

.cmp-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.cmp-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 24px;
  color: #000000;
  text-align: center;
}

.cmp-table-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.cmp-table {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
  background-color: #ffffff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow:
    0px 20px 25px -5px rgba(0, 0, 0, 0.1),
    0px 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.cmp-col-label {
  width: 288px;
}

.cmp-col-silicone {
  width: 407.77px;
}

.cmp-col-fat {
  width: 456.23px;
}

.cmp-table thead tr {
  background-color: #eeb9b8;
}

.cmp-table thead th {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 20px;
  color: #ffffff;
  padding: 16px;
  text-align: center;
  white-space: nowrap;
}

.cmp-table thead th:not(:first-child) {
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.cmp-table tbody th {
  background-color: #f4f3f3;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #502200;
  padding: 16px;
  text-align: center;
  white-space: nowrap;
  border-top: 1px solid rgba(221, 191, 197, 0.2);
}

.cmp-table tbody td {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #502200;
  padding: 16px;
  text-align: center;
  border-top: 1px solid rgba(221, 191, 197, 0.2);
}

.cmp-table tbody tr:first-child th,
.cmp-table tbody tr:first-child td {
  border-top: none;
}

.cmp-table tbody td.cmp-emphasis-silicone,
.cmp-table tbody td.cmp-emphasis-fat {
  font-weight: 700;
  color: #d46a6a;
  line-height: 1.5;
}

.cmp-row-tall th,
.cmp-row-tall td {
  padding-top: 28px;
  padding-bottom: 28px;
}

/* ---------- Case Photos Sub-section ---------- */

.cmp-cases {
  background-color: #fef4f4;
  padding: 0 20px 56px;
}

.cmp-cases-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.cmp-cases-heading-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.cmp-cases-heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 24px;
  color: #502200;
  text-align: center;
}

.cmp-cases-bar {
  display: block;
  width: 56px;
  height: 4px;
  background-color: #d46a6a;
  border-radius: 9999px;
}

.cmp-cases-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.cmp-cases-photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 12px;
}

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

.cmp-cases-note {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  background-color: #f4f3f3;
  border: 1px solid rgba(221, 191, 197, 0.3);
  border-radius: 16px;
  padding: 18px;
  text-align: center;
}

.cmp-cases-note-icon {
  width: 18px;
  height: 16px;
}

.cmp-cases-note-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 13px;
  line-height: 20px;
  color: #502200;
}

.cmp-cases-note-account {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700;
  color: #d46a6a;
}

.cmp-cases-note-arrow {
  width: 14px;
  height: 14px;
}

/* ---------- Breakpoint: 767px ---------- */

@media (min-width: 767px) {
  .cmp-section {
    padding: 64px 32px;
  }

  .cmp-heading {
    font-size: 20px;
  }

  .cmp-table thead th {
    font-size: 16px;
    padding: 20px;
  }

  .cmp-table tbody th,
  .cmp-table tbody td {
    font-size: 15px;
    padding: 20px;
  }

  .cmp-cases {
    padding: 0 32px 64px;
  }

  .cmp-cases-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }

  .cmp-cases-note {
    flex-direction: row;
    padding: 22px;
    gap: 12px;
    text-align: left;
  }

  .cmp-cases-note-text {
    font-size: 14px;
  }
}

/* ---------- Breakpoint: 900px (matches Figma desktop) ---------- */

@media (min-width: 900px) {
  .cmp-container {
    padding: 0 24px;
    gap: 64px;
  }

  .cmp-heading {
    font-size: 24px;
    white-space: nowrap;
  }

  .cmp-table thead th {
    font-size: 18px;
    padding: 24px;
  }

  .cmp-table tbody th,
  .cmp-table tbody td {
    font-size: 16px;
    padding: 24px;
    white-space: nowrap;
    line-height: 1.5;
  }

  .cmp-row-tall th,
  .cmp-row-tall td {
    padding-top: 48px;
    padding-bottom: 48.5px;
  }

  .cmp-cases-container {
    padding: 0 24px;
    gap: 48px;
  }

  .cmp-cases-heading-block {
    gap: 16px;
  }

  .cmp-cases-heading {
    font-size: 22px;
    white-space: nowrap;
  }

  .cmp-cases-bar {
    width: 80px;
  }

  .cmp-cases-grid {
    gap: 32px;
  }

  .cmp-cases-note {
    padding: 25px;
  }

  .cmp-cases-note-icon {
    width: 20px;
    height: 18px;
  }

  .cmp-cases-note-text {
    font-size: 16px;
    line-height: 24px;
  }

  .cmp-cases-note-arrow {
    width: 16px;
    height: 16px;
  }
}

/* ==========================================================
   Price Section (prc-)
   ========================================================== */

.prc-section {
  background-color: #fef4f4;
  padding: 56px 20px;
}

.prc-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

.prc-heading-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}

.prc-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 24px;
  line-height: 24px;
  color: #502200;
}

.prc-sub {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 22px;
  color: #502200;
}

.prc-cards {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.prc-card {
  background-color: #ffffff;
  border: 2px solid #d46a6a;
  border-radius: 16px;
  padding: 20px;
  text-align: center;
}

.prc-card-label {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  color: #d46a6a;
  margin-bottom: 6px;
}

.prc-card-price {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 26px;
  color: #d46a6a;
}

.prc-options {
  width: 100%;
  max-width: 672px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-top: 8px;
}

.prc-options-heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 17px;
  line-height: 24px;
  color: #502200;
}

.prc-options-table {
  width: 100%;
  background-color: #ffffff;
  border: 1px solid #ddbfc5;
  border-radius: 16px;
  overflow: hidden;
  box-shadow:
    0px 10px 15px -3px rgba(0, 0, 0, 0.1),
    0px 4px 6px -4px rgba(0, 0, 0, 0.1);
}

.prc-options-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px;
}

.prc-options-row-alt {
  background-color: #f4f3f3;
}

.prc-options-row:not(.prc-options-row-alt) {
  border-top: 1px solid rgba(221, 191, 197, 0.2);
}

.prc-options-name {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  color: #502200;
}

.prc-options-price {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #502200;
}

/* ---------- Breakpoint: 767px ---------- */

@media (min-width: 767px) {
  .prc-section {
    padding: 64px 32px;
  }

  .prc-heading {
    font-size: 28px;
  }

  .prc-sub {
    font-size: 18px;
  }

  .prc-cards {
    flex-direction: row;
    gap: 24px;
  }

  .prc-card {
    flex: 1;
    padding: 28px;
  }

  .prc-card-price {
    font-size: 32px;
  }

  .prc-options-row {
    padding: 20px;
  }

  .prc-options-name,
  .prc-options-price {
    font-size: 18px;
  }
}

/* ---------- Breakpoint: 900px (matches Figma desktop) ---------- */

@media (min-width: 900px) {
  .prc-container {
    padding: 0 24px;
    gap: 48px;
  }

  .prc-heading {
    font-size: 32px;
    white-space: nowrap;
  }

  .prc-sub {
    font-size: 22px;
    white-space: nowrap;
  }

  .prc-cards {
    gap: 24px;
  }

  .prc-card {
    padding: 32.29px;
  }

  .prc-card-label {
    font-size: 20px;
    margin-bottom: 15px;
  }

  .prc-card-price {
    font-size: 40px;
  }

  .prc-options {
    padding-top: 16px;
  }

  .prc-options-heading {
    font-size: 22px;
    line-height: 28px;
    white-space: nowrap;
  }

  .prc-options-row {
    padding: 24px;
  }

  .prc-options-name,
  .prc-options-price {
    font-size: 22px;
    white-space: nowrap;
  }
}

/* ==========================================================
   Doctor Profile Section (doc-)
   ========================================================== */

.doc-section {
  background-color: #ffffff;
  padding: 48px 20px;
}

.doc-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.doc-photo {
  width: 100%;
  aspect-ratio: 504 / 542;
  border: 1px solid rgba(171, 44, 93, 0.2);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0px 25px 50px -12px rgba(0, 0, 0, 0.25);
}

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

.doc-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.doc-eyebrow {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 1.3px;
  color: #eeb9b8;
}

.doc-name-jp {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 15px;
  color: #502200;
  margin-top: 6px;
}

.doc-name-en {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 14px;
  color: #502200;
}

.doc-info {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 20px 0 24px;
}

.doc-info-block {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.doc-info-heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  color: #502200;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(171, 44, 93, 0.2);
}

.doc-info-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
}

.doc-info-list-gap {
  gap: 6px;
}

.doc-info-list li {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.3px;
  line-height: 19px;
  color: #502200;
}

/* ---------- Breakpoint: 767px ---------- */

@media (min-width: 767px) {
  .doc-section {
    padding: 56px 32px;
  }

  .doc-eyebrow {
    font-size: 14px;
  }

  .doc-name-jp,
  .doc-name-en {
    font-size: 15px;
  }

  .doc-info-list li {
    font-size: 11.5px;
  }
}

/* ---------- Breakpoint: 900px (matches Figma desktop) ---------- */

@media (min-width: 900px) {
  .doc-section {
    padding: 120px 64px;
  }

  .doc-container {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 64px;
  }

  .doc-photo {
    flex: 1 1 0;
    min-width: 0;
  }

  .doc-text {
    flex: 1 1 0;
    min-width: 0;
    gap: 8px;
  }

  .doc-eyebrow {
    font-size: 16px;
    letter-spacing: 1.6px;
  }

  .doc-name-jp {
    font-size: 16px;
    margin-top: 8px;
  }

  .doc-name-en {
    font-size: 16px;
  }

  .doc-info {
    gap: 24px;
    padding: 24px 0 32px;
  }

  .doc-info-block {
    gap: 12px;
  }

  .doc-info-heading {
    font-size: 16px;
    padding-bottom: 9px;
  }

  .doc-info-list-gap {
    gap: 8px;
  }

  .doc-info-list li {
    font-size: 11.742px;
    letter-spacing: 0.3523px;
    line-height: 21.136px;
  }
}

/* ===== 修正：FAQカードの余白と「Q.」サイズ（既存 .question_area 準拠）===== */
.question_area .qa {
  padding: 40px 6%;
}
.question_area .qa span {
  font-size: 2.4rem;
  margin-right: 30px;
}
@media screen and (max-width: 780px) {
  .question_area .qa {
    padding: 20px 6%;
  }
  .question_area .qa span {
    font-size: 2rem;
    margin-right: 10px;
  }
}

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


/* ===== menu-22 FV背景 ===== */
#menu-22 .sec_fv {
  background-image: url("image/fv_menu.png");
  background-position: top center;
  background-repeat: no-repeat;
  background-size: cover;
  background-color: #eeb9b8;
  margin-bottom: 0;
  padding-bottom: 0;
}
@media screen and (max-width: 780px) {
  #menu-22 .sec_fv {
    background-image: url("image/fv_menu_sp02.png");
    background-size: auto 150px;
    background-color: #eeb9b8;   /* ← 追加 */
  }
}
@media screen and (max-width: 460px) {
  #menu-22 .sec_fv {
    background-image: url("image/fv_menu_sp02.png");
    background-size: auto 150px;
    background-color: #eeb9b8;   /* ← 追加 */
  }
}

/* menu-22 FVのh1だけサイズ調整 */
#menu-22 .sec_fv h1 {
  font-size: 2.8rem;
}
@media screen and (max-width: 780px) {
  #menu-22 .sec_fv h1 {
    font-size: 1.6rem;
  }
}

/* ④ 追従CTAが「たゆんバスト」セクションの裏に隠れないように */
.tya-container {
  z-index: auto;
}

/* 追従CTAより手前に出ないよう、新セクションの z-index を無効化 */
.tya-container,
.menu06 .qa__btn {
  z-index: auto;
}

/* =========================================================
   さくらバストクリニック｜シリコンバッグ豊胸ページ
   カード装飾 微調整（style.css の「末尾」に追記してください）
   ※ すべて #menu 配下のため、既存ルールより確実に優先されます。
      既存の記述を書き換える必要はありません。
   ========================================================= */

/* --- ① シリコンバッグ豊胸とは（sba）------------------------ */
#menu .sba-reason {
  background-color: #ffffff;
  border: 1px solid #eeb9b8;
  border-radius: 6px;
}
/* 01・02・03 → 明朝体・#EEB9B8（丸バッジを解除してテキスト化）*/
#menu .sba-reason-number {
  width: auto;
  height: auto;
  background-color: transparent;
  border-radius: 0;
  color: #eeb9b8;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 2.2rem;
  line-height: 1.2;
}
#menu .sba-reason-body h3,
#menu .sba-reason-body p {
  color: #502300;
}

/* --- ② シリコンバッグ挿入部位について（spi）--------------- */
#menu .spi-card {
  border-color: #eeb9b8;   /* 枠線色のみ変更（太さは既存の2pxを維持）*/
}
#menu .spi-card-heading,
#menu .spi-card-desc,
#menu .spi-list-text {
  color: #502300;
}
/* ※チェックマークの色は SVG 側で調整（本文参照）*/

/* --- ③ たゆんバスト 4ポイント（tya）----------------------- */
#menu .tya-point {
  background-color: #ffffff;
  border: 1px solid #eeb9b8;
  border-radius: 6px;
  box-shadow: none;   /* フラットに。影を残す場合はこの行を削除 */
}
/* Point 01〜04（ラベル）はピンク(#eeb9b8)のまま固定 */
#menu .tya-point-label {
  color: #eeb9b8;
}
#menu .tya-point-title,
#menu .tya-point-body,
#menu .tya-point-body-alt {
  color: #502300;
}

/* --- ④ 当院の豊胸術のこだわり（ccp）----------------------- */
#menu .ccp-card {
  border: 1px solid #eeb9b8;
  border-radius: 6px;
}
#menu .ccp-card-title,
#menu .ccp-card-body {
  color: #502300;
}
/* 「01 / PRECISION」等のラベルはピンク(#eeb9b8) */
#menu .ccp-card-label {
  color: #eeb9b8;
  font-family: "Noto Sans JP", sans-serif;
}