﻿  :root {
    --pink-main: #9e8878;
    --pink-dark: #7a6860;
    --pink-deep: #5a4c45;
    --pink-50: #f5ede4;
    --pink-100: #efe0d4;
    --pink-200: #e5d4c8;
    --pink-300: #d8c4b4;
    --pink-400: #c4ae9a;
    --accent-yellow: #DFCBB8;
    --accent-yellow-dark: #c4ae9a;
    --navy: #4a3d42;
    --navy-dark: #342b30;
    --ink: #4a4145;
    --gray-50: #fafafa;
    --gray-100: #f4f4f6;
    --gray-200: #e5e5ed;
    --gray-300: #d4d4dc;
    --gray-400: #9a9aac;
    --gray-500: #6a6a7c;
    --gray-600: #4a4a5c;
    --gray-700: #2a2a3a;
    --cream: #fffaf5;
    --bg: #fff8fa;
    --green: #3dc97a;
    --red: #ff5c76;
    --shadow-pink: 0 12px 28px rgba(158,136,120,0.16);
    --shadow-soft: 0 8px 22px rgba(158,136,120,0.08);
    --shadow-card: 0 8px 22px rgba(90,67,75,0.07);
  }


  /* ===== クリニック詳細レビュー：添付画像風カード ===== */
  #clinics {
    background:
      radial-gradient(circle at 12% 4%, rgba(184,149,115,0.12), transparent 20%),
      radial-gradient(circle at 88% 10%, rgba(184,149,115,0.10), transparent 22%),
      linear-gradient(180deg, #fdf8f3 0%, #fff 100%);
  }

  #clinics .section-eyebrow {
    color: #9e8878;
    font-size: 15px;
    letter-spacing: 0.32em;
  }

  #clinics .section-title {
    font-size: 48px;
    color: #3f3438;
  }

  #clinics .section-divider {
    width: 190px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #DFCBB8, transparent);
    position: relative;
  }

    .clinic-card {
    --clinic-main: #9e8878;
    --clinic-dark: #7a6860;
    --clinic-soft: #f5ede4;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    padding: 42px 34px 34px;
    border-radius: 14px;
    border: 1.5px solid color-mix(in srgb, var(--clinic-main) 34%, white);
    background:
      radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--clinic-main) 10%, transparent), transparent 22%),
      linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,248,250,0.96));
    box-shadow: 0 12px 34px rgba(90,67,75,0.08);
    overflow: hidden;
  }

  .clinic-card:not(.rank1) {
    --clinic-main: #c4ae9a;
    --clinic-dark: #8f6c55;
    --clinic-soft: #fff8ef;
  }

  .clinic-card#digital {
    --clinic-main: #3e9e99;
    --clinic-dark: #247875;
    --clinic-soft: #eefafa;
  }

  .clinic-card.rank1 {
    --clinic-main: #d9257a;
    --clinic-dark: #8b3a4a;
    border: 2px solid #d9257a;
    background:
      radial-gradient(circle at 90% 12%, rgba(184,149,115,0.12), transparent 20%),
      linear-gradient(180deg, #fff 0%, #fffdf9 100%);
    box-shadow: 0 16px 42px rgba(158,136,120,0.14);
  }

  .clinic-card::before {
    content: '';
    position: absolute;
    left: 22px;
    top: 18px;
    width: 170px;
    height: 210px;
    background: url("../images/flow-doctor.png") no-repeat center top / cover;
    border-radius: 0 0 18px 18px;
    opacity: 0.98;
    pointer-events: none;
  }

  .clinic-card::after,
  .clinic-card.rank1::after {
    content: '';
    position: absolute;
    top: 46px;
    right: 48px;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.9) 0%, rgba(255,243,246,0.9) 100%);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--clinic-main) 18%, white);
    pointer-events: none;
  }

  .clinic-card .no1-ribbon {
    top: 0;
    left: 210px;
    right: auto;
    width: 76px;
    min-height: 92px;
    padding: 14px 8px 18px;
    border-radius: 0;
    background: #d9257a;
    color: #fff;
    font-family: 'Noto Serif JP', serif;
    font-size: 18px;
    line-height: 1.25;
    box-shadow: none;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 84%, 0 100%);
    z-index: 3;
  }

  .clinic-card .no1-ribbon::before {
    content: '人気';
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    letter-spacing: 0.1em;
  }

  .clinic-head {
    min-height: 170px;
    margin: 0;
    padding: 18px 170px 22px 275px;
    border: 0;
    align-items: center;
    position: relative;
    z-index: 2;
  }

  .clinic-name {
    color: #3f3438;
    font-size: clamp(25px, 3.5vw, 38px);
    line-height: 1.35;
  }

  .clinic-position {
    color: var(--clinic-main);
    font-size: 17px;
    font-weight: 900;
    line-height: 1.7;
  }

  .clinic-position small {
    display: inline-block;
    margin-top: 6px;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--clinic-soft);
    color: var(--clinic-dark);
    font-size: 13px !important;
  }

  .score-row {
    gap: 0;
    padding: 0;
    border-radius: 12px;
    background: linear-gradient(90deg, #fff7ef, #fffaf2);
    border: 1px solid #f3e1cf;
    overflow: hidden;
  }

  .score-item {
    padding: 22px 16px;
    border-right: 1px solid #f3e1cf;
  }

  .score-item:last-child {
    border-right: 0;
  }

  .score-label {
    color: #3f3438;
    font-size: 15px;
    font-weight: 900;
  }

  .score-label::before {
    content: '♡';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-right: 8px;
    border-radius: 50%;
    color: var(--clinic-main);
    border: 2px solid color-mix(in srgb, var(--clinic-main) 26%, white);
    vertical-align: middle;
  }

  .score-stars {
    color: #f5a400;
    font-size: 19px;
    letter-spacing: 0.06em;
    margin: 10px 0 4px;
  }

  .score-num {
    color: var(--clinic-main);
    font-family: 'Inter', sans-serif;
    font-size: 27px;
    font-weight: 900;
  }

  .spec-table {
    display: table;
    border-collapse: separate;
    border-spacing: 0;
    margin: 0;
    border: 1px solid #e5d4c8;
    border-radius: 12px;
    background: rgba(255,255,255,0.92);
    box-shadow: 0 8px 20px rgba(90,67,75,0.04);
    overflow: hidden;
  }

  .spec-table td {
    padding: 16px 18px;
    border-bottom: 1px solid #e5d4c8;
    color: #3f3438;
    font-size: 14px;
  }

  .spec-table .sh {
    width: 180px;
    background: var(--clinic-soft);
    color: var(--clinic-dark);
    font-weight: 900;
  }

  .spec-table .best {
    color: var(--clinic-main);
    font-weight: 900;
  }

  .points-title {
    margin: 12px 0 0;
    padding-left: 0;
    border-left: 0;
    color: #3f3438;
    font-size: 22px;
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .points-title::before {
    content: '';
    width: 8px;
    height: 28px;
    border-radius: 999px;
    background: var(--clinic-main);
  }

  .point-item {
    align-items: center;
    gap: 18px;
    margin: 0;
    padding: 18px 20px;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(90deg, var(--clinic-soft), rgba(255,255,255,0.88));
  }

  .point-num {
    width: 54px;
    height: 54px;
    background: var(--clinic-main);
    box-shadow: none;
    font-size: 20px;
  }

  .point-title {
    color: var(--clinic-main);
    font-size: 16px;
  }

  .point-desc {
    color: #4f4649;
    font-size: 13px;
  }

  .reviews-title {
    margin-top: 18px !important;
  }

  .osusume-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 12px;
  }

  .osusume-card {
    min-height: 190px;
    padding: 22px 16px;
    border: 1px solid #e5d4c8;
    border-radius: 12px;
    background: rgba(255,255,255,0.9);
    text-align: center;
  }

  .osusume-icon {
    width: 150px;
    height: 150px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: var(--clinic-soft);
    overflow: hidden;
    display: block;
    position: relative;
  }
  .osusume-icon img,
  .clinic-card .osusume-icon img {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 65%;
    height: 65%;
    object-fit: contain;
    display: block;
  }

  .osusume-title {
    color: #3f3438;
    font-size: 15px;
    line-height: 1.6;
  }

  .osusume-desc {
    color: #5f5558;
    font-size: 13px;
    line-height: 1.8;
  }

  .clinic-cta {
    padding-top: 6px;
  }

  .clinic-cta-btn {
    width: min(720px, 100%);
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #c4ae9a, #9e8878);
    box-shadow: 0 12px 24px rgba(158,136,120,0.28);
    font-size: 19px;
    padding: 20px 34px;
  }

  .clinic-cta-arrow {
    margin-left: 8px;
  }

  .cf-notes-box {
    border-color: color-mix(in srgb, var(--clinic-main) 20%, white);
    background: rgba(255,255,255,0.74);
  }

  @media (max-width: 980px) {
    .clinic-card {
      padding: 34px 22px 28px;
      grid-template-columns: 1fr;
    }

    .clinic-card::before,
    .clinic-card::after {
      display: none;
    }

    .clinic-card .no1-ribbon {
      left: auto;
      right: 22px;
      width: 64px;
      min-height: 78px;
      font-size: 15px;
    }

    .clinic-head {
      min-height: auto;
      padding: 0 84px 0 0;
    }

    .score-row,
    .osusume-grid {
      grid-template-columns: repeat(2, 1fr);
    }

    .clinic-card .spec-table,
    .clinic-card .score-row {
      grid-column: 1;
      grid-row: auto;
    }

    .clinic-card .score-row {
      grid-template-columns: 170px 1fr;
    }
  }

  @media (max-width: 640px) {
    .clinic-card {
      gap: 16px;
      padding: 28px 16px 24px;
    }

    .clinic-head {
      padding-right: 0;
      align-items: flex-start;
    }

    .clinic-card .no1-ribbon {
      position: relative;
      top: auto;
      right: auto;
      left: auto;
      width: 70px;
      min-height: 64px;
      margin-bottom: -4px;
    }

    .clinic-name {
      font-size: 22px;
    }

    .clinic-position {
      font-size: 13px;
    }

    .score-row,
    .osusume-grid {
      grid-template-columns: 1fr;
    }

    .score-item {
      border-right: 0;
      border-bottom: 1px solid #f3e1cf;
    }

    .score-item:last-child {
      border-bottom: 0;
    }

    .spec-table .sh {
      width: 116px;
    }

    .spec-table td {
      padding: 12px 10px;
      font-size: 12px;
    }

    .clinic-cta-btn {
      font-size: 15px;
      padding: 16px 22px;
    }

    .clinic-card .spec-table {
      min-height: 148px;
      padding: 20px 18px;
    }

    .clinic-card .spec-table tr:nth-child(3) {
      padding-right: 128px;
    }

    .clinic-card .spec-table::after {
      right: 14px;
      width: 112px;
      height: 68px;
    }

    .clinic-card .spec-table::before {
      right: 42px;
      bottom: 46px;
      font-size: 12px;
    }

    .clinic-card .score-row {
      grid-template-columns: 1fr;
      padding: 20px 18px;
    }

    .clinic-card .score-row::before {
      text-align: center;
    }
  }


  /* ===== クリニック詳細：料金カード + 総合評価カード（最終） ===== */
  .clinic-card {
    grid-template-columns: minmax(220px, 0.95fr) minmax(300px, 1.25fr);
    align-items: start;
  }

  .clinic-card .clinic-head,
  .clinic-card .points-title,
  .clinic-card .point-item,
  .clinic-card .reviews-title,
  .clinic-card .osusume-grid,
  .clinic-card .cf-notes-box,
  .clinic-card .clinic-cta {
    grid-column: 1 / -1;
  }

  .clinic-card .spec-table {
    grid-column: 1;
    grid-row: 2;
    align-self: stretch;
    min-height: 168px;
    display: grid;
    align-items: center;
    padding: 26px 26px 22px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background: linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,246,249,0.92) 100%);
    position: relative;
    overflow: hidden;
  }

  .clinic-card .spec-table::after {
    content: '';
    position: absolute;
    right: 22px;
    bottom: 18px;
    width: 142px;
    height: 82px;
    background: linear-gradient(180deg, rgba(255,230,237,0.96), rgba(255,246,249,0.96));
    border: 1px solid #e5d4c8;
    border-radius: 6px;
    box-shadow: 0 10px 18px rgba(90,67,75,0.08);
  }

  .clinic-card .spec-table::before {
    content: 'GLP-1';
    position: absolute;
    right: 57px;
    bottom: 50px;
    z-index: 1;
    color: #9e8878;
    font-family: 'Noto Serif JP', serif;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  .clinic-card .spec-table tbody,
  .clinic-card .spec-table tr,
  .clinic-card .spec-table td {
    display: block;
  }

  .clinic-card .spec-table tr {
    display: none;
  }

  .clinic-card .spec-table tr:nth-child(3) {
    display: block;
    position: relative;
    z-index: 2;
    padding-right: 155px;
  }

  .clinic-card .spec-table tr:nth-child(3) .sh {
    width: auto;
    padding: 0;
    margin-bottom: 14px;
    border: 0;
    background: transparent;
    color: #3f3438;
    font-size: 15px;
    line-height: 1.4;
  }

  .clinic-card .spec-table tr:nth-child(3) td:not(.sh) {
    padding: 0;
    border: 0;
    background: transparent;
    color: #3f3438;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.55;
  }

  

  .clinic-card .score-row {
    grid-column: 2;
    grid-row: 2;
    min-height: 168px;
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 10px 24px;
    align-items: center;
    padding: 24px 26px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background: linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,246,249,0.92) 100%);
    position: relative;
  }

  .clinic-card .score-row::before {
    display: none;
  }

  .clinic-card .score-item {
    display: grid;
    grid-template-columns: minmax(88px, 1fr) 92px 34px;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    text-align: left;
  }

  .clinic-card .score-label {
    color: #3f3438;
    font-size: 13px;
    line-height: 1.4;
  }

  .clinic-card .score-label::before {
    display: none;
  }

  .clinic-card .score-stars {
    margin: 0;
    color: #f5a400;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    color: #9e8878;
    font-size: 13px;
    line-height: 1;
    text-align: right;
  }

  @media (max-width: 980px) {
    .clinic-card {
      grid-template-columns: 1fr;
    }

    .clinic-card .spec-table,
    .clinic-card .score-row {
      grid-column: 1;
      grid-row: auto;
    }
  }

  @media (max-width: 640px) {
    .clinic-card .spec-table {
      min-height: 148px;
      padding: 20px 18px;
    }

    .clinic-card .spec-table tr:nth-child(3) {
      padding-right: 128px;
    }

    .clinic-card .spec-table::after {
      right: 14px;
      width: 112px;
      height: 68px;
    }

    .clinic-card .spec-table::before {
      right: 42px;
      bottom: 46px;
      font-size: 12px;
    }

    .clinic-card .score-row {
      grid-template-columns: 1fr;
      padding: 20px 18px;
    }

    .clinic-card .score-row::before {
      text-align: center;
    }
  }


  /* ===== 2位・3位リボン色調整 ===== */
  .clinic-card#clinic-for .no1-ribbon {
    background: linear-gradient(180deg, #c6a180, #9a7355);
  }

  .clinic-card#clinic-for .no1-ribbon::before {
    content: '人気';
  }

  .clinic-card#digital .no1-ribbon {
    background: linear-gradient(180deg, #50b9b4, #2d8d89);
  }

  .clinic-card#digital .no1-ribbon::before {
    content: '人気';
  }

  /* ===== osusume-icon 背景色（カード別） ===== */
  .clinic-card.rank1 .osusume-icon {
    background: #fff7f9;
  }
  .clinic-card:not(.rank1) .osusume-icon {
    background: #f5ede4;
  }
  .clinic-card#digital .osusume-icon {
    background: #eefafa;
  }

  /* ===== CTA ボタン色（リボン色に合わせる） ===== */
  .clinic-card.rank1 .clinic-cta-btn {
    background: #d9257a;
    box-shadow: 0 12px 24px rgba(217,37,122,0.3);
  }
  .clinic-card#clinic-for .clinic-cta-btn {
    background: linear-gradient(135deg, #c6a180, #9a7355);
    box-shadow: 0 12px 24px rgba(154,115,85,0.3);
  }
  .clinic-card#digital .clinic-cta-btn {
    background: linear-gradient(135deg, #50b9b4, #2d8d89);
    box-shadow: 0 12px 24px rgba(45,141,137,0.3);
  }

  /* ===== score-row：総合評価カードの表示調整 ===== */
  .clinic-card .score-row {
    grid-template-columns: 40% 60%;
    gap: 0;
    padding: 18px 22px;
    min-height: 156px;
    background: linear-gradient(90deg, #fff 0%, #fff7fa 100%);
  }

  .clinic-card .score-row::before {
    display: none;
  }

  .clinic-card .score-row::first-line {
    font-size: 13px;
  }

  .clinic-card .score-item {
    grid-column: 2;
    grid-template-columns: minmax(82px, 1fr) 86px 36px;
    gap: 8px;
    min-height: 24px;
    padding-left: 20px;
  }

  .clinic-card .score-label {
    font-size: 13px;
    font-weight: 900;
    color: #4a3933;
  }

  .clinic-card .score-stars {
    font-size: 14px;
    color: #f6a800;
  }

  .clinic-card .score-num {
    font-size: 13px;
    font-weight: 900;
    color: var(--clinic-main);
  }

  @media (max-width: 640px) {
    .clinic-card .score-row {
      grid-template-columns: 1fr;
      gap: 12px;
    }

    .clinic-card .score-summary {
      grid-column: 1;
      grid-row: auto;
      padding: 0 0 12px;
      text-align: center;
    }

    .clinic-card .score-item {
      grid-column: 1;
      padding-left: 0;
    }
  }


  /* ===== clinic price/spec split ===== */
  .clinic-card .score-row {
    grid-column: 1 / -1;
    grid-row: auto;
    display: grid;
    grid-template-columns: minmax(260px, 0.9fr) minmax(160px, 0.42fr) minmax(280px, 0.68fr);
    gap: 18px 22px;
    align-items: stretch;
    min-height: 168px;
    padding: 0;
    border: 0;
    background: transparent;
    overflow: visible;
  }

  .clinic-card .score-row::before,
  .clinic-card .score-row::after {
    display: none;
  }

  .clinic-price-card {
    grid-column: 1;
    grid-row: 1 / 5;
    min-height: 168px;
    padding: 26px 26px 22px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background: linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,246,249,0.92) 100%);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .clinic-price-card::after {
    content: '';
    position: absolute;
    right: 22px;
    bottom: 18px;
    width: 142px;
    height: 82px;
    background: linear-gradient(180deg, rgba(255,230,237,0.96), rgba(255,246,249,0.96));
    border: 1px solid #e5d4c8;
    border-radius: 6px;
    box-shadow: 0 10px 18px rgba(90,67,75,0.08);
  }



  .clinic-price-name {
    position: relative;
    z-index: 2;
    color: #3f3438;
    font-size: 15px;
    font-weight: 900;
    margin-bottom: 14px;
  }

  .clinic-price-text {
    position: relative;
    z-index: 2;
    color: #3f3438;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.55;
    padding-right: 10px;
  }

  .clinic-price-text small {
    font-size: 13px;
    font-weight: 700;
  }

 

  .clinic-card .score-summary {
    grid-column: 2;
    grid-row: 1 / 5;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px 18px;
    border: 1px solid #e5d4c8;
    border-right: 0;
    border-radius: 10px 0 0 10px;
    background: linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,246,249,0.92) 100%);
  }

  .clinic-card .ss-label {
    color: #3f3438;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.4;
  }

  .clinic-card .ss-score {
    color: #9e8878;
    font-family: 'Noto Serif JP', serif;
    font-size: 35px;
    font-weight: 900;
    line-height: 1.1;
  }

  .clinic-card .ss-slash {
    color: #3f3438;
    font-size: 16px;
    font-weight: 900;
  }

  .clinic-card .ss-stars {
    color: #f6a800;
    font-size: 24px;
    line-height: 1.1;
    letter-spacing: 0;
  }

  .clinic-card .score-item {
    grid-column: 3;
    display: grid;
    grid-template-columns: minmax(82px, 1fr) 86px 36px;
    align-items: center;
    gap: 8px;
    min-height: 30px;
    padding: 0 18px 0 0;
    border: 1px solid #e5d4c8;
    border-left: 0;
    border-top: 0;
    border-bottom: 0;
    text-align: left;
    background: linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,246,249,0.92) 100%);
  }



   .clinic-card .score-item:nth-child(6) {
    padding-bottom: 20px;
  }

  .clinic-card .score-label {
    font-size: 13px;
    font-weight: 900;
    color: #4a3933;
    line-height: 1.4;
  }

  .clinic-card .score-label::before {
    display: none;
  }

  .clinic-card .score-stars {
    margin: 0;
    font-size: 14px;
    color: #f6a800;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    font-size: 13px;
    font-weight: 900;
    color: var(--clinic-main);
    line-height: 1;
    text-align: right;
  }

  .clinic-spec-table {
    grid-column: 1 / -1;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #e5d4c8;
    border-radius: 12px;
    background: rgba(255,255,255,0.92);
    box-shadow: 0 8px 20px rgba(90,67,75,0.04);
    overflow: hidden;
  }

  .clinic-spec-table td {
    padding: 16px 18px;
    border-bottom: 1px solid #e5d4c8;
    color: #3f3438;
    font-size: 14px;
    line-height: 1.7;
    vertical-align: top;
  }

  .clinic-spec-table tr:last-child td {
    border-bottom: 0;
  }

  .clinic-spec-table .sh {
    width: 180px;
    background: var(--clinic-soft);
    color: var(--clinic-dark);
    font-weight: 900;
  }

  .clinic-spec-table .best {
    color: var(--clinic-main);
    font-weight: 900;
  }

  @media (max-width: 980px) {
    .clinic-card .score-row {
      grid-template-columns: 1fr;
    }

    .clinic-price-card,
    .clinic-card .score-summary,
    .clinic-card .score-item {
      grid-column: 1;
      grid-row: auto;
    }

    .clinic-card .score-summary {
      border: 1px solid #e5d4c8;
      border-radius: 10px;
      text-align: center;
    }

    .clinic-card .score-item {
      border: 0;
      padding: 0;
      background: transparent;
    }
  }

  @media (max-width: 640px) {
    .clinic-price-card {
      min-height: 148px;
      padding: 20px 18px;
    }

    .clinic-price-text {
      padding-right: 128px;
      font-size: 17px;
    }

    .clinic-price-card::after {
      right: 14px;
      width: 112px;
      height: 68px;
    }



    .clinic-spec-table .sh {
      width: 116px;
    }

    .clinic-spec-table td {
      padding: 12px 10px;
      font-size: 12px;
    }
  }

  /* ===== clinic score/price layout polish: effective final ===== */
  .clinic-card .score-row {
    grid-column: 1 / -1;
    grid-row: auto;
    display: grid;
    grid-template-columns: minmax(230px, 0.95fr) minmax(210px, 0.72fr) minmax(310px, 1.2fr);
    gap: 0;
    align-items: stretch;
    min-height: auto;
    margin-top: 6px;
    padding: 22px 24px;
    overflow: hidden;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background:
      radial-gradient(circle at 18% 18%, rgba(255, 238, 243, 0.9), transparent 34%),
      linear-gradient(135deg, #fff 0%, #fff8fb 100%);
    box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
  }

  .clinic-card .score-row::before,
  .clinic-card .score-row::after {
    display: none !important;
    content: none !important;
  }

  .clinic-price-card {
    position: relative;
    grid-column: 1;
    grid-row: 1 / 5;
    min-height: 154px;
    padding: 24px 30px 22px 30px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

 

  .clinic-price-card::after {
    display: none !important;
    content: none !important;
  }

  .clinic-price-name {
    position: relative;
    z-index: 2;
    color: #3f3438;
    font-size: 17px;
    font-weight: 900;
    line-height: 1.5;
  }

  .clinic-price-text {
    position: relative;
    z-index: 2;
    max-width: calc(100% - 76px);
    margin-top: 18px;
    color: #3f3438;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.55;
  }

  .clinic-price-text small {
    font-size: 13px;
    font-weight: 800;
  }

  .clinic-card .score-summary {
    grid-column: 2;
    grid-row: 1 / 5;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 154px;
    padding: 18px 22px;
    border: 0;
    border-left: 1px solid #e0d0c8;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
  }

  .clinic-card .score-item {
    grid-column: 3;
    display: grid;
    grid-template-columns: minmax(98px, 1fr) 96px 42px;
    gap: 8px;
    align-items: center;
    min-height: 34px;
    padding: 0 4px 0 28px;
    border: 0;
    border-left: 1px solid #e0d0c8;
    background: transparent;
    text-align: left;
  }

  .clinic-card .score-item + .score-item {
    border-top: 1px solid rgba(244, 214, 222, 0.72);
  }

  .clinic-card .score-label {
    color: #3f3438;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.4;
  }

  .clinic-card .score-label::before {
    display: none;
  }

  .clinic-card .score-stars {
    margin: 0;
    color: #f6a800;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    color: var(--clinic-main);
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    text-align: right;
  }

  @media (max-width: 980px) {
    .clinic-card .score-row,
    .clinic-card:not(#dmm) .score-row {
      grid-template-columns: 1fr 1fr;
      gap: 18px;
      padding: 0;
    }

    .clinic-price-card {
      grid-column: 1;
      grid-row: auto;
      padding: 22px 30px;
    }

    .clinic-card .score-summary {
      grid-column: 2;
      grid-row: auto;
    }

    .clinic-card .score-item,
    .clinic-card:not(#dmm) .score-item {
      grid-column: 1 / -1;
      grid-template-columns: minmax(120px, 1fr) 100px 44px;
      padding: 12px 8px;
      border-left: 0;
      border-top: 1px solid rgba(244, 214, 222, 0.72);
    }
  }

  @media (max-width: 640px) {
    .clinic-card .score-row,
    .clinic-card:not(#dmm) .score-row {
      grid-template-columns: 1fr;
      padding: 0;
    }

    .clinic-price-card,
    .clinic-card .score-summary,
    .clinic-card .score-item {
      grid-column: 1;
      grid-row: auto;
    }

    .clinic-price-card {
      min-height: 132px;
      padding: 18px 30px;
    }


    .clinic-price-text {
      max-width: calc(100% - 68px);
      font-size: 18px;
    }

    .clinic-card .score-summary {
      min-height: 128px;
      border-top: 1px solid #e5d4c8;
    }

    .clinic-card .score-item,
    .clinic-card:not(#dmm) .score-item {
      grid-template-columns: minmax(90px, 1fr) 86px 38px;
      padding: 12px 0;
      border-left: 0;
    }
  }

  /* ===== clinic score/price layout: standalone price card ===== */
  .clinic-card .score-row {
    grid-template-columns: minmax(260px, 0.95fr) minmax(210px, 0.72fr) minmax(310px, 1.2fr);
    gap: 18px;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .clinic-price-card {
    min-height: 154px;
    padding: 24px 30px 22px 30px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background:
      radial-gradient(circle at 82% 22%, rgba(255, 238, 243, 0.9), transparent 34%),
      linear-gradient(135deg, #fff 0%, #fff8fb 100%);
    box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
  }

  .clinic-price-card::after {
    display: none !important;
    content: none !important;
  }

  .clinic-card:not(#dmm) .score-summary {
    display: none;
  }

  .clinic-card#dmm .score-summary {
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background: linear-gradient(135deg, #fff 0%, #fff8fb 100%);
    box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
  }

  .clinic-card:not(#dmm) .score-row {
    grid-template-columns: minmax(260px, 0.95fr) minmax(390px, 1.35fr);
  }

  .clinic-card:not(#dmm) .score-item {
    grid-column: 2;
  }

  .clinic-card .score-item {
    padding: 0 4px 0 22px;
    border-left: 0;
  }

  .clinic-card .score-item + .score-item {
    border-top: 1px solid rgba(244, 214, 222, 0.72);
  }

  .clinic-card .score-summary + .score-item,
  .clinic-card .clinic-price-card + .score-item {
    border-top: 0;
  }

  @media (max-width: 980px) {
    .clinic-card .score-row,
    .clinic-card:not(#dmm) .score-row {
      grid-template-columns: 1fr 1fr;
    }

    .clinic-card .score-summary {
      grid-column: 2;
      border-left: 0;
    }

    .clinic-card .score-item,
    .clinic-card:not(#dmm) .score-item {
      grid-column: 1 / -1;
      padding: 12px 8px;
      border-top: 1px solid rgba(244, 214, 222, 0.72);
    }
  }

  @media (max-width: 640px) {
    .clinic-card .score-row,
    .clinic-card:not(#dmm) .score-row {
      grid-template-columns: 1fr;
      gap: 12px;
      padding: 0;
    }

    .clinic-card .score-summary {
      grid-column: 1;
      border-top: 0;
    }

    .clinic-card .score-item,
    .clinic-card:not(#dmm) .score-item {
      grid-column: 1;
      padding: 12px 0;
    }
  }

  /* ===== clinic score/price layout polish ===== */
  .clinic-card .score-row {
    grid-column: 1 / -1;
    grid-row: auto;
    display: grid;
    grid-template-columns: minmax(230px, 0.95fr) minmax(210px, 0.72fr) minmax(310px, 1.2fr);
    gap: 0;
    align-items: stretch;
    min-height: auto;
    margin-top: 6px;
    padding: 22px 24px;
    overflow: hidden;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background:
      radial-gradient(circle at 18% 18%, rgba(255, 238, 243, 0.9), transparent 34%),
      linear-gradient(135deg, #fff 0%, #fff8fb 100%);
    box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
  }

  .clinic-card .score-row::before,
  .clinic-card .score-row::after {
    display: none !important;
    content: none !important;
  }

  .clinic-price-card {
    position: relative;
    grid-column: 1;
    grid-row: 1 / 5;
    min-height: 154px;
    padding: 24px 30px 22px 30px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }



  .clinic-price-card::after {
    display: none !important;
    content: none !important;
  }

  .clinic-price-name {
    position: relative;
    z-index: 2;
    color: #3f3438;
    font-size: 17px;
    font-weight: 900;
    line-height: 1.5;
  }

  .clinic-price-text {
    position: relative;
    z-index: 2;
    max-width: calc(100% - 76px);
    margin-top: 18px;
    color: #3f3438;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.55;
  }

  .clinic-price-text small {
    font-size: 13px;
    font-weight: 800;
  }

  .clinic-card .score-summary {
    grid-column: 2;
    grid-row: 1 / 5;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 154px;
    padding: 18px 22px;
    border: 0;
    border-left: 1px solid #e0d0c8;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
  }

  .clinic-card .score-item {
    grid-column: 3;
    display: grid;
    grid-template-columns: minmax(98px, 1fr) 96px 42px;
    gap: 8px;
    align-items: center;
    min-height: 34px;
    padding: 0 4px 0 28px;
    border: 0;
    border-left: 1px solid #e0d0c8;
    background: transparent;
    text-align: left;
  }

  .clinic-card .score-item + .score-item {
    border-top: 1px solid rgba(244, 214, 222, 0.72);
  }

  .clinic-card .score-label {
    color: #3f3438;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.4;
  }

  .clinic-card .score-stars {
    margin: 0;
    color: #f6a800;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    color: var(--clinic-main);
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    text-align: right;
  }

  @media (max-width: 980px) {
    .clinic-card .score-row,
    .clinic-card:not(#dmm) .score-row {
      grid-template-columns: 1fr 1fr;
      gap: 18px;
      padding: 0;
    }

    .clinic-price-card {
      grid-column: 1;
      grid-row: auto;
      padding: 22px 30px;
    }

    .clinic-card .score-summary {
      grid-column: 2;
      grid-row: auto;
    }

    .clinic-card .score-item,
    .clinic-card:not(#dmm) .score-item {
      grid-column: 1 / -1;
      grid-template-columns: minmax(120px, 1fr) 100px 44px;
      padding: 12px 8px;
      border-left: 0;
      border-top: 1px solid rgba(244, 214, 222, 0.72);
    }
  }

  @media (max-width: 640px) {
    .clinic-card .score-row,
    .clinic-card:not(#dmm) .score-row {
      grid-template-columns: 1fr;
      padding: 0;
    }

    .clinic-price-card,
    .clinic-card .score-summary,
    .clinic-card .score-item {
      grid-column: 1;
      grid-row: auto;
    }

    .clinic-price-card {
      min-height: 132px;
      padding: 18px 30px;
    }



    .clinic-price-text {
      max-width: calc(100% - 68px);
      font-size: 18px;
    }

    .clinic-card .score-summary {
      min-height: 128px;
      border-left: 0;
      border-top: 1px solid #e5d4c8;
    }

    .clinic-card .score-item,
    .clinic-card:not(#dmm) .score-item {
      grid-template-columns: minmax(90px, 1fr) 86px 38px;
      padding: 12px 0;
      border-left: 0;
    }
  }

  .clinic-card .head-fee {
    position: absolute;
    top: 46px;
    right: 48px;
    width: 132px;
    height: 132px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    z-index: 2;
    pointer-events: none;
  }

  .clinic-card .hf-label {
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.1em;
    color: #3f3438;
    opacity: 0.7;
  }

  .clinic-card .hf-price {
    font-size: 24px;
    font-weight: 900;
    color: #9e8878;
    font-family: 'Noto Serif JP', serif;
    line-height: 1.2;
  }

  .clinic-card .hf-note {
    font-size: 12px;
    color: #4a3933;
    line-height: 1.6;
    margin-top: 4px;
  }

  @media (max-width: 980px) {
    .clinic-card .head-fee {
      display: none;
    }
  }


  /* ===== クリニック詳細：料金カード + 総合評価カード ===== */
  .clinic-card {
    grid-template-columns: minmax(220px, 0.95fr) minmax(300px, 1.25fr);
    align-items: start;
  }

  .clinic-card .clinic-head,
  .clinic-card .points-title,
  .clinic-card .point-item,
  .clinic-card .reviews-title,
  .clinic-card .osusume-grid,
  .clinic-card .cf-notes-box,
  .clinic-card .clinic-cta {
    grid-column: 1 / -1;
  }

  .clinic-card .spec-table {
    grid-column: 1;
    grid-row: 2;
    align-self: stretch;
    min-height: 168px;
    display: grid;
    align-items: center;
    padding: 26px 26px 22px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background:
      linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,246,249,0.92) 100%);
    position: relative;
    overflow: hidden;
  }

  .clinic-card .spec-table::after {
    content: '';
    position: absolute;
    right: 22px;
    bottom: 18px;
    width: 142px;
    height: 82px;
    background:
      linear-gradient(180deg, rgba(255,230,237,0.96), rgba(255,246,249,0.96));
    border: 1px solid #e5d4c8;
    border-radius: 6px;
    box-shadow: 0 10px 18px rgba(90,67,75,0.08);
  }

  .clinic-card .spec-table::before {
    content: 'GLP-1';
    position: absolute;
    right: 57px;
    bottom: 50px;
    z-index: 1;
    color: #9e8878;
    font-family: 'Noto Serif JP', serif;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  .clinic-card .spec-table tbody,
  .clinic-card .spec-table tr,
  .clinic-card .spec-table td {
    display: block;
  }

  .clinic-card .spec-table tr {
    display: none;
  }

  .clinic-card .spec-table tr:nth-child(3) {
    display: block;
    position: relative;
    z-index: 2;
    padding-right: 155px;
  }

  .clinic-card .spec-table tr:nth-child(3) .sh {
    width: auto;
    padding: 0;
    margin-bottom: 14px;
    border: 0;
    background: transparent;
    color: #3f3438;
    font-size: 15px;
    line-height: 1.4;
  }

  .clinic-card .spec-table tr:nth-child(3) td:not(.sh) {
    padding: 0;
    border: 0;
    background: transparent;
    color: #3f3438;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.55;
  }


  .clinic-card .score-row {
    grid-column: 2;
    grid-row: 2;
    min-height: 168px;
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 18px 24px;
    align-items: center;
    padding: 24px 26px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background:
      linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,246,249,0.92) 100%);
    position: relative;
  }

  .clinic-card .score-row::before {
    display: none;
  }

  .clinic-card .score-row::after {
    content: '';
    position: absolute;
    left: 126px;
    top: 48px;
    width: 42px;
    height: 54px;
    background: #fff6f8;
    pointer-events: none;
  }

  .clinic-card .score-item {
    display: grid;
    grid-template-columns: minmax(88px, 1fr) 92px 34px;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    text-align: left;
  }

  .clinic-card .score-label {
    color: #3f3438;
    font-size: 13px;
    line-height: 1.4;
  }

  .clinic-card .score-label::before {
    display: none;
  }

  .clinic-card .score-stars {
    margin: 0;
    color: #f5a400;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    color: #9e8878;
    font-size: 13px;
    line-height: 1;
    text-align: right;
  }

  @media (max-width: 980px) {
    .clinic-card {
      grid-template-columns: 1fr;
    }

    .clinic-card .spec-table,
    .clinic-card .score-row {
      grid-column: 1;
      grid-row: auto;
    }
  }

  @media (max-width: 640px) {
    .clinic-card .spec-table {
      min-height: 148px;
      padding: 20px 18px;
    }

    .clinic-card .spec-table tr:nth-child(3) {
      padding-right: 128px;
    }

    .clinic-card .spec-table::after {
      right: 14px;
      width: 112px;
      height: 68px;
    }

    .clinic-card .spec-table::before {
      right: 42px;
      bottom: 46px;
      font-size: 12px;
    }

    .clinic-card .score-row {
      grid-template-columns: 1fr;
      padding: 20px 18px;
    }

    .clinic-card .score-row::before {
      text-align: center;
    }

    .clinic-card .score-row::after {
      display: none;
    }
  }

  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior: smooth; }
  body {
    font-family: 'Noto Sans JP', -apple-system, sans-serif;
    color: var(--ink);
    background: var(--bg);
    line-height: 1.8;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
    letter-spacing: 0.02em;
  }
  a { color: inherit; text-decoration: none; }
  img { max-width: 120%; height: auto; display: block; }

  /* ===== 背景固定画像（FV以外） ===== */
  #bg-fixed-back {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 0;
    opacity: 0.2;
    pointer-events: none;
  }
  #bg-fixed-back img {
    height: 100vh;
    width: auto;
    display: block;
  }

  /* ===== PRバッジ ===== */
  .pr-badge {position: fixed;
    top: 0;    left: 0;
    background: #473835;    color: white;
    font-size: 12px;    font-weight: 900;    padding: 6px 14px;    z-index: 9999;    letter-spacing: 0.08em;
    border-bottom-right-radius: 8px;    backdrop-filter: blur(10px);
  }

  /* ===== HEADER ===== */
  header {
    background: white;
    padding: 10px 24px;
    border-bottom: 1px solid var(--pink-100);
    display: flex;
    justify-content: center;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 1px 8px rgba(158,136,120,0.03);
  }
  .site-name {
    font-family: 'Noto Serif JP', serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy);
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 7px;
  }
  .site-name::before {
    content: '';
    width: 6px; height: 6px;
    background: var(--pink-main);
    border-radius: 50%;
    display: inline-block;
  }

  /* ===== SECTION共通 ===== */
  section.section { padding: 90px 32px; position: relative; }
  section.section:has(+ .cv-section) {
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 60px), 50% 100%, 0 calc(100% - 60px));
    padding-bottom: 150px;
    position: relative;
    z-index: 2;
  }
  section.section:has(+ .cv-section)::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 62px;
    background: white;
    z-index: 1;
    pointer-events: none;
  }
  section.sec-cream:has(+ .cv-section)::after {
    background:
      linear-gradient(rgba(255,255,255,0.8), rgba(255,255,255,0.8)),
      url('../images/back.png') left center / auto 100vh no-repeat fixed;
  }
  #faq.section:has(+ .cv-section)::after {
    background:
      linear-gradient(rgba(255,247,248,0.8), rgba(255,247,248,0.8)),
      url('../images/back.png') left center / auto 100vh no-repeat fixed;
  }
  section.section:has(+ .cv-section) + .cv-section {
    position: relative;
    z-index: 1;
    margin-top: -62px;
    padding-top: calc(90px + 62px);
  }
  .section-inner { max-width: 1040px; margin: 0 auto; position: relative; z-index: 1; }
  .sec-white { background: white; }
  .sec-pink { background: var(--pink-50); }
  .sec-cream { background: var(--cream); }
  .sec-gradient {
    background: linear-gradient(180deg, var(--pink-50) 0%, white 100%);
  }

  .section-eyebrow {
    display: block;
    text-align: center;
    font-size: 15px;
    font-weight: 900;
    color: var(--pink-main);
    letter-spacing: 0.35em;
    margin-bottom: 12px;
  }
  .section-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 48px;
    font-weight: 900;
    color: var(--navy);
    text-align: center;
    line-height: 1.5;
    margin-bottom: 18px;
    letter-spacing: 0.01em;
  }
  .section-title .hl {
    position: relative;
    display: inline-block;
  }
  .section-title .hl::after {
    content: '';
    position: absolute;
    bottom: 3px; left: 0; right: 0;
    height: 12px;
    background: var(--accent-yellow);
    z-index: -1;
  }
  .section-title .pink { color: #d9257a; }
  .section-title .hl.pink::after {
    bottom: -5px;
    height: 10px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M 2 6 Q 100 11.5 198 6' stroke='%23ec93c4' stroke-width='3.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center;
    background-size: 100% 100%;
    z-index: 0;
  }
  .what-accent {
    color: #d9257a;
  }
  .section-divider {
    width: 50px; height: 4px;
    background: linear-gradient(90deg, var(--pink-main), var(--accent-yellow-dark));
    margin: 18px auto 32px;
    border-radius: 2px;
  }
  .section-lead {
    text-align: center;
    color: var(--gray-600);
    font-size: 18px;
    line-height: 2.1;
    margin-bottom: 52px;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  /* ===== GLP-1とは ===== */
  .what-card {
    background: white;
    border-radius: 28px;
    padding: 48px;
    box-shadow: var(--shadow-card);
    margin-bottom: 28px;
    border: 1px solid var(--pink-100);
    position: relative;
    overflow: hidden;
  }
  .what-card::before {
    content: '';
    position: absolute;
    top: 0; right: 0;
    width: 140px; height: 140px;
    background: radial-gradient(circle, var(--pink-100), transparent 70%);
  }
  .what-desc {
    background: var(--pink-50);
    border-radius: 16px;
    padding: 20px 24px;
    margin-bottom: 22px;
    font-size: 15px;
    line-height: 2.0;
    color: var(--gray-700);
  }
  .what-desc ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .what-desc li {
    padding-left: 22px;
    position: relative;
    margin-bottom: 8px;
  }
  .what-desc li:last-child {
    margin-bottom: 0;
  }
  .what-desc li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pink-main);
  }
  .what-points {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 12px;
    padding: 0;
    background: none;
    border-radius: 0;
    margin-bottom: 20px;
  }
  .what-points li {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    font-size: 15px;
    line-height: 1.7;
    color: var(--gray-700);
    padding-left: 0;
    position: relative;
    gap: 12px;
  }
  .what-points li::before {
    content: none;
  }
  .what-point-icon {
    width: 120px;
    height: auto;
    margin: 0 auto 20px;
    display: block;
    position: relative;
    flex-shrink: 0;
  }
  .what-point-icon img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* 注射薬 vs 飲み薬 */
  .comparison-wrap {
    background: white;
    border-radius: 24px;
    padding: 36px;
    box-shadow: var(--shadow-card);
    border: none;
    margin-bottom: 28px;
  }
  .comparison-title {
    text-align: center;
    margin-top: 20px;
    margin-bottom: 28px;
  }
  .comparison-title img {
    max-width: 50%;
    height: auto;
    display: inline-block;
    margin-top: 50px;
  }
  .comparison-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    position: relative;
    margin-bottom: 28px;
  }
  .comparison-grid::before {
    content: 'VS';
    position: absolute;
    left: 50%; top: 50%;
    transform: translate(-50%, -50%);
    background: white;
    width: 48px; height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    font-size: 14px;
    color: var(--pink-dark);
    border: 2px solid var(--pink-main);
    z-index: 2;
    box-shadow: 0 4px 12px rgba(158,136,120,0.2);
  }
  .comp-card {
    padding: 28px;
    border-radius: 20px;
  }
  .comp-card.inject {
    background: linear-gradient(135deg, var(--pink-100), var(--pink-50));
    border: 2px solid var(--pink-200);
  }
  .comp-card.oral {
    background: linear-gradient(135deg, var(--accent-yellow), #fff8d9);
    border: 2px solid var(--accent-yellow-dark);
  }
  .comp-card-label {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.3em;
    margin-bottom: 6px;
  }
  .comp-card.inject .comp-card-label { color: var(--pink-dark); }
  .comp-card.oral .comp-card-label { color: #d9257a; }
  .comp-card-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 22px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 18px;
  }
  .comp-specs { list-style: none; }
  .comp-specs li {
    font-size: 13px;
    padding: 8px 0;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px dashed rgba(42,42,74,0.15);
    line-height: 1.6;
    color: var(--gray-700);
  }
  .comp-specs li:last-child { border-bottom: none; }
  .comp-specs li::before {
    content: none;
  }
  .comp-drugs {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .comp-drug-tag {
    background: white;
    padding: 5px 12px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy);
    border: 1px solid rgba(42,42,74,0.1);
  }

  .caution-card {
    background: linear-gradient(135deg, #fff8e1, #fff4d0);
    border-radius: 20px;
    padding: 28px 32px;
    border-left: 5px solid var(--accent-yellow-dark);
    box-shadow: var(--shadow-card);
  }
  .caution-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 17px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .caution-title-icon {
    width: 32px; height: 32px;
    background: var(--accent-yellow-dark);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 900;
  }
  .caution-list { list-style: none; }
  .caution-list li {
    font-size: 13px;
    padding: 6px 0 6px 26px;
    position: relative;
    line-height: 1.9;
    color: var(--gray-700);
    margin-left: 6px;
  }
  .caution-list li::before {
    content: '!';
    position: absolute;
    left: 0; top: 8px;
    background: var(--accent-yellow-dark);
    color: white;
    width: 18px; height: 18px;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }

  /* ===== 4つの特徴 ===== */
  .feature-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
  }
  .feature-card {
    background: white;
    border-radius: 24px;
    padding: 40px 24px 34px;
    text-align: center;
    box-shadow: var(--shadow-card);
    border: 1px solid var(--pink-100);
    position: relative;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
  }
  .feature-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(158,136,120,0.15);
  }
  .feature-num {
    position: absolute;
    top: 16px; right: 10px;
    font-family: 'Noto Serif JP', serif;
    font-size: 44px;
    font-weight: 900;
    color: var(--pink-100);
    line-height: 1;
  }
  .feature-icon {
    width: 120px;
    height: auto;
    margin: 0 auto 20px;
    display: block;
    position: relative;
  }
  .feature-icon img {
    width: 100%;
    height: auto;
    display: block;
  }
  .feature-icon::before {
    content: none;
  }
  .feature-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 20px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 10px;
    line-height: 1.5;
  }
  .feature-desc {
    font-size: 15px;
    color: var(--gray-600);
    line-height: 1.8;
  }
  .disclaimer-text {
    font-size: 14px;
    color: var(--gray-400);
    text-align: center;
    margin-top: 32px;
    line-height: 1.9;
  }

  /* ===== 薬選びタブ ===== */
  .drug-tabs {
    display: flex;
    gap: 8px;
    background: white;
    padding: 8px;
    border-radius: 100px;
    box-shadow: var(--shadow-card);
    max-width: 700px;
    margin: 0 auto 32px;
  }
  .dtab {
    flex: 1;
    background: transparent;
    border: none;
    padding: 12px 10px;
    font-size: 15px;
    font-weight: 900;
    color: var(--gray-500);
    cursor: pointer;
    border-radius: 100px;
    transition: all 0.25s;
    font-family: inherit;
    line-height: 1.3;
  }
  .dtab small {
    font-size: 15px;
    font-weight: 500;
    display: block;
    color: var(--gray-400);
    margin-top: 2px;
  }
  .dtab:hover { color: var(--pink-main); }
  .dtab.active {
    background: linear-gradient(135deg, var(--pink-main), var(--pink-dark));
    color: white;
    box-shadow: 0 6px 16px rgba(158,136,120,0.35);
  }
  .dtab.active small { color: rgba(255,255,255,0.9); }

  .drug-panel { display: none; }
  .drug-panel.active { display: block; }
  .drug-panel-card {
    background: white;
    border-radius: 28px;
    padding: 48px;
    box-shadow: var(--shadow-card);
    border: 1px solid var(--pink-100);
  }
  .dp-header {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: 28px;
    padding-bottom: 28px;
    border-bottom: 2px dashed var(--pink-100);
  }
  .dp-icon {
    width: 80px; height: 80px;
    background: linear-gradient(135deg, var(--pink-100), var(--accent-yellow));
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    flex-shrink: 0;
  }
  .dp-name {
    font-family: 'Noto Serif JP', serif;
    font-size: 28px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 4px;
  }
  .dp-type {
    font-size: 13px;
    color: var(--pink-dark);
    font-weight: 900;
    letter-spacing: 0.15em;
  }

  .dp-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    margin-bottom: 28px;
  }
  .dp-col {
    padding: 24px;
    border-radius: 16px;
  }
  .dp-col.good {
    background: var(--pink-50);
    border: 1px solid var(--pink-100);
  }
  .dp-col.suit {
    background: var(--cream);
    border: 1px solid rgba(255,217,90,0.4);
  }
  .dp-col-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 15px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .dp-col-icon {
    width: 28px; height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: white;
    font-weight: 900;
  }
  .dp-col.good .dp-col-icon { background: var(--pink-main); }
  .dp-col.suit .dp-col-icon { background: var(--accent-yellow-dark); }
  .dp-col ul { list-style: none; }
  .dp-col ul li {
    font-size: 13px;
    padding: 6px 0 6px 20px;
    position: relative;
    line-height: 1.8;
    color: var(--gray-700);
  }
  .dp-col ul li::before {
    content: '●';
    position: absolute;
    left: 0; top: 10px;
    font-size: 12px;
  }
  .dp-col.good ul li::before { color: var(--pink-main); }
  .dp-col.suit ul li::before { color: var(--accent-yellow-dark); }

  .dp-clinic-row {
    padding-top: 28px;
    border-top: 2px dashed var(--pink-100);
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
  }
  .dp-clinic-label {
    font-size: 13px;
    font-weight: 900;
    color: var(--navy);
  }
  .dp-clinic-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: white;
    border: 2px solid var(--pink-main);
    color: var(--pink-dark);
    padding: 10px 22px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 900;
    transition: all 0.25s;
  }
  .dp-clinic-btn:hover {
    background: var(--pink-main);
    color: white;
  }
  .dp-clinic-btn.main {
    background: linear-gradient(135deg, var(--pink-main), var(--pink-dark));
    color: white;
    border-color: transparent;
  }

  /* ===== 薬の一覧表 ===== */
  .drug-table-wrap {
    background: white;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-card);
    border: 1px solid var(--pink-100);
    margin-bottom: 24px;
  }
  .drug-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 700px;
  }
  .drug-table th {
    background: var(--navy);
    color: white;
    padding: 16px 14px;
    font-weight: 900;
    font-size: 13px;
    text-align: center;
  }
  .drug-table th.grp-inject { background: linear-gradient(135deg, var(--pink-main), var(--pink-dark)); }
  .drug-table th.grp-oral { background: linear-gradient(135deg, var(--accent-yellow-dark), #c89b1a); }
  .drug-table td {
    padding: 14px 12px;
    border-bottom: 1px solid var(--pink-100);
    text-align: center;
    font-size: 13px;
    color: var(--gray-700);
    background: white;
  }
  .drug-table .td-head {
    background: var(--pink-50);
    font-weight: 900;
    text-align: left;
    color: var(--navy);
    font-size: 13px;
  }
  .drug-table .best {
    color: var(--pink-dark);
    font-weight: 900;
  }
  .drug-table tr:nth-child(even) td:not(.td-head) { background: rgba(158,136,120,0.02); }

  /* ===== 中間CV ===== */
  .cv-section {
    background: linear-gradient(180deg, #fff4f9 0%, #fff8d9 100%);
    padding: 90px 32px;
    position: relative;
    overflow: hidden;
  }

  .cv-section:has(.cv-wave-bottom) {
    padding-bottom: 170px;
  }

  .cv-wave-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 80px;
    z-index: 2;
    pointer-events: none;
  }

  .cv-wave-bottom::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url('../images/back.png') left center / auto 100vh no-repeat fixed;
    opacity: 0.15;
    pointer-events: none;
    z-index: 1;
  }

  .cv-wave-bottom svg {
    width: 100%;
    height: 100%;
    display: block;
    position: relative;
    z-index: 0;
  }

   .cv-inner {
    max-width: 780px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    text-align: center;
  }
  .cv-label {
    display: inline-block;
    background: #d9257a;
    color: white;
    font-size: 13px;
    font-weight: 900;
    padding: 7px 20px;
    border-radius: 100px;
    letter-spacing: 0.25em;
    margin-bottom: 18px;
  }
  .cv-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 34px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 16px;
    line-height: 1.5;
  }
  .cv-title em {
    color: #d9257a;
    font-style: normal;
    position: relative;
  }
  .cv-title em::after {
    content: '';
    position: absolute;
    bottom: 3px; left: 0; right: 0;
    height: 10px;
    background: var(--accent-yellow);
    z-index: -1;
  }
  .cv-desc {
    font-size: 15px;
    color: var(--gray-600);
    line-height: 2.1;
    margin-bottom: 36px;
  }
  .cv-card {
    background: white;
    border-radius: 28px;
    padding: 44px;
    box-shadow: 0 20px 60px rgba(158,136,120,0.15);
    border: 3px solid var(--pink-main);
    text-align: left;
    position: relative;
  }
  .cv-card::before {
    content: 'RECOMMEND';
    position: absolute;
    top: -14px; left: 40px;
    background: var(--pink-main);
    color: white;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 900;
    padding: 5px 16px;
    border-radius: 4px;
    letter-spacing: 0.2em;
  }
  .cv-card-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 2px dashed var(--pink-100);
  }
  .cv-card-icon {
    width: 56px; height: 56px;
    background: #d9257a;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Serif JP', serif;
    font-size: 24px;
    font-weight: 900;
    color: white;
  }
  .cv-clinic-name {
    font-family: 'Noto Serif JP', serif;
    font-size: 22px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 2px;
  }
  .cv-clinic-tag {
    font-size: 13px;
    color: var(--pink-dark);
    font-weight: 700;
    letter-spacing: 0.08em;
  }
  .cv-merits {
    list-style: none;
    margin-bottom: 32px;
  }
  .cv-merits li {
    font-size: 14px;
    padding: 12px 0 12px 34px;
    position: relative;
    border-bottom: 1px dashed var(--pink-100);
    line-height: 1.8;
    color: var(--gray-700);
  }
  .cv-merits li:last-child { border-bottom: none; }
  .cv-merits li::before {
    content: '';
    position: absolute;
    left: 0; top: 14px;
    width: 22px; height: 22px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='11' fill='%239e8878'/%3E%3Cpath d='M6.5 11.5l3 3 6-7' stroke='white' stroke-width='2.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
    background-size: contain;
  }
  .cv-btn-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    background: #d9257a;
    color: white;
    font-size: 17px;
    font-weight: 900;
    padding: 22px;
    border-radius: 100px;
    text-align: center;
    box-shadow: 0 12px 32px rgba(158,136,120,0.4);
    letter-spacing: 0.05em;
    transition: transform 0.25s;
  }
  .cv-btn-main:hover { transform: translateY(-3px); }
  .cv-btn-arrow {
    width: 30px; height: 30px;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pink-dark);
    font-weight: 900;
  }
  .cv-btn-note {
    font-size: 12px;
    color: var(--gray-500);
    text-align: center;
    display: block;
    margin-top: 12px;
    margin-bottom: 28px;
  }
  .cv-others-label {
    font-size: 13px;
    color: var(--gray-400);
    text-align: center;
    margin-bottom: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
  }
  .cv-others {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .cv-other-btn {
    display: block;
    background: white;
    border: 2px solid var(--pink-200);
    color: var(--navy);
    text-align: center;
    padding: 14px 12px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 900;
    transition: all 0.25s;
  }
  .cv-other-btn:hover {
    border-color: var(--pink-main);
    color: var(--pink-main);
    transform: translateY(-1px);
  }

  /* ===== オンライン診療の流れ ===== */
  .flow-line {
    position: absolute;
    top: 56px;
    left: 12.5%;
    right: 12.5%;
    height: 4px;
    background: linear-gradient(90deg, var(--pink-main), var(--accent-yellow-dark));
    z-index: 0;
    border-radius: 2px;
  }
  .flow-step {
    text-align: center;
    padding: 0 16px;
    position: relative;
    z-index: 1;
  }
  .flow-circle {
    width: 116px; height: 116px;
    border-radius: 50%;
    background: white;
    border: 4px solid var(--pink-main);
    box-shadow: 0 12px 30px rgba(158,136,120,0.22);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto 18px;
  }
  .flow-step:last-child .flow-circle {
    border-color: var(--accent-yellow-dark);
    background: linear-gradient(135deg, var(--accent-yellow), #fff8d9);
    box-shadow: 0 12px 30px rgba(255,217,90,0.35);
  }
  .flow-icon { font-size: 34px; margin-bottom: 2px; }
  .flow-num {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 900;
    color: var(--pink-main);
    letter-spacing: 0.2em;
  }
  .flow-step:last-child .flow-num { color: #5a4c45; background: #DFCBB8; }
  .flow-title {
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
    font-size: 20px;
    color: var(--navy);
    margin-bottom: 8px;
  }
  /* ===== 比較表 ===== */
  .cmp-highlight {
    background: linear-gradient(135deg, var(--accent-yellow), #fff8d9);
    border-radius: 18px;
    padding: 20px 28px;
    font-size: 14px;
    color: var(--navy);
    font-weight: 900;
    margin-bottom: 28px;
    border-left: 5px solid var(--accent-yellow-dark);
    box-shadow: var(--shadow-card);
    line-height: 1.8;
  }
  .cmp-highlight .crown { color: var(--pink-main); }
  .cmp-wrap {
    background: white;
    border-radius: 20px;
    overflow: auto;
    box-shadow: var(--shadow-card);
    border: 1px solid var(--pink-100);
    margin-bottom: 22px;
  }
  .cmp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 720px;
  }
  .cmp-table th {
    padding: 22px 14px;
    font-weight: 900;
    text-align: center;
    color: white;
    vertical-align: middle;
    position: relative;
  }
  .cmp-table .th-row { background: var(--navy); }
  .cmp-table .th-1 {
    background: linear-gradient(135deg, var(--pink-main), var(--pink-dark));
    font-size: 15px;
  }
  .cmp-table .th-1::before {
    display: none;
  }
  .cmp-table .th-2 { background: #707088; }
  .cmp-table .th-3 { background: #9a7a5a; }
  .cmp-table td {
    padding: 16px 14px;
    border-bottom: 1px solid var(--pink-100);
    text-align: center;
    font-size: 13px;
    color: var(--gray-700);
    vertical-align: middle;
  }
  .cmp-table .row-head {
    background: var(--pink-50);
    font-weight: 900;
    color: var(--navy);
    text-align: left;
    font-size: 13px;
    width: 18%;
  }
  .cmp-table .col-1 {
    background: rgba(158,136,120,0.035);
  }
  .cmp-table .best {
    color: var(--pink-dark);
    font-weight: 900;
  }
  .cmp-btn {
    display: inline-block;
    background: white;
    border: 2px solid var(--pink-main);
    color: var(--pink-main);
    padding: 8px 18px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 900;
    transition: all 0.25s;
  }
  .cmp-btn.main {
    background: linear-gradient(135deg, var(--pink-main), var(--pink-dark));
    color: white;
    border-color: transparent;
  }
  .cmp-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(158,136,120,0.3); }
  .table-note {
    font-size: 12px;
    color: var(--gray-500);
    line-height: 1.7;
    display: block;
    margin-top: 3px;
    font-weight: 400;
  }

  /* ===== クリニックカード ===== */
  .clinic-card {
    background: white;
    border-radius: 32px;
    padding: 52px;
    margin-bottom: 36px;
    box-shadow: var(--shadow-card);
    border: 1px solid var(--pink-100);
    position: relative;
    overflow: hidden;
  }
  .clinic-card.rank1 {
    --clinic-main: #d9257a;
    --clinic-dark: #8b3a4a;
    border: 3px solid #d9257a;
    background: linear-gradient(180deg, white 0%, #fff8fc 100%);
    box-shadow: 0 20px 60px rgba(158,136,120,0.15);
  }
  .clinic-card.rank1::after {
    content: '';
    position: absolute;
    top: 0; right: 0;
    width: 200px; height: 200px;
    background: radial-gradient(circle, var(--pink-100), transparent 70%);
    pointer-events: none;
  }
  .clinic-card .no1-ribbon {
    position: absolute;
    top: 28px; right: 28px;
    background: #d9257a;
    color: white;
    padding: 10px 26px;
    border-radius: 100px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
    font-size: 14px;
    letter-spacing: 0.1em;
    box-shadow: 0 8px 20px rgba(158,136,120,0.4);
    z-index: 2;
  }
  .clinic-head {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-bottom: 32px;
    position: relative;
    z-index: 1;
  }
  .clinic-name {
    font-family: 'Noto Serif JP', serif;
    font-size: 26px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 4px;
    line-height: 1.3;
  }
  .clinic-position {
    font-size: 13px;
    color: var(--pink-dark);
    font-weight: 900;
    letter-spacing: 0.02em;
  }
  .clinic-position small {
    display: block;
    font-size: 12px;
    color: var(--gray-400);
    font-weight: 400;
    margin-top: 4px;
    letter-spacing: 0;
    line-height: 1.5;
  }

  .score-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    background: linear-gradient(135deg, var(--pink-50), #fff8d9);
    border-radius: 20px;
    padding: 24px;
    margin-bottom: 32px;
  }
  .score-item { text-align: center; }
  .score-label {
    display: block;
    font-size: 13px;
    color: var(--gray-500);
    margin-bottom: 4px;
    font-weight: 900;
    letter-spacing: 0.05em;
  }
  .score-stars {
    color: var(--accent-yellow-dark);
    font-size: 13px;
    margin-bottom: 2px;
    letter-spacing: 1px;
  }
  .score-num {
    font-family: 'Noto Serif JP', serif;
    font-size: 20px;
    font-weight: 900;
    color: var(--pink-dark);
    line-height: 1;
  }

  .spec-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 32px;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--pink-100);
  }
  .spec-table td {
    padding: 14px 18px;
    font-size: 13px;
    border-bottom: 1px solid var(--pink-100);
    vertical-align: top;
    color: var(--gray-700);
    line-height: 1.7;
  }
  .spec-table .sh {
    background: var(--pink-50);
    font-weight: 900;
    color: var(--navy);
    width: 26%;
    font-size: 13px;
  }
  .spec-table .best { color: var(--pink-dark); font-weight: 900; }
  .spec-table tr:last-child td { border-bottom: none; }

  .points-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 19px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 20px;
    padding-left: 16px;
    border-left: 5px solid var(--pink-main);
  }
  .point-item {
    display: flex;
    gap: 18px;
    margin-bottom: 20px;
    padding: 20px;
    background: var(--pink-50);
    border-radius: 16px;
    border: 1px solid var(--pink-100);
  }
  .point-num {
    flex-shrink: 0;
    width: 42px; height: 42px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--pink-main), var(--pink-dark));
    color: white;
    font-family: 'Noto Serif JP', serif;
    font-size: 18px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .point-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 15px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 6px;
    line-height: 1.5;
  }
  .point-desc {
    font-size: 13px;
    color: var(--gray-600);
    line-height: 1.85;
  }

  .osusume-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 24px;
  }
  .osusume-card {
    background: linear-gradient(135deg, var(--pink-50), #fff8d9);
    border-radius: 16px;
    padding: 22px;
    border: 1px solid var(--pink-100);
  }
  .osusume-icon {
    width: 114px; height: 114px;
    background: var(--clinic-soft);
    border-radius: 50%;
    display: block;
    margin-bottom: 12px;
    overflow: hidden;
    position: relative;
  }
  .osusume-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 14px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 6px;
    line-height: 1.5;
  }
  .osusume-desc {
    font-size: 13px;
    color: var(--gray-600);
    line-height: 1.8;
  }

  .clinic-cta {
    text-align: center;
    padding-top: 12px;
  }
  .clinic-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: linear-gradient(135deg, var(--pink-main), var(--pink-dark));
    color: white;
    font-size: 22px;
    font-weight: 900;
    padding: 20px 56px;
    border-radius: 100px;
    box-shadow: 0 12px 30px rgba(158,136,120,0.4);
    transition: transform 0.25s;
    letter-spacing: 0.04em;
  }
  .clinic-cta-btn:hover { transform: translateY(-3px); }
  .clinic-cta-note {
    display: block;
    margin-top: 10px;
    font-size: 12px;
    color: var(--gray-500);
  }
  .clinic-cta-arrow {
    width: 28px; height: 28px;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pink-dark);
    font-weight: 900;
  }

  /* ===== FAQ ===== */
  .faq-item {
    background: white;
    border-radius: 18px;
    margin-bottom: 14px;
    border: 1px solid var(--pink-100);
    overflow: hidden;
    transition: box-shadow 0.25s;
  }
  .faq-item:hover { box-shadow: var(--shadow-card); }
  .faq-q {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 22px 28px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
    color: var(--navy);
    font-size: 20px;
    line-height: 1.6;
    cursor: pointer;
    user-select: none;
  }
  .faq-q-badge {
    flex-shrink: 0;
    width: 32px; height: 32px;
    background: linear-gradient(135deg, var(--pink-main), var(--pink-dark));
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
    font-size: 15px;
  }
  .faq-a {
    padding: 0 28px 22px 74px;
    font-size: 15px;
    color: var(--gray-700);
    line-height: 2;
  }

  /* ===== FOOTER ===== */
  footer {
    background: var(--navy-dark);
    padding: 22px 32px 22px;
    text-align: center;
  }
  .footer-inner { max-width: 900px; margin: 0 auto; }
  .footer-title {
    font-family: 'Noto Serif JP', serif;
    color: white;
    font-size: 18px;
    font-weight: 900;
    margin-bottom: 16px;
    letter-spacing: 0.05em;
  }
  .footer-disclaimer {
    color: rgba(255,255,255,0.55);
    font-size: 12px;
    line-height: 2;
  }
  .footer-copy {
    color: rgba(255,255,255,0.3);
    font-size: 12px;
    letter-spacing: 0.1em;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.08);
  }

  /* ===== レスポンシブ ===== */
@keyframes float {
    0%,100% { transform: translateY(0) rotate(0); }
    50% { transform: translateY(-10px) rotate(-1deg); }
  }


  /* ===== FV: パターン4（3クリニック並列ショーケース） ===== */
  .fv-v4 {
    background: #ffffff;
    padding: 100px 40px 160px;
    position: relative;
    overflow: hidden;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 60px), 50% 100%, 0 calc(100% - 60px));
  }
  .fv-v4::before {
    content: '';
    position: absolute;
    top: -150px; right: -150px;
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(158,136,120,0.1), transparent 70%);
    pointer-events: none;
  }
  .fv-v4::after {
    content: '';
    position: absolute;
    bottom: -150px; left: -150px;
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(255,217,90,0.12), transparent 70%);
    pointer-events: none;
  }
  .fv-v4-top-line {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 5px;
    background: linear-gradient(90deg, var(--pink-main) 0%, var(--accent-yellow-dark) 50%, var(--pink-main) 100%);
    background-size: 200% 100%;
    animation: shimmer 3s linear infinite;
  }
  @keyframes shimmer {
    0% { background-position: 0% 0%; }
    100% { background-position: 200% 0%; }
  }
  .fv-v4-inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 1;
  }
  .fv-v4-eyebrow {
    font-family: 'Playfair Display', 'Noto Serif JP', serif;
    font-style: italic;
    font-size: 19px;
    color: var(--pink-main);
    margin-bottom: 18px;
    letter-spacing: 0.04em;
  }
  .fv-v4-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 52px;
    font-weight: 900;
    line-height: 1.3;
    color: var(--navy);
    margin-bottom: 20px;
    letter-spacing: 0.02em;
  }
  .fv-v4-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 50px;
  }
  .fv-v4-badge {
    background: var(--pink-50);
    color: var(--pink-dark);
    font-size: 13px;
    font-weight: 900;
    padding: 7px 16px;
    border-radius: 100px;
    border: 1px solid var(--pink-100);
  }


  .fv-v4-cta-wrap {
    text-align: center;
    margin-bottom: 40px;
  }
  .fv-v4-main-cta {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    background: var(--navy);
    color: white;
    padding: 22px 50px;
    border-radius: 100px;
    font-size: 16px;
    font-weight: 900;
    box-shadow: 0 14px 36px rgba(42,42,74,0.25);
    letter-spacing: 0.04em;
    transition: transform 0.25s, box-shadow 0.25s;
    position: relative;
    overflow: hidden;
  }
  .fv-v4-main-cta::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
    transition: left 0.5s;
  }
  .fv-v4-main-cta:hover::before { left: 100%; }
  .fv-v4-main-cta:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(42,42,74,0.35);
  }
  .fv-v4-main-cta-arrow {
    width: 30px; height: 30px;
    background: var(--pink-main);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
  }
  .fv-v4-cta-note {
    display: block;
    margin-top: 12px;
    font-size: 12px;
    color: var(--gray-500);
  }
  .fv-v4-rank-note {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px 28px;
    background: var(--pink-50);
    border: 1px solid var(--pink-100);
    border-radius: 14px;
    font-size: 12px;
    color: var(--gray-600);
    line-height: 1.9;
    text-align: left;
  }
  .fv-v4-rank-note strong {
    color: var(--pink-dark);
    font-weight: 900;
  }


  /* ===== FVランキングカード ===== */
  .fv-v4-logos {
    display: grid;
    grid-template-columns: 1fr 1.35fr 1fr;
    gap: 16px;
    max-width: 1000px;
    margin: 0 auto 24px;
    align-items: stretch;
    padding-top: 10px;
  }
  .fv-v4-card {
    background: white;
    border: 2px solid var(--gray-200);
    border-radius: 22px;
    padding: 15px 18px 15px;
    position: relative;
    transition: transform 0.3s, box-shadow 0.3s;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
  }
  .fv-v4-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.08);
  }
  
  /* 2位・3位（控えめトーン） */
  .fv-v4-card.r2, .fv-v4-card.r3 {
    opacity: 0.92;
    background: #fafafa;
  }
  .fv-v4-card.r2 .fv-v4-card-price,
  .fv-v4-card.r3 .fv-v4-card-price { color: var(--gray-600); }
  .fv-v4-card.r2 .fv-v4-card-cta,
  .fv-v4-card.r3 .fv-v4-card-cta {
    color: var(--gray-500);
    background: white;
    border: 1px solid var(--gray-200);
  }
  .fv-v4-card.r2:hover,
  .fv-v4-card.r3:hover { opacity: 1; }
  
  /* 1位（DMM）: 圧倒的主役 */
  .fv-v4-card.r1 {
    background:
      linear-gradient(180deg, #ffeef5 0%, white 30%, #fff8d9 100%);
    border: 3px solid var(--pink-main);
    box-shadow:
      0 30px 70px rgba(158,136,120,0.3),
      0 0 0 8px rgba(158,136,120,0.08);
    transform: scale(1.08);
    z-index: 3;
    padding: 32px 22px 28px;
  }
  .fv-v4-card.r1:hover {
    transform: scale(1.08) translateY(-6px);
    box-shadow:
      0 40px 90px rgba(158,136,120,0.4),
      0 0 0 10px rgba(158,136,120,0.1);
  }

  /* r1: エンブレム＋コンテンツの横並びレイアウト */
  .fv-v4-r1-body {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
    width: 100%;
    margin-top: 8px;
  }
  .fv-v4-r1-emblem {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
  }
  .fv-v4-rank-emblem-img {
    width: 150px;
    height: auto;
    display: block;
  }
  .fv-v4-r1-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
  }

  /* No.1リボン画像（DMMのみ） */
  .fv-no1-ribbon-img {
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    width: 220px;
    height: auto;
    z-index: 4;
    pointer-events: none;
  }

  /* ランクバッジ */
  .fv-v4-card-rank {
    font-family: 'Playfair Display', serif;
    font-size: 13px;
    font-weight: 900;
    padding: 4px 16px;
    border-radius: 100px;
    letter-spacing: 0.2em;
    color: white;
    white-space: nowrap;
    margin-bottom: 12px;
  }
  .fv-v4-card.r2 .fv-v4-card-rank { background: #8a8a9c; }
  .fv-v4-card.r3 .fv-v4-card-rank { background: #a89075; }
  
  .fv-v4-card-medal {
    font-size: 40px;
    margin-bottom: 10px;
    line-height: 1;
  }
  .fv-v4-card-name {
    font-family: 'Noto Serif JP', serif;
    font-size: 15px;
    font-weight: 900;
    margin-bottom: 8px;
    color: var(--navy);
    line-height: 1.4;
  }
  .fv-v4-card.r1 .fv-v4-card-name {
    font-size: 21px;
    color: var(--navy);
  }
  

  /* 価格 */
  .fv-v4-card-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    line-height: 1;
  }
  .fv-v4-price-num {
    font-family: 'Playfair Display', serif;
    font-size: 32px;
    font-weight: 900;
    color: var(--gray-600);
    letter-spacing: -0.02em;
  }
  .fv-v4-price-tilde {
    font-size: 18px;
    color: var(--gray-500);
    margin-left: 2px;
    font-weight: 700;
  }
  .fv-v4-card.r1 .fv-v4-price-num {
    font-size: 54px;
    background: #d9257a;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 2px 8px rgba(158,136,120,0.2));
  }
  .fv-v4-card.r1 .fv-v4-price-tilde {
    font-size: 22px;
    color: var(--pink-dark);
  }

  .fv-v4-card-unit {
    font-size: 13px;
    color: var(--gray-500);
    margin: 4px 0 14px;
    font-weight: 500;
    letter-spacing: 0.02em;
  }
  .fv-v4-card-unit sup {
    font-size: 12px;
    color: var(--gray-400);
    margin-left: 1px;
  }
  .fv-v4-card.r1 .fv-v4-card-unit {
    color: var(--navy);
    font-weight: 700;
    margin-bottom: 16px;
  }
  
  .fv-v4-card-tags {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 14px;
  }
  .fv-v4-tag {
    background: var(--gray-100);
    color: var(--gray-600);
    font-size: 13px;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 100px;
  }
  .fv-v4-card.r1 .fv-v4-tag {
    background: white;
    color: var(--pink-dark);
    font-weight: 900;
    border: 1px solid var(--pink-200);
    padding: 3px 10px;
    box-shadow: 0 2px 6px rgba(158,136,120,0.1);
  }

  /* DMMだけの特徴リスト */
  
  /* CTA */
  .fv-v4-card-cta {
    margin-top: auto;
    padding: 12px;
    font-size: 13px;
    font-weight: 900;
    border-radius: 100px;
    letter-spacing: 0.04em;
    width: 100%;
    box-sizing: border-box;
    transition: all 0.25s;
  }
  .fv-v4-card.r1 .fv-v4-card-cta {
    color: white;
    background: #d9257a;
    padding: 16px;
    font-size: 15px;
    box-shadow: 0 10px 24px rgba(158,136,120,0.4);
    animation: btnPulse 2s ease-in-out infinite;
  }
  @keyframes btnPulse {
    0%, 100% { box-shadow: 0 10px 24px rgba(158,136,120,0.4); }
    50% { box-shadow: 0 10px 32px rgba(158,136,120,0.65); }
  }
  .fv-v4-card.r1:hover .fv-v4-card-cta {
    box-shadow: 0 14px 30px rgba(158,136,120,0.55);
  }
  .fv-v4-card.r2:hover .fv-v4-card-cta,
  .fv-v4-card.r3:hover .fv-v4-card-cta {
    border-color: var(--pink-main);
    color: var(--pink-main);
  }

  /* 共通注釈（折りたたみ） */
  .fv-v4-common-notes {
    max-width: 900px;
    margin: 0 auto 30px;
    text-align: center;
  }
  .fv-v4-common-notes details {
    background: transparent;
    border-radius: 12px;
  }
  .fv-v4-common-notes summary {
    cursor: pointer;
    font-size: 12px;
    color: var(--gray-500);
    text-decoration: underline;
    list-style: none;
    font-weight: 500;
    padding: 4px 8px;
    display: inline-block;
  }
  .fv-v4-common-notes summary::-webkit-details-marker { display: none; }
  .fv-v4-common-notes summary::before {
    content: '▶ ';
    display: inline-block;
    margin-right: 4px;
    transition: transform 0.2s;
    font-size: 12px;
  }
  .fv-v4-common-notes details[open] summary::before {
    transform: rotate(90deg);
  }
  .fv-v4-notes-body {
    background: var(--pink-50);
    border: 1px solid var(--pink-100);
    border-radius: 12px;
    padding: 16px 22px;
    margin-top: 10px;
    text-align: left;
  }
  .fv-v4-notes-body p {
    font-size: 12px;
    color: var(--gray-600);
    line-height: 1.9;
    margin-bottom: 6px;
  }
  .fv-v4-notes-body p:last-child { margin-bottom: 0; }
  .fv-v4-notes-body strong { color: var(--pink-dark); font-weight: 900; margin-right: 4px; }


  /* ========= スマホファースト最適化 ========= */
  /* 常時適用されるスマホサイズの基本 */
  @media (max-width: 768px) {
    body { font-size: 14px; }
    
    /* PRバッジ：小さく */
    .pr-badge {
      font-size: 9px;
      padding: 5px 10px;
      gap: 6px;
    }
    .pr-badge .pr-info {
      font-size: 8px;
    }
    
    /* HEADER */
    header {
      padding: 12px 16px;
    }
    .site-name { font-size: 14px; }
    
    /* ========= FV ========= */
    .fv-v4 {
      padding: 50px 16px 36px;
    }
    .fv-v4-top-line { height: 3px; }
    .fv-v4-eyebrow {
      font-size: 13px;
      margin-bottom: 10px;
    }
    .fv-v4-title {
      font-size: 28px;
      line-height: 1.35;
      margin-bottom: 16px;
      letter-spacing: 0;
    }
    .fv-v4-badges {
      gap: 6px;
      margin-bottom: 32px;
    }
    .fv-v4-badge {
      font-size: 11px;
      padding: 5px 12px;
    }
    
    /* カードを縦積み（1位が上） */
    .fv-v4-logos {
      grid-template-columns: 1fr;
      gap: 20px;
      padding-top: 26px;
      max-width: 100%;
    }
    
    /* 1位（DMM）：スマホでは一番上・拡大維持 */
    .fv-v4-card.r1 {
      order: -1;
      transform: none !important;
      padding: 26px 20px 22px;
      box-shadow:
        0 20px 40px rgba(158,136,120,0.25),
        0 0 0 6px rgba(158,136,120,0.08);
    }
    .fv-v4-card.r1:hover {
      transform: translateY(-3px) !important;
    }
    .fv-no1-ribbon-img {
      width: 180px;
      top: -33px;
    }
    .fv-v4-card.r1 {
      width: 100%;
    }
    .fv-v4-card.r1 .fv-v4-card-name {
      font-size: 18px;
    }
    .fv-v4-card.r1 .fv-v4-card-tags {
      width: calc(100% + 126px);
      margin-left: -126px;
      justify-content: flex-end;
    }
    .fv-v4-card.r1 .fv-v4-price-num {
      font-size: 42px;
    }
    .fv-v4-card.r1 .fv-v4-price-tilde {
      font-size: 18px;
    }
    .fv-v4-card.r1 .fv-v4-card-cta {
      font-size: 14px;
      padding: 14px;
    }
    .fv-v4-r1-body {
      gap: 10px;
      margin-top: 6px;
    }
    .fv-v4-rank-emblem-img {
      width: 116px;
    }

    /* 2位・3位：スマホFVでは非表示（別セクションで表示） */
    .fv-v4-card.r2,
    .fv-v4-card.r3 {
      display: none;
    }
    /* 1位のみ表示、中央配置 */
    .fv-v4-logos {
      max-width: 440px;
    }
    
    /* 共通注釈 */
    .fv-v4-common-notes {
      margin: 0 auto 20px;
    }
    .fv-v4-common-notes summary {
      font-size: 13px;
    }
    .fv-v4-notes-body {
      padding: 12px 16px;
    }
    .fv-v4-notes-body p {
      font-size: 9px;
      line-height: 1.8;
    }
    
    .fv-v4-rank-note {
      padding: 14px 16px;
      font-size: 12px;
      line-height: 1.8;
      border-radius: 10px;
    }
    
    /* ========= タイトルsparkle ========= */
    .title-sparkle { display: none; }
    .fv-v4 + .section.sec-pink .section-title {
      display: block;
      text-align: center;
    }

    /* ========= SECTION共通 ========= */
    section.section { padding: 50px 16px; }
    section.section:has(+ .cv-section) {
      clip-path: polygon(0 0, 100% 0, 100% calc(100% - 40px), 50% 100%, 0 calc(100% - 40px));
      padding-bottom: 90px;
    }
    section.section:has(+ .cv-section)::after {
      height: 42px;
    }
    section.section:has(+ .cv-section) + .cv-section {
      margin-top: -42px;
      padding-top: calc(70px + 42px);
    }
    .section-eyebrow {
      font-size: 12px;
      margin-bottom: 8px;
      letter-spacing: 0.25em;
    }
    .section-title {
      font-size: 24px;
      line-height: 1.45;
      margin-bottom: 12px;
    }
    .section-title .hl::after { height: 8px; }
    .section-divider {
      width: 40px;
      height: 3px;
      margin: 12px auto 22px;
    }
    .section-lead {
      font-size: 16px;
      line-height: 1.65;
      margin-bottom: 32px;
      padding: 0 4px;
    }
    
    /* ========= GLP-1とは ========= */
    .what-card {
      padding: 24px 18px;
      border-radius: 18px;
      margin-bottom: 20px;
    }
    .what-desc {
      font-size: 12px;
      line-height: 1.85;
      padding: 16px 18px;
    }
    .what-desc li {
      padding-left: 18px;
    }
    .what-desc li::before {
      width: 6px;
      height: 6px;
      top: 10px;
    }
    .what-points {
      grid-template-columns: repeat(2, 1fr);
      gap: 16px 8px;
      padding: 0;
      background: none;
    }
    .what-points li {
      font-size: 13px;
      padding-left: 0;
      gap: 10px;
    }
    .what-points li::before {
      content: none;
    }
    .what-point-icon {
      width: 100px;
      height: auto;
    }
    .what-point-icon img {
      width: 100%;
      height: auto;
    }
    
    .comparison-wrap {
      padding: 22px 18px;
      border-radius: 18px;
      margin-bottom: 20px;
    }
    .comparison-title { font-size: 15px; margin-bottom: 20px; }
    .comparison-title img { max-width: 80%; position: relative; right: 2px; }
    .comparison-grid {
      grid-template-columns: 1fr;
      gap: 24px;
    }
    .comparison-grid::before {
      position: relative;
      transform: none;
      left: auto; top: auto;
      margin: 0 auto;
      width: 40px; height: 40px;
      font-size: 12px;
    }
    .comp-card {
      padding: 20px 16px;
      border-radius: 14px;
    }
    .comp-card-title {
      font-size: 18px;
      margin-bottom: 12px;
    }
    .comp-card.inject .comp-card-title::after,
    .comp-card.oral .comp-card-title::after {
      font-size: 16px;
      padding: 0 24px;
      background-size: auto 18px, auto 18px;
    }
    .comp-drugs {
      padding: 8px 10px 8px 80px;
      background-size: auto 36px;
      min-height: 36px;
    }
    .comp-specs li {
      font-size: 12px;
      padding: 6px 0 6px 22px;
    }
    .comp-drug-tag { font-size: 10px; padding: 4px 10px; }
    
    .caution-card {
      padding: 20px 18px;
      border-radius: 16px;
    }
    .caution-title { font-size: 14px; gap: 8px; }
    .caution-title-icon {
      width: 26px; height: 26px;
      font-size: 15px;
    }
    .caution-list li {
      font-size: 12px;
      padding: 5px 0 5px 24px;
      line-height: 1.8;
    }
    
    /* ========= 4つの特徴 ========= */
    .feature-grid {
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    .feature-card {
      padding: 22px 12px 18px;
      border-radius: 16px;
    }
    .feature-num {
      font-size: 32px;
      top: 8px;
      right: 2px;
    }
    .feature-icon {
      width: 90px;
      height: auto;
      margin-bottom: 14px;
    }
    .feature-title {
      font-size: 18px;
      margin-bottom: 6px;
    }
    .feature-desc { font-size: 11px; line-height: 1.7; }
    .disclaimer-text {
      font-size: 13px;
      margin-top: 20px;
      line-height: 1.9;
      padding: 0 4px;
    }
    
    /* ========= 薬選びタブ ========= */
    .drug-tabs {
      padding: 6px;
      border-radius: 14px;
      flex-wrap: wrap;
      gap: 4px;
      margin-bottom: 20px;
    }
    .dtab {
      flex: 1 1 calc(50% - 4px);
      font-size: 11px;
      padding: 10px 6px;
    }
    .dtab small {
      font-size: 9px;
      margin-top: 1px;
    }
    
    .drug-panel-card {
      padding: 24px 18px;
      border-radius: 20px;
    }
    .dp-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
      padding-bottom: 20px;
      margin-bottom: 20px;
    }
    .dp-icon {
      width: 60px; height: 60px;
      font-size: 30px;
      border-radius: 16px;
    }
    .dp-name {
      font-size: 22px;
    }
    .dp-type {
      font-size: 10px;
    }
    .dp-body {
      grid-template-columns: 1fr;
      gap: 16px;
      margin-bottom: 20px;
    }
    .dp-col {
      padding: 18px 16px;
      border-radius: 12px;
    }
    .dp-col-title {
      font-size: 13px;
      margin-bottom: 10px;
    }
    .dp-col-icon {
      width: 24px; height: 24px;
      font-size: 12px;
    }
    .dp-col ul li {
      font-size: 12px;
      padding: 5px 0 5px 18px;
    }
    .dp-clinic-row {
      padding-top: 20px;
      gap: 8px;
    }
    .dp-clinic-label {
      font-size: 11px;
      width: 100%;
      margin-bottom: 4px;
    }
    .dp-clinic-btn {
      font-size: 11px;
      padding: 8px 14px;
    }
    
    /* ========= 中間CV・最終CTA ========= */
    .cv-section {
      padding: 50px 16px;
    }
    .cv-label {
      font-size: 10px;
      padding: 5px 16px;
      letter-spacing: 0.2em;
      margin-bottom: 14px;
    }
    .cv-title {
      font-size: 24px;
      line-height: 1.45;
      margin-bottom: 12px;
    }
    .cv-desc {
      font-size: 13px;
      line-height: 1.95;
      margin-bottom: 26px;
      padding: 0 4px;
    }
    .cv-card {
      padding: 28px 18px;
      border-radius: 20px;
    }
    .cv-card::before {
      top: -12px;
      left: 20px;
      font-size: 10px;
      padding: 4px 12px;
    }
    .cv-card-header {
      gap: 12px;
      margin-bottom: 18px;
      padding-bottom: 18px;
    }
    .cv-card-icon {
      width: 44px; height: 44px;
      font-size: 18px;
    }
    .cv-clinic-name {
      font-size: 17px;
    }
    .cv-clinic-tag {
      font-size: 10px;
    }
    .cv-merits li {
      font-size: 12px;
      padding: 9px 0 9px 28px;
      line-height: 1.7;
    }
    .cv-merits li::before {
      width: 18px; height: 18px;
      top: 11px;
    }
    .cv-btn-main {
      font-size: 14px;
      padding: 16px;
      gap: 8px;
    }
    .cv-btn-arrow {
      width: 24px; height: 24px;
    }
    .cv-btn-note {
      font-size: 10px;
      margin-top: 8px;
      margin-bottom: 20px;
    }
    .cv-others-label {
      font-size: 10px;
      margin-bottom: 8px;
    }
    .cv-others {
      grid-template-columns: 1fr;
      gap: 8px;
    }
    .cv-other-btn {
      font-size: 11px;
      padding: 12px 10px;
    }
    
    /* ========= 診療の流れ ========= */
    .flow-line { display: none; }
    .flow-step { padding: 0 6px; }
    .flow-circle {
      width: 80px; height: 80px;
      border-width: 3px;
      margin-bottom: 12px;
    }
    .flow-icon {
      font-size: 26px;
    }
    .flow-num {
      font-size: 9px;
    }
    .flow-title {
      font-size: 13px;
      margin-bottom: 15px;
    }
   
    /* ========= 比較表 ========= */
    .cmp-highlight {
      padding: 16px 18px;
      font-size: 12px;
      line-height: 1.75;
      margin-bottom: 22px;
      border-radius: 14px;
    }
    .cmp-wrap {
      border-radius: 16px;
    }
    .cmp-table {
      font-size: 11px;
      min-width: 520px;
    }
    .cmp-table th {
      padding: 14px 8px;
      font-size: 11px;
    }
    .cmp-table .th-1 { font-size: 12px; }
    .cmp-table .th-1::before {
      display: none;
    }
    .cmp-table td {
      padding: 12px 8px;
      font-size: 11px;
    }
    .cmp-table .row-head {
      font-size: 10px;
      padding: 12px 8px;
    }
    .cmp-btn {
      font-size: 10px;
      padding: 6px 12px;
    }
    .table-note {
      font-size: 9px;
    }
    
    /* ========= クリニック詳細 ========= */
    .clinic-card {
      padding: 28px 18px;
      border-radius: 22px;
      margin-bottom: 22px;
    }
    .clinic-card.rank1 { padding: 0px 18px 28px; }
    .no1-ribbon {
      top: 16px;
      right: 16px;
      padding: 7px 18px;
      font-size: 12px;
    }
    .clinic-head {
      gap: 12px;
      margin-bottom: 20px;
      flex-wrap: wrap;
    }
    .clinic-name {
      font-size: 18px;
    }
    .clinic-position {
      font-size: 11px;
    }
    .clinic-position small {
      font-size: 9px;
      line-height: 1.5;
    }
    
    .score-row {
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      padding: 16px;
      border-radius: 14px;
      margin-bottom: 20px;
    }
    .score-label { font-size: 10px; }
    .score-stars { font-size: 12px; }
    .score-num { font-size: 17px; }
    
    .spec-table td {
      padding: 11px 14px;
      font-size: 12px;
    }
    .spec-table .sh {
      font-size: 11px;
    }
    
    .points-title {
      font-size: 16px;
      margin-bottom: 14px;
      padding-left: 12px;
    }
    .point-item {
      gap: 12px;
      margin-bottom: 14px;
      padding: 16px;
      border-radius: 12px;
    }
    .point-num {
      width: 34px; height: 34px;
      font-size: 14px;
    }
    .point-title {
      font-size: 13px;
      margin-bottom: 4px;
    }
    .point-desc {
      font-size: 11px;
      line-height: 1.8;
    }
    
    .osusume-grid {
      grid-template-columns: 1fr;
      gap: 10px;
    }
    .osusume-card {
      padding: 18px;
      border-radius: 14px;
    }
    .osusume-icon {
      width: 99px; height: 99px;
      border-radius: 50%;
    }
    .osusume-title {
      font-size: 13px;
    }
    .osusume-desc {
      font-size: 11px;
      line-height: 1.75;
    }
    .osusume-desc small {
      font-size: 9px;
    }
    
    .clinic-cta-btn {
      font-size: 14px;
      padding: 16px 36px;
      gap: 8px;
    }
    .clinic-cta-arrow {
      width: 22px; height: 22px;
    }
    .clinic-cta-note {
      font-size: 10px;
    }
    
    /* ========= FAQ ========= */
    .faq-item {
      border-radius: 14px;
      margin-bottom: 10px;
    }
    .faq-q {
      padding: 16px 18px;
      font-size: 16px;
      gap: 10px;
    }
    .faq-q-badge {
      width: 24px; height: 24px;
      font-size: 12px;
    }
    .faq-a {
      padding: 0 18px 16px 52px;
      font-size: 13px;
      line-height: 1.9;
    }
    .faq-a small {
      font-size: 10px;
    }
    
    /* ========= FOOTER ========= */
    footer {
      padding: 32px 16px 24px;
    }
    .footer-title {
      font-size: 15px;
      margin-bottom: 12px;
    }
    .footer-disclaimer {
      font-size: 10px;
      line-height: 1.85;
    }
    .footer-copy {
      font-size: 9px;
      padding-top: 16px;
    }
  }
  
  /* さらに小さい画面（〜375px）の調整 */
  @media (max-width: 380px) {
    .fv-v4-title { font-size: 24px; }
    .section-title { font-size: 20px; }
    .cv-title { font-size: 21px; }
    .fv-v4-card.r1 .fv-v4-price-num { font-size: 36px; }
    .fv-v4-card.r2 .fv-v4-price-num,
    .fv-v4-card.r3 .fv-v4-price-num { font-size: 20px; }
    .feature-grid { grid-template-columns: 1fr; }
  }


  /* ===== 比較表の注釈ブロック ===== */
  .cmp-note-sup {
    font-size: 10px;
    font-weight: 900;
    color: var(--pink-main);
    margin-left: 3px;
    vertical-align: super;
    line-height: 0;
  }
  .cmp-notes-box {
    margin-top: 14px;
    background: white;
    border: 1px solid var(--pink-100);
    border-radius: 14px;
    padding: 20px 24px;
  }
  .cmp-notes-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 13px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px dashed var(--pink-100);
    letter-spacing: 0.08em;
  }
  .cmp-notes-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .cmp-notes-list li {
    font-size: 12px;
    line-height: 1.85;
    color: var(--gray-600);
    padding: 6px 0 6px 46px;
    position: relative;
  }
  .cmp-notes-num {
    position: absolute;
    left: 0;
    top: 6px;
    display: inline-block;
    background: var(--pink-main);
    color: white;
    font-size: 9px;
    font-weight: 900;
    padding: 2px 8px;
    border-radius: 4px;
    min-width: 32px;
    text-align: center;
  }
  .cmp-notes-gen {
    position: absolute;
    left: 0;
    top: 6px;
    display: inline-block;
    color: var(--gray-500);
    font-size: 13px;
    font-weight: 900;
    min-width: 32px;
    text-align: center;
  }
  @media (max-width: 768px) {
    .cmp-notes-box {
      padding: 14px 16px;
      border-radius: 12px;
    }
    .cmp-notes-title {
      font-size: 13px;
      margin-bottom: 8px;
    }
    .cmp-notes-list li {
      font-size: 10px;
      padding-left: 42px;
      line-height: 1.8;
    }
    .cmp-notes-num {
      font-size: 10px;
      padding: 2px 6px;
      min-width: 28px;
    }
  }


  /* クリニック詳細カード内の注釈ボックス */
  .cf-note-sup {
    font-size: 10px;
    font-weight: 900;
    color: var(--pink-main);
    margin-left: 3px;
    vertical-align: super;
    line-height: 0;
  }
  .cf-notes-box {
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 16px 20px;
    margin: 8px 0 24px;
  }
  .cf-notes-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 11px;
    font-weight: 900;
    color: var(--navy);
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px dashed var(--gray-300);
    letter-spacing: 0.08em;
  }
  .cf-notes-list { list-style: none; margin: 0; padding: 0; }
  .cf-notes-list li {
    font-size: 10px;
    line-height: 1.85;
    color: var(--gray-600);
    padding: 4px 0 4px 38px;
    position: relative;
  }
  .cf-notes-num {
    position: absolute;
    left: 0;
    top: 5px;
    display: inline-block;
    background: var(--gray-500);
    color: white;
    font-size: 8px;
    font-weight: 900;
    padding: 2px 6px;
    border-radius: 3px;
    min-width: 28px;
    text-align: center;
  }
  @media (max-width: 768px) {
    .cf-notes-box { padding: 12px 14px; }
    .cf-notes-title { font-size: 10px; }
    .cf-notes-list li { font-size: 9px; padding-left: 32px; }
  }


  /* スマホ専用：他のクリニックを見るリンク */
  .fv-v4-others-mobile {
    display: none;
    text-align: center;
    margin: 24px auto 16px;
  }
  @media (max-width: 768px) {
    .fv-v4-others-mobile {
      display: block;
    }
  }
  .fv-v4-others-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: white;
    border: 1.5px solid var(--gray-200);
    color: var(--gray-600);
    padding: 12px 22px;
    border-radius: 100px;
    font-size: 15px;
    font-weight: 900;
    transition: all 0.25s;
  }
  .fv-v4-others-link:hover {
    border-color: var(--pink-main);
    color: var(--pink-main);
  }
  .fv-v4-others-arrow {
    font-size: 14px;
    color: var(--pink-main);
    animation: bounce 2s infinite;
  }
  @keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
  }


  /* ===== LP仕上げ調整 ===== */
  body {
    overflow-x: hidden;
  }

  .fv-v4 {
    background:
      linear-gradient(90deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.9) 56%, rgba(255,244,249,0.84) 100%),
      radial-gradient(circle at 80% 18%, rgba(158,136,120,0.16), transparent 32%),
      linear-gradient(180deg, #fff 0%, #fff7fb 100%);
  }

  .fv-v4-title {
    color: var(--pink-dark);
    text-shadow: 0 3px 0 rgba(255,255,255,0.85);
  }

  .fv-v4-card,
  .what-card,
  .comparison-wrap,
  .feature-card,
  .drug-panel-card,
  .cmp-wrap,
  .clinic-card,
  .faq-item,
  .cv-card {
    box-shadow: 0 8px 24px rgba(42,42,74,0.07);
  }

  .feature-card,
  .comp-card,
  .flow-step,
  .osusume-card,
  .faq-item {
    border-radius: 14px;
  }

  .cmp-wrap,
  .drug-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .cmp-table,
  .drug-table {
    min-width: 760px;
  }

  .cmp-btn,
  .clinic-cta-btn,
  .cv-btn-main,
  .cv-other-btn,
  .fv-v4-card-cta {
    letter-spacing: 0;
  }

  footer {
    background:
      linear-gradient(180deg, var(--navy) 0%, var(--navy-dark) 100%);
  }

  .footer-nav,
  .page_footer_nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 18px;
    margin: 0 auto 18px;
  }

  .footer-nav a,
  .page_footer_nav a {
    color: rgba(255,255,255,0.86);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
  }

  .footer-nav a:not(:last-child),
  .page_footer_nav a:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,0.5);
    padding-right: 18px;
  }

  .footer-nav a:hover,
  .page_footer_nav a:hover {
    color: white;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  /* 下層ページを外部CSS化した場合の共通スタイル */
  .page_header {
    background: white;
    border-bottom: 1px solid var(--pink-100);
    padding: 16px 24px;
  }

  .page_header_inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
  }

  .page_header_back {
    color: var(--pink-dark);
    font-size: 13px;
    font-weight: 900;
  }

  .page_main {
    max-width: 900px;
    margin: 0 auto;
    padding: 54px 24px 82px;
  }

  .page_ttl {
    font-family: 'Noto Serif JP', serif;
    color: var(--navy);
    font-size: 30px;
    line-height: 1.5;
    border-left: 5px solid var(--pink-main);
    padding-left: 16px;
    margin-bottom: 34px;
  }

  .company_table,
  .ranking_table {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--shadow-card);
  }

  .company_table th,
  .ranking_table th {
    background: var(--pink-50);
    color: var(--pink-dark);
    font-weight: 900;
  }

  .company_table th,
  .company_table td,
  .ranking_table th,
  .ranking_table td {
    border: 1px solid var(--pink-100);
    padding: 14px 16px;
    font-size: 14px;
  }


 

  @media (max-width: 768px) {
    body {
      font-size: 14px;
    }

    .fv-v4 {
      background:
        linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(255,244,249,0.96) 100%),
        radial-gradient(circle at 85% 8%, rgba(158,136,120,0.16), transparent 34%);
    }

    .section-lead br,
    .cv-desc br {
      display: none;
    }

    .fv-v4-card {
      width: 100%;
      max-width: 430px;
      margin-left: auto;
      margin-right: auto;
    }

    .what-card,
    .comparison-wrap,
    .drug-panel-card,
    .clinic-card,
    .cv-card {
      border-radius: 18px;
    }

    .what-points {
      grid-template-columns: 1fr;
      gap: 10px;
    }



    .page_main {
      padding: 38px 18px 64px;
    }

    .page_ttl {
      font-size: 23px;
      margin-bottom: 26px;
    }

    .company_table th,
    .company_table td,
    .ranking_table th,
    .ranking_table td {
      padding: 10px 12px;
      font-size: 13px;
    }
  }


  /* ===== 参考UI寄せ：白×くすみベージュの上品LP ===== */
  body {
    background:
      linear-gradient(180deg, #fff 0%, #fff8fa 18%, #fff 100%);
    letter-spacing: 0;
  }

  header {
    min-height: 28px;
    padding: 6px 24px;
    box-shadow: none;
  }

  .pr-badge {
    border-radius: 0;
    padding: 4px 10px;
  }

  .fv-v4 {
    min-height: 590px;
    padding: 44px 24px 42px;
    background:
      linear-gradient(90deg, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.96) 48%, rgba(255,247,248,0.22) 100%);
    border-bottom: 1px solid var(--pink-100);
  }

  .fv-v4::before,
  .fv-v4::after {
    display: none;
  }

  .fv-v4-top-line {
    height: 4px;
    background: linear-gradient(90deg, #DFCBB8, #c4ae9a, #DFCBB8);
    animation: none;
  }

  .fv-v4-visual {
    position: absolute;
    inset: 4px 0 auto auto;
    width: min(58vw, 900px);
    height: 480px;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
  }

  .fv-v4-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
      linear-gradient(90deg, #fff 0%, rgba(255,255,255,0.96) 16%, rgba(255,255,255,0.38) 46%, rgba(255,255,255,0) 78%),
      linear-gradient(180deg, rgba(255,255,255,0) 70%, #fff 100%);
  }

  .fv-v4-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center right;
  }

  .fv-v4-inner {
    max-width: 1080px;
    text-align: left;
  }

  .fv-v4-eyebrow {
    display: inline-block;
    background: #c4ae9a;
    color: white;
    border-radius: 999px;
    padding: 5px 18px;
    font-size: 12px;
    line-height: 1.4;
    letter-spacing: 0.08em;
    margin: 18px 0 12px 0;
  }

  .fv-v4-title {
    max-width: 560px;
    color: var(--pink-dark);
    font-size: clamp(38px, 5vw, 58px);
    line-height: 1.22;
    text-shadow: 0 2px 0 rgba(255,255,255,0.9);
  }

  .fv-v4-title br:nth-of-type(2) {
    display: none;
  }


  .fv-v4-badges {
    justify-content: flex-start;
    max-width: 560px;
    margin-bottom: 34px;
  }

  .fv-v4-badge {
    background: rgba(255,255,255,0.88);
    border: 1px solid #ead6d1;
    color: var(--pink-deep);
    border-radius: 8px;
    box-shadow: 0 5px 16px rgba(90,67,75,0.05);
  }

  .fv-ribbon {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 20px;
  }

  .fv-v4-logos {
    position: relative;
    z-index: 2;
    max-width: 1000px;
    margin-top: 18px;
  }

  .fv-v4-card {
    border-color: #eadcd8;
    border-radius: 10px;
  }

  .fv-v4-card.r2,
  .fv-v4-card.r3 {
    width: 75%;
  }

  .fv-v4-card.r2 {
    justify-self: start;
    margin-left: 0;
    margin-right: 0;
  }

  .fv-v4-card.r3 {
    justify-self: end;
    margin-left: 0;
    margin-right: 0;
  }

  .fv-v4-card.r1 {
    width: 133%;
    justify-self: center;
    margin-left: 0;
    margin-right: 0;
    background:
      linear-gradient(180deg, #fffdf9 0%, #fff 44%, #f5ede4 100%);
    border-color: #DFCBB8;
  }

  .section {
    border-bottom: 1px solid rgba(241,203,212,0.65);
  }

  .sec-pink {
    background: #fff7f8;
  }

  .sec-cream {
    background: #fffaf5;
  }

  .sec-pink::before,
  .sec-cream::before {
    content: '';
    position: absolute;
    left: 0; top: 0; right: 0; bottom: 0;
    background: url('../images/back.png') left center / auto 100vh no-repeat;
    background-attachment: fixed;
    opacity: 0.2;
    pointer-events: none;
    z-index: 0;
  }

  .section-eyebrow {
    color: var(--pink-dark);
    letter-spacing: 0.18em;
  }

  .section-title {
    color: #3f3438;
  }

  .section-divider {
    background: linear-gradient(90deg, #c4ae9a, var(--pink-main), #c4ae9a);
  }

  .what-card,
  .comparison-wrap,
  .drug-panel-card,
  .cmp-wrap,
  .clinic-card,
  .cv-card {
    border-radius: 12px;
    border-color: #f0dfe1;
  }

  .feature-card,
  .flow-step,
  .osusume-card,
  .faq-item {
    background: rgba(255,255,255,0.95);
    border-color: #f0dfe1;
  }

  .cv-section {
    background:
      linear-gradient(180deg, #f5ede4 0%, #efe0d4 100%);
  }

  footer {
    background: #3f3438;
  }

  @media (max-width: 768px) {
    .fv-v4-card.r1 {
      width: 100%;
    }

    .fv-v4 {
      min-height: auto;
      padding: 34px 16px 36px;
      background: linear-gradient(180deg, #fff 0%, #fff8fa 100%);
    }

    .fv-v4-visual {
      position: relative;
      inset: auto;
      width: calc(100% + 32px);
      height: 210px;
      margin: -4px -16px 16px;
      opacity: 0.98;
    }

    .fv-v4-visual::after {
      background:
        linear-gradient(180deg, rgba(255,255,255,0) 58%, #fff 100%),
        linear-gradient(90deg, #fff 0%, rgba(255,255,255,0.1) 30%, rgba(255,255,255,0) 100%);
    }

    .fv-v4-inner {
      text-align: center;
    }

    .fv-v4-eyebrow {
      margin-top: 0;
      font-size: 10px;
    }

    .fv-v4-title {
      margin-left: auto;
      margin-right: auto;
      font-size: 30px;
    }

    .fv-v4-title br:nth-of-type(2) {
      display: block;
    }


    .fv-v4-badges {
      justify-content: center;
      margin-left: auto;
      margin-right: auto;
    }
  }


  /* ===== FVトリミング・GLP-1説明セクション調整 ===== */
  .fv-v4 {
    min-height: 650px;
  }

  .fv-v4-visual {
    height: 560px;
  }

  .fv-v4-visual img {
    object-position: center top;
  }

  .fv-v4 + .section.sec-pink {
    padding-top: 68px;
    position: relative;
    z-index: 1;
    background:
      radial-gradient(circle at 16% 16%, rgba(184,149,115,0.18), transparent 22%),
      radial-gradient(circle at 86% 10%, rgba(184,149,115,0.12), transparent 28%),
      linear-gradient(180deg, #fdf8f3 0%, #fff 100%);
    overflow: hidden;
  }

  .fv-v4 + .section.sec-pink::before {
    content: '';
    position: absolute;
    left: 0; top: 0; right: 0; bottom: 0;
    background: url('../images/back.png') left center / auto 100vh no-repeat;
    background-attachment: fixed;
    opacity: 0.2;
    pointer-events: none;
    z-index: 0;
  }

  .fv-v4 + .section.sec-pink .section-title {
    margin-bottom: 10px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 6px;
    padding: 0;
  }
  .title-sparkle {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
    margin-top: -10px;
  }
  .title-sparkle--r {
    transform: scaleX(-1);
  }

  .fv-v4 + .section.sec-pink .section-lead {
    margin-bottom: 28px;
  }

  .what-card {
    display: block;
    padding: 40px 48px;
    background:
      linear-gradient(135deg, rgba(255,255,255,0.96) 0%, rgba(255,250,245,0.94) 100%);
    border-radius: 12px;
  }

  .what-card::before {
    top: -64px;
    right: -42px;
    width: 230px;
    height: 230px;
    background: radial-gradient(circle, rgba(158,136,120,0.14), transparent 70%);
  }

  .what-desc,
  .what-points {
    position: relative;
    z-index: 1;
  }

  .what-points {
    grid-template-columns: repeat(4, 1fr);
    gap: 0 24px;
    padding: 0;
    background: none;
    margin-bottom: 28px;
  }

  .what-point-icon {
    width: 120px;
    height: auto;
    margin-bottom: 8px;
  }

  .what-point-icon img {
    width: 100%;
    height: auto;
  }

  .what-desc {
    margin-bottom: 0;
    padding: 22px 30px;
    font-size: 13px;
  }

  @media (max-width: 768px) {
    .fv-v4 {
      min-height: auto;
    }

    .fv-v4-visual {
      height: 420px;
    }

    .fv-v4-visual img {
      object-position: 70% top;
    }

    .fv-v4 + .section.sec-pink {
      padding-top: 88px;
      z-index: 1;
    }

    .fv-v4 + .section.sec-pink::before {
      content: none;
    }

    .what-card {
      padding: 24px 18px;
      text-align: left;
    }

    .what-points {
      grid-template-columns: repeat(2, 1fr);
      gap: 16px 16px;
      padding: 0;
    }

    .what-point-icon {
      width: 70px;
      height: auto;
    }

    .what-point-icon img {
      width: 100%;
      height: auto;
    }

    .fv-v4 + .section.sec-pink .section-title {
      display: block;
      text-align: center;
    }

    .title-sparkle {
      display: none;
    }
  }


  /* ===== FVコピーを画像上に配置 ===== */
  .fv-v4 {
    min-height: 620px;
    padding: 0 24px 120px;
    background: #fff;
  }

  .fv-v4-visual {
    inset: 4px 0 auto 0;
    width: 100%;
    height: 520px;
  }

  .fv-v4-visual::after {
    background:
      linear-gradient(90deg, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.9) 28%, rgba(255,255,255,0.26) 56%, rgba(255,255,255,0) 86%),
      linear-gradient(180deg, rgba(255,255,255,0) 78%, #fff 100%);
  }

  .fv-v4-visual img {
    object-position: center right;
  }

  .fv-v4-inner {
    padding-top: 25px;
  }

  .fv-v4-eyebrow {
    margin: 10px 0 16px 58px;
    border-radius: 0;
    background: #c4ae9a;
    color: #fff;
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 0.04em;
    transform: rotate(-3deg);
    box-shadow: 0 6px 14px rgba(90,67,75,0.12);
  }

  .fv-v4-eyebrow::before,
  .fv-v4-eyebrow::after {
    content: '';
    position: absolute;
    top: 0;
    width: 18px;
    height: 100%;
    background: #b8a592;
  }

  .fv-v4-eyebrow::before {
    left: -14px;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 50%);
  }

  .fv-v4-eyebrow::after {
    right: -14px;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
  }

  .fv-v4-title {
    max-width: 600px;
    margin-bottom: 14px;
    font-size: clamp(44px, 5.8vw, 70px);
    line-height: 1.18;
    letter-spacing: 0.02em;
    text-align: center;
    text-shadow: 0 3px 0 rgba(255,255,255,0.92);
  }

  .fv-v4-title br,
  .fv-v4-title br:nth-of-type(2) {
    display: none;
  }



  .fv-title-img {
    display: block;
    width: auto;
    height: auto;
    max-width: 135%;
    margin-top: -100px;
    margin-bottom: -50px;
  }



  .fv-v4-badges {
    display: grid;
    grid-template-columns: repeat(4, minmax(112px, 1fr));
    gap: 14px;
    max-width: 590px;
    margin: 0 0 32px;
    position: relative;
  }

  .fv-text-img {
    position: absolute;
    right: -628px;
    top: 0%;
    transform: translateY(-50%);
    width: 200px;
    height: auto;
    display: block;
  }

  .fv-v4-badge {
    min-height: 78px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 8px;
    background: rgba(255,255,255,0.84);
    color: #bd6b78;
    border: 1px solid #ead6d1;
    font-size: 14px;
    line-height: 1.45;
  }

  .fv-v4-logos {
    margin-top: 34px;
  }

  /* ===== FVリボン ===== */
  .fv-ribbon {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    background: white padding-box, #DFCBB8 border-box;
    border: 3px solid transparent;
    clip-path: polygon(16px 0%, calc(100% - 16px) 0%, 100% 16px, 100% calc(100% - 16px), calc(100% - 16px) 100%, 16px 100%, 0% calc(100% - 16px), 0% 16px);
    padding: 10px 36px;
    margin: 0 auto 24px;
    width: fit-content;
    max-width: 100%;
    margin-top:36px;
  }
  .fv-ribbon-emblem {
    width: 48px;
    height: auto;
    flex-shrink: 0;
  }
  .fv-ribbon-emblem-l {
    transform: scaleX(-1);
  }
  .fv-ribbon-text {
    text-align: center;
  }
  .fv-ribbon-sub {
    font-size: 18px;
    color: #7a6b6e;
    line-height: 1.5;
    margin-bottom: 3px;
    white-space: nowrap;
  }
  .fv-ribbon-main {
    font-size: 35px;
    font-weight: 700;
    color: #9e8878;
    line-height: 1.4;
    white-space: nowrap;
  }
  .fv-ribbon-sm {
    font-size: 23px;
  }

  /* ===== 取り扱い薬剤エリア ===== */
  .fv-drug-section {
    margin: 4px 0 16px;
    max-width: 50%;
  }
  .fv-drug-label {
    font-size: 15px;
    color: #9a7355;
    letter-spacing: 0.1em;
    margin-bottom: 2px;
    margin-left: 140px;
  }
  .fv-drug-text {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-left: 0;
  }
  .fv-drug-text .fv-v4-tag {
    background: white;
    color: var(--pink-dark);
    font-weight: 900;
    border: 1px solid var(--pink-200);
    padding: 3px 10px;
    box-shadow: 0 2px 6px rgba(158,136,120,0.1);
  }

  @media (max-width: 768px) {
    .fv-v4 {
      padding: 0 16px 76px;
      min-height: auto;
      clip-path: polygon(0 0, 100% 0, 100% calc(100% - 40px), 50% 100%, 0 calc(100% - 40px));
      margin-bottom: -40px;
      z-index: 2;
    }

    .fv-v4-visual {
      position: absolute;
      inset: 4px 0 auto 0;
      width: 100%;
      height: 390px;
      margin: 0;
    }

    .fv-v4-visual::after {
      background:
        linear-gradient(180deg, rgba(255,255,255,0.38) 0%, rgba(255,255,255,0.88) 50%, #fff 100%),
        linear-gradient(90deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.62) 62%, rgba(255,255,255,0.06) 100%);
    }

    .fv-v4-visual img {
      object-position: 70% center;
    }

    .fv-v4-inner {
      padding-top: 25px;
      text-align: center;
    }

    .fv-v4-eyebrow {
      margin: 4px auto 14px;
      font-size: 11px;
      padding: 5px 13px;
    }

    .fv-v4-title {
      max-width: 360px;
      font-size: 38px;
      margin: 0 auto 12px;
    }

    .fv-v4-badges {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      max-width: 360px;
      gap: 8px;
      margin: 0 auto 28px;
    }

    .fv-text-img {
      display: none;
    }

    .fv-v4-badge {
      min-height: 56px;
      font-size: 11px;
      padding: 8px;
    }


    .fv-v4-logos {
      margin-top: 0px;
    }

    .fv-ribbon {
      gap: 8px;
      padding: 10px 10px;
      margin: 0 auto 18px;
      width: fit-content;
      max-width: calc(100vw - 32px);
      clip-path: polygon(10px 0%, calc(100% - 10px) 0%, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0% calc(100% - 10px), 0% 10px);
    }
    .fv-ribbon-emblem {
      width: 28px;
    }
    .fv-ribbon-sub {
      font-size: 12px;
      white-space: normal;
    }
    .fv-ribbon-main {
      font-size: 20px;
      white-space: normal;
    }

    /* fv-title-img: スマホではmax-width 105%・左揃え・margin-top -63px */
    .fv-title-img {
      max-width: 105%;
      margin-top: -50px;
      margin-bottom: -18px;
      margin-left: 0;
      margin-right: auto;
    }

    /* drug-section: 横書き・fv-v4-inner全幅 */
    .fv-drug-section {
      display: flex;
      flex-direction: row;
      align-items: center;
      max-width: 100%;
      width: 100%;
      gap: 6px;
      margin: 4px 0 12px;
    }
    .fv-drug-label {
      margin-left: 0;
      margin-bottom: 0;
      white-space: nowrap;
      flex-shrink: 0;
    }
    .fv-drug-text {
      flex: none;
      flex-wrap: wrap;
      justify-content: center;
      gap: 6px;
      padding: 0;
    }
  }


  /* ===== FV画像の見切れ防止（最終上書き） ===== */
  .fv-v4-visual {
    height: 560px;
  }

  .fv-v4-visual img {
    object-fit: contain;
    object-position: top right;
  }

  @media (max-width: 768px) {
    .fv-v4-visual {
      height: 360px;
    }

    .fv-v4-visual img {
      object-fit: contain;
      object-position: top center;
    }
  }


  /* ===== 薬選びセクション：図解カード型 ===== */
  .sec-cream {
    background:
      radial-gradient(circle at 12% 8%, rgba(158,136,120,0.12), transparent 20%),
      radial-gradient(circle at 88% 20%, rgba(62,158,153,0.12), transparent 22%),
      linear-gradient(180deg, #fffaf5 0%, #fff 100%);
  }

  .sec-cream .section-inner {
    max-width: 1120px;
  }

  .sec-cream .section-title {
    font-size: 48px;
  }

  .sec-cream .drug-tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    max-width: none;
    margin: 0 auto 28px;
    padding: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    position: relative;
  }

  .sec-cream .dtab {
    min-height: 76px;
    padding: 14px 16px 14px 70px;
    border: 1px solid #eadbd5;
    border-radius: 10px;
    background: rgba(255,255,255,0.92);
    color: #5f4b43;
    text-align: left;
    box-shadow: 0 7px 18px rgba(90,67,75,0.06);
    position: relative;
  }

  .sec-cream .dtab::before {
    content: 'Q';
    position: absolute;
    left: 16px;
    top: 50%;
    width: 32px;
    height: 32px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: #9a7355;
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .sec-cream .dtab::after {
    content: '';
    position: absolute;
    right: auto;
    top: auto;
    left: 50%;
    bottom: -13px;
    transform: translateX(-50%);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid #c4ae9a;
    border-bottom: none;
  }



  .sec-cream .dtab small {
    color: #9a7355;
  }

  .sec-cream .dtab.active {
    background: rgba(255,255,255,0.95);
    color: #5f4b43;
    box-shadow: 0 7px 18px rgba(90,67,75,0.06);
  }

  .sec-cream .dtab.active small {
    color: #9a7355;
  }

  .sec-cream .drug-panel,
  .sec-cream .drug-panel.active {
    display: block;
  }

  .sec-cream .drug-panel {
    margin: 0;
  }

  .sec-cream .drug-tabs ~ .drug-panel {
    width: calc((100% - 42px) / 4);
    display: inline-block;
    vertical-align: top;
    margin-right: 10px;
  }

  .sec-cream .drug-tabs ~ .drug-panel:last-of-type {
    margin-right: 0;
  }

  .sec-cream .drug-panel-card {
    min-height: 100%;
    padding: 22px 18px 18px;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    border: 1px solid #eadbd5;
    background: rgba(255,255,255,0.94);
  }

  .sec-cream .drug-panel-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 7px;
    background: var(--drug-color, var(--pink-main));
  }

  .sec-cream .drug-panel-card::after {
    content: '';
    position: absolute;
    right: -34px;
    top: 72px;
    width: 118px;
    height: 118px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--drug-color, var(--pink-main)) 18%, transparent);
    pointer-events: none;
  }

  .sec-cream #d1 .drug-panel-card {
    --drug-color: #d4a44d;
    --drug-soft: #fff6df;
  }

  .sec-cream #d2 .drug-panel-card {
    --drug-color: #9e8878;
    --drug-soft: #fff0f4;
  }

  .sec-cream #d3 .drug-panel-card {
    --drug-color: #3e9e99;
    --drug-soft: #eefafa;
  }

  .sec-cream #d4 .drug-panel-card {
    --drug-color: #557fc7;
    --drug-soft: #f1f5ff;
  }

  .sec-cream .dp-header {
    display: block;
    margin: 0 0 16px;
    padding: 0;
    border: 0;
    text-align: center;
    position: relative;
    z-index: 1;
  }

  .sec-cream .dp-icon {
    width: 58px;
    height: 58px;
    margin: 0 auto 10px;
    border-radius: 50%;
    background: var(--drug-soft, var(--pink-50));
    color: var(--drug-color, var(--pink-main));
    border: 2px solid color-mix(in srgb, var(--drug-color, var(--pink-main)) 28%, white);
    font-size: 28px;
  }

  .sec-cream .dp-name {
    color: var(--drug-color, var(--pink-main));
    font-size: 25px;
    line-height: 1.25;
  }

  .sec-cream .dp-type {
    color: #7d6b62;
    letter-spacing: 0.06em;
    font-size: 13px;
    min-height: 28px;
  }

  .sec-cream .dp-body {
    display: block;
    margin-bottom: 16px;
    position: relative;
    z-index: 1;
  }

  .sec-cream .dp-col {
    padding: 0;
    background: transparent;
    border: 0;
  }

  .sec-cream .dp-col + .dp-col {
    margin-top: 14px;
    padding-top: 14px;
    margin-left: 10px;
    border-top: 1px dashed #eadbd5;
  }

  .sec-cream .dp-col-title {
    color: #5f4b43;
    font-size: 18px;
    margin-bottom: 8px;
  }

  .sec-cream .dp-col-icon {
    width: 22px;
    height: 22px;
    background: var(--drug-color, var(--pink-main)) !important;
    font-size: 11px;
  }

  .sec-cream .dp-col ul li {
    font-size: 15px;
    line-height: 1.75;
    padding: 5px 0 5px 22px;
  }

  .sec-cream .dp-col ul li::before {
    content: '✓';
    top: 5px;
    width: 15px;
    height: 15px;
    border-radius: 3px;
    border: 1px solid color-mix(in srgb, var(--drug-color, var(--pink-main)) 46%, white);
    color: var(--drug-color, var(--pink-main)) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    line-height: 1;
  }

  .sec-cream .dp-clinic-row {
    display: block;
    padding-top: 14px;
    border-top: 1px solid #eadbd5;
    position: relative;
    z-index: 1;
  }

  .sec-cream .dp-clinic-label {
    display: block;
    margin-bottom: 9px;
    font-size: 13px;
    text-align: center;
  }

  .sec-cream .dp-clinic-btn {
    width: 100%;
    justify-content: flex-start;
    margin-top: 7px;
    border-color: var(--drug-color, var(--pink-main));
    color: var(--drug-color, var(--pink-main));
    border-radius: 7px;
    font-size: 15px;
    padding: 9px 20px;
  }

  .sec-cream .dp-clinic-btn.main {
    background: var(--drug-color, var(--pink-main));
    border-color: var(--drug-color, var(--pink-main));
    color: #fff;
    transition: transform 0.25s;
  }

  .sec-cream .dp-clinic-btn.main:hover {
    transform: translateY(-3px);
    color: #fff;
  }

  .sec-cream .dp-clinic-btn:not(.main):hover {
    background: var(--drug-color, var(--pink-main));
    color: #fff;
  }

  @media (max-width: 980px) {
    .sec-cream .drug-tabs {
      grid-template-columns: repeat(2, 1fr);
    }

    .sec-cream .dtab::after {
      display: none;
    }

    .sec-cream .drug-tabs ~ .drug-panel {
      width: calc((100% - 14px) / 2);
      margin-right: 10px;
      margin-bottom: 14px;
    }

    .sec-cream .drug-tabs ~ .drug-panel:nth-of-type(2n) {
      margin-right: 0;
    }
  }

  @media (max-width: 600px) {
    .sec-cream .drug-tabs {
      grid-template-columns: 1fr;
      gap: 8px;
      margin-bottom: 18px;
    }

    .sec-cream .dtab {
      min-height: 58px;
      padding: 10px 12px 10px 50px;
    }

    .sec-cream .drug-tabs ~ .drug-panel {
      display: block;
      width: 100%;
      margin-right: 0;
      margin-bottom: 14px;
    }

    .sec-cream .drug-panel-card {
      padding: 20px 16px 16px;
    }

    .sec-cream .dp-name {
      font-size: 22px;
    }
  }


  /* ===== オンライン診療の流れ：画像付き図解 ===== */
  .flow-diagram {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 24px;
    border: none;
    border-radius: 14px;
    background:
      linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,250,245,0.96) 100%);
    box-shadow: 0 8px 22px rgba(90,67,75,0.06);
  }

  .flow-main {
    min-width: 0;
  }



  .flow-line {
    display: none;
  }

  .flow-step {
    min-height: 178px;
    padding: 18px 14px 16px;
    background: rgba(255,255,255,0.95);
    border: 1px solid #eadbd5;
    border-radius: 9px;
    box-shadow: 0 6px 16px rgba(90,67,75,0.04);
    position: relative;
  }

 

  .flow-circle {
    width: auto;
    height: auto;
    margin: 0 auto 8px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .flow-step:last-child .flow-circle {
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .flow-icon {
    width: 140px;
    height: 140px;
    margin: 0 auto 8px;
    color: #9a7355;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
  }

  .flow-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .flow-num {
    background: #DFCBB8;
    color: #5a4c45;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    letter-spacing: 0.12em;
    text-align: center;
    padding: 5px 14px;
    margin: -18px -14px 8px;
    border-radius: 8px 8px 0 0;
  }

  .flow-title {
    font-size: 18px;
    line-height: 1.4;
    margin-bottom: 15px;
    color: #4a3933;
  }

 

  .flow-qa {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: rgba(255,255,255,0.82);
    border: none;
    border-radius: 12px;
    padding: 0;
    overflow: hidden;
  }

  .flow-qa-item {
    display: flex;
    align-items: stretch;
    gap: 0;
    padding: 0;
    border: 1px solid #e1c7ce;
    border-left: 5px solid #d9257a;
    position: relative;
    background: rgba(255,255,255,0.92);
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(90,67,75,0.08);
    margin-bottom: 10px;
  }

  .flow-qa-item:last-child {
    margin-bottom: 0;
  }

  .flow-qa-item::before {
    content: none;
  }

  .flow-qa-q {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 255px;
    flex-shrink: 0;
    font-size: 15px;
    font-weight: 700;
    color: #4a3933;
    padding: 16px 18px;
    border-right: 1px solid #eadbd5;
    margin-bottom: 0;
    background: #fff7f9;
  }

  .flow-qa-q::before {
    content: 'Q';
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: white;
    color: #ff5c76;
    font-size: 14px;
    font-weight: 900;
    font-family: 'Inter', sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }

  .flow-qa-a {
    display: block;
    flex: 1;
    padding: 16px 18px;
    font-size: 15px;
    line-height: 1.6;
    color: #665852;
  }


  .flow-side {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    background: #fff;
    border-left: 1px solid #eadbd5;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 8px 18px rgba(90,67,75,0.06);
  }

  .flow-side-image {
    height: 152px;
    margin: 0;
    background: #fff7f8;
    overflow: hidden;
  }

  .flow-side-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
  }

  .flow-side-copy {
    padding: 14px 14px 8px;
    color: #5f4b43;
    font-family: 'Noto Serif JP', serif;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.7;
    text-align: center;
  }

  .flow-side-links {
    margin-top: auto;
    padding: 0 14px 14px;
  }

  .flow-side-links a {
    display: flex;
    min-height: 76px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: linear-gradient(135deg, #c4ae9a, #9e8878);
    color: #fff;
    font-family: 'Noto Serif JP', serif;
    font-size: 17px;
    font-weight: 900;
    line-height: 1.55;
    text-align: center;
    box-shadow: 0 8px 18px rgba(158,136,120,0.28);
  }

  .flow-side-links a::after {
    content: '›';
    margin-left: 8px;
    font-family: 'Inter', sans-serif;
    font-size: 24px;
    line-height: 1;
  }

  @media (max-width: 980px) {
    .flow-diagram {
      grid-template-columns: 1fr;
    }

    .flow-side {
      display: grid;
      grid-template-columns: 160px 1fr;
      align-items: stretch;
      border-left: 0;
    }

    .flow-side-image {
      height: auto;
      min-height: 150px;
    }

    .flow-side-copy {
      align-self: center;
    }

    .flow-side-links {
      grid-column: 1 / -1;
      padding-top: 0;
    }
  }

  @media (max-width: 768px) {
    .flow-diagram {
      padding: 16px;
      gap: 16px;
    }



    .flow-step {
      min-height: auto;
      padding: 14px 12px;
    }

  

    .flow-qa-item {
      flex-direction: column;
      align-items: stretch;
      gap: 0;
    }
    .flow-qa-q {
      width: auto;
      border-right: none;
      border-bottom: 1px solid #eadbd5;
      padding: 12px 14px;
      font-size: 15px;
    }
    .flow-qa-a {
      padding: 12px 14px;
      font-size: 13px;
      line-height: 1.8;
    }
  }

  @media (max-width: 520px) {

    .flow-side {
      grid-template-columns: 1fr;
    }

    .flow-side-image {
      height: 180px;
    }
  }


  /* ===== 比較表：添付画像風の見やすい装飾 ===== */
  #compare {
    background:
      radial-gradient(circle at 12% 8%, rgba(158,136,120,0.13), transparent 24%),
      radial-gradient(circle at 92% 16%, rgba(62,158,153,0.1), transparent 24%),
      linear-gradient(180deg, #fff7f8 0%, #fff 100%);
  }

  #compare .section-inner {
    max-width: 1080px;
  }

  #compare .section-title {
    font-size: 48px;
  }

  #compare .section-title .hl {
    color: #d9257a;
  }

  #compare .cmp-highlight {
    max-width: 920px;
    margin: 0 auto 18px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background: rgba(255,255,255,0.82);
    color: #5f4b43;
    box-shadow: 0 8px 18px rgba(90,67,75,0.05);
  }

  #compare .cmp-wrap {
    border-radius: 12px;
    border: 2px solid #e5d4c8;
    background: rgba(255,255,255,0.94);
    box-shadow: 0 10px 26px rgba(158,136,120,0.1);
  }

  #compare .cmp-table {
    min-width: 820px;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 15px;
    background: #fff;
  }

  #compare .cmp-table th,
  #compare .cmp-table td {
    border-right: 1px solid #f3d6dd;
    border-bottom: 1px solid #f3d6dd;
    text-align: center;
  }

  #compare .cmp-table th:last-child,
  #compare .cmp-table td:last-child {
    border-right: 0;
  }

  #compare .cmp-table tr:last-child td {
    border-bottom: 0;
  }

  #compare .cmp-table thead th {
    padding: 10px 10px;
    font-size: 23px;
    line-height: 1.45;
    background: linear-gradient(180deg, #fff 0%, #fff7f8 100%);
    color: #3f3438;
    vertical-align: top;
  }

  #compare .cmp-table thead .th-row {
    width: 150px;
    background: #8d7062;
    color: #fff;
    position: relative;
  }

  #compare .cmp-table thead .th-row::before {
    content: '比較項目';
    font-weight: 900;
    font-size: 15px;
  }

  #compare .cmp-table .th-1 {
    color: #4a3d42;
    background: linear-gradient(180deg, #fff 0%, #f5ede4 100%);
  }

  #compare .cmp-table .th-2 {
    color: #53698f;
    background: linear-gradient(180deg, #fff 0%, #f5f7ff 100%);
  }

  #compare .cmp-table .th-3 {
    color: #118f8d;
    background: linear-gradient(180deg, #fff 0%, #effafa 100%);
  }

  #compare .cmp-table thead small {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 10px;
    border-radius: 999px;
    background: #f6d86d;
    color: #5f4b43;
    font-size: 11px !important;
    font-weight: 900 !important;
  }

  #compare .cmp-table td {
    padding: 15px 12px;
    color: #282326;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.65;
    background: rgba(255,255,255,0.94);
  }

  #compare .cmp-table tbody tr:nth-child(even) td {
    background: #fffafb;
  }

  #compare .cmp-table .row-head {
    width: 150px;
    background: linear-gradient(180deg, #fff8fa 0%, #fff0f4 100%) !important;
    color: #4a3933;
    font-size: 14px;
    font-weight: 900;
  }

  #compare .cmp-table .col-1 {
    background: linear-gradient(180deg, #fff 0%, #fff6f8 100%);
  }

  #compare .cmp-table tbody tr:nth-child(2) td:not(.row-head) {
    font-size: 22px;
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 900;
  }

  #compare .cmp-table tbody tr:nth-child(2) .col-1 {
    color: #9e8878;
    font-size: 24px;
  }

  #compare .cmp-table .best {
    color: #9e8878;
    font-size: 18px;
    font-weight: 900;
    position: relative;
  }

  #compare .cmp-table .best::after {
    display: none;
  }

  #compare .cmp-note-sup {
    color: #9e8878;
    background: #f5ede4;
    border-radius: 4px;
    padding: 1px 3px;
  }

  #compare .cmp-btn {
    width: min(230px, 100%);
    justify-content: center;
    border: 0;
    border-radius: 8px;
    background:#8D7062;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    padding: 11px 16px;
    box-shadow: 0 7px 16px rgba(158,136,120,0.24);
  }

  #compare .cmp-btn::after {
    content: '›';
    margin-left: 8px;
    font-size: 18px;
    line-height: 1;
  }

  #compare .cmp-btn:not(.main) {
    background: #8D7062;
  }

  #compare .cmp-notes-box {
    background: rgba(255,255,255,0.78);
    border-color: #e5d4c8;
  }

  @media (max-width: 768px) {
    #compare .cmp-wrap {
      border-radius: 10px;
    }

    #compare .cmp-table {
      min-width: 760px;
      font-size: 13px;
    }

    #compare .cmp-table td {
      padding: 12px 10px;
      font-size: 13px;
    }

    #compare .cmp-table thead th {
      font-size: 16px;
      padding: 10px 10px;
    }

    #compare .cmp-table tbody tr:nth-child(2) td:not(.row-head) {
      font-size: 18px;
    }
  }


  /* ===== 注射薬と飲み薬の比較：イラスト付き図解 ===== */
  .comparison-wrap {
    padding: 38px 34px 32px;
    border-radius: 18px;
    background:
      radial-gradient(circle at 10% 8%, rgba(158,136,120,0.1), transparent 24%),
      radial-gradient(circle at 90% 10%, rgba(154,115,85,0.1), transparent 24%),
      linear-gradient(180deg, #fff 0%, #fff8fa 100%);
    border: 1.5px solid #e5d4c8;
    box-shadow: 0 12px 30px rgba(90,67,75,0.08);
  }

  .comparison-title {
    margin-bottom: 28px;
    font-size: clamp(26px, 4vw, 42px);
    line-height: 1.35;
    color: #4a3933;
    letter-spacing: 0.04em;
  }

  .comparison-grid {
    gap: 34px;
    align-items: stretch;
  }

  .comparison-grid::before {
    width: 72px;
    height: 72px;
    background: linear-gradient(135deg, #c4ae9a, #9e8878);
    color: #fff;
    border: 8px solid rgba(255,255,255,0.88);
    box-shadow: 0 10px 22px rgba(158,136,120,0.25);
    font-family: 'Playfair Display', serif;
    font-size: 30px;
    z-index: 5;
  }

  .comp-card {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "label"
      "title"
      "specs"
      "drugs";
    gap: 14px 22px;
    padding: 0 35px 24px;
    border-radius: 18px;
    background: rgba(255,255,255,0.92);
    position: relative;
    overflow: visible;
  }

  .comp-card.inject {
    background:
      linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,244,247,0.92) 100%);
    border: 1.5px solid #e5d4c8;
    order: 2;
  }

  .comp-card.oral {
    background:
      linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,248,240,0.94) 100%);
    border: 1.5px solid #d8bca7;
    order: 1;
  }

  .comp-card-label {
    grid-area: label;
    align-self: start;
    justify-self: stretch;
    width: 100%;
    margin: 0 0 4px;
    padding: 15px 140px;
    border-radius: 0 0 16px 16px;
    color: #fff !important;
    text-align: center;
    font-size: 20px;
    letter-spacing: 0.08em;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .comp-card.inject .comp-card-label {
    background: linear-gradient(135deg, #c4ae9a, #9e8878);
  }

  .comp-card.oral .comp-card-label {
    background: linear-gradient(135deg, #e84c9e, #d9257a);
  }

  .comp-card-title {
    grid-area: title;
    margin: 6px 0 2px;
    color: #4a3933;
    text-align: center;
    font-size: 24px;
  }

  .comp-card.inject .comp-card-title::after {
    content: '効果をしっかり実感したい方に';
    display: block;
    margin-top: 0;
    color: #4a3933;
    font-family: 'Noto Serif JP', serif;
    font-size: 20px;
    font-weight: 900;
    text-align: center;
    padding: 0 5px;
    background-image: url('../images/icon10.png'), url('../images/icon11.png');
    background-position: left center, right center;
    background-repeat: no-repeat, no-repeat;
    background-size: auto 22px, auto 22px;
  }

  .comp-card.oral .comp-card-title::after {
    content: '手軽に始めたい方に';
    display: block;
    margin-top: 0;
    color: #4a3933;
    font-family: 'Noto Serif JP', serif;
    font-size: 20px;
    font-weight: 900;
    text-align: center;
    padding: 0 5px;
    background-image: url('../images/icon8.png'), url('../images/icon9.png');
    background-position: left center, right center;
    background-repeat: no-repeat, no-repeat;
    background-size: auto 22px, auto 22px;
  }

  .comp-card-visual {
    position: absolute;
    top: auto;
    bottom: -5px;
    transform: none;
    width: 116px;
    height: 116px;
    margin: 0;
    z-index: 2;
  }

  .comp-card.oral .comp-card-visual {
    left: -10px;
  }

  .comp-card.inject .comp-card-visual {
    right: -10px;
    left: auto;
  }

  .comp-card-visual img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 4px 8px rgba(90,67,75,0.15));
  }

  .comp-specs {
    grid-area: specs;
    align-self: start;
    display: grid;
    gap: 9px;
  }

  .comp-specs li {
    min-height: 52px;
    display: grid;
    grid-template-columns: 32px calc(5em + 5px) 1fr;
    align-items: center;
    gap: 0 10px;
    padding: 10px 14px;
    border: 1px solid rgba(158,136,120,0.2);
    border-radius: 14px;
    background: rgba(255,255,255,0.72);
    color: #4a3933;
    font-size: 14px;
    line-height: 1.4;
  }

  .comp-card.oral .comp-specs li {
    border-color: rgba(154,115,85,0.24);
  }

  .comp-specs li::before {
    content: none;
  }

  .comp-spec-icon {
    width: 30px;
    height: 30px;
    object-fit: contain;
    flex-shrink: 0;
  }

  .comp-spec-label {
    font-weight: 700;
    font-size: 15px;
    color: #4a3933;
    white-space: nowrap;
    padding-right: 10px;
    border-right: 1px solid rgba(158,136,120,0.3);
    align-self: stretch;
    display: flex;
    align-items: center;
  }

  .comp-card.oral .comp-spec-label {
    border-right-color: rgba(154,115,85,0.28);
  }

  .comp-spec-value {
    font-size: 13px;
    color: #5a4a43;
    font-weight: 500;
    line-height: 1.4;
    padding-left: 10px;
  }

  .comp-drugs {
    grid-area: drugs;
    align-self: start;
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 6px;
    margin-top: 0;
    padding: 10px 14px 10px 128px;
    border-top: none;
    border: 1px solid rgba(158,136,120,0.28);
    border-radius: 8px;
    position: relative;
    width: 431px;
    height: 94px;
    box-sizing: border-box;
  }

  .comp-drugs::before {
    content: '';
    display: block;
    position: absolute;
    left: -8px;
    top: 10px;
    width: 110px;
    height: 48px;
    background: url('../images/ribbon.png') no-repeat left top / contain;
    pointer-events: none;
  }

  .comp-drug-tag {
    background: none;
    border: none;
    padding: 0;
    border-radius: 0;
    color: #9e8878;
    font-weight: 700;
    font-size: 13px;
  }

  .comp-drug-tag + .comp-drug-tag::before {
    content: '／';
    color: #c8b4a0;
  }

  .comp-card.inject .comp-drug-tag {
    font-size: 20px;
  }

  .comp-card.oral .comp-drug-tag {
    color: #9a7355;
    font-size: 25px;
  }

  .comp-card.oral .comp-drug-tag + .comp-drug-tag::before {
    color: #c4a48c;
  }

  @media (max-width: 900px) {
    .comparison-grid {
      grid-template-columns: 1fr;
      gap: 26px;
    }

    .comparison-grid::before {
      position: relative;
      left: auto;
      top: auto;
      transform: none;
      margin: -4px auto;
      order: 2;
    }

    .comp-card {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 640px) {
    .comparison-wrap {
      padding: 26px 16px 22px;
    }

    .comparison-title {
      font-size: 23px;
      letter-spacing: 0;
    }

    .comparison-title::before,
    .comparison-title::after {
      margin: 0 6px;
    }

    .comp-card {
      grid-template-columns: 1fr;
      grid-template-areas:
        "label"
        "title"
        "specs"
        "drugs";
      padding: 0 16px 18px;
    }

    .comp-card-label {
      width: 100%;
      min-width: 0;
      font-size: 16px;
      padding: 12px 108px;
    }

    .comp-card-visual {
      width: 88px;
      height: 88px;
    }

    .comp-card-title {
      font-size: 20px;
    }

    .comp-specs li {
      min-height: auto;
      font-size: 13px;
    }
  }


  /* ===== クリニック詳細レビュー：最終上書き ===== */
  #clinics {
    background: radial-gradient(circle at 12% 4%, rgba(158,136,120,0.12), transparent 20%),
      radial-gradient(circle at 88% 10%, rgba(244,200,148,0.16), transparent 22%),
      linear-gradient(180deg, #fff 0%, #fff8fa 100%);
  }

  #clinics .section-eyebrow {
    color: #9e8878;
    font-size: 15px;
    letter-spacing: 0.32em;
  }

  #clinics .section-title {
    font-size: 48px;
    color: #3f3438;
  }

  .clinic-card {
    --clinic-main: #9e8878;
    --clinic-dark: #7a6860;
    --clinic-soft: #f5ede4;
    position: relative;
    display: grid;
    gap: 22px;
    padding: 42px 34px 34px;
    border-radius: 14px;
    border: 1.5px solid color-mix(in srgb, var(--clinic-main) 34%, white);
    background: radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--clinic-main) 10%, transparent), transparent 22%),
      linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,248,250,0.96));
    box-shadow: 0 12px 34px rgba(90,67,75,0.08);
    overflow: hidden;
  }

  .clinic-card:not(.rank1) {
    --clinic-main: #c4ae9a;
    --clinic-dark: #8f6c55;
    --clinic-soft: #fff8ef;
  }

  .clinic-card#digital {
    --clinic-main: #3e9e99;
    --clinic-dark: #247875;
    --clinic-soft: #eefafa;
  }

  .clinic-card.rank1 {
    --clinic-main: #d9257a;
    --clinic-dark: #8b3a4a;
    border: 2px solid #d9257a;
    background: radial-gradient(circle at 90% 12%, rgba(158,136,120,0.12), transparent 20%),
      linear-gradient(180deg, #fff 0%, #fff7f9 100%);
    box-shadow: 0 16px 42px rgba(158,136,120,0.14);
  }

  .clinic-card::before {
    content: '';
    position: absolute;
    left: 22px;
    top: 18px;
    width: 170px;
    height: 210px;
    background: url("../images/flow-doctor.png") no-repeat center top / cover;
    border-radius: 0 0 18px 18px;
    opacity: 0.98;
    pointer-events: none;
  }

  .clinic-card::after,
  .clinic-card.rank1::after {
    content: '';
    position: absolute;
    top: 46px;
    right: 48px;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.9) 0%, rgba(255,243,246,0.9) 100%);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--clinic-main) 18%, white);
    pointer-events: none;
  }

  .clinic-card .no1-ribbon {
    position: absolute;
    top: 0;
    left: 210px;
    right: auto;
    width: 76px;
    min-height: 92px;
    padding: 14px 8px 18px;
    border-radius: 0;
    background: #d9257a;
    color: #fff;
    font-family: 'Noto Serif JP', serif;
    font-size: 18px;
    line-height: 1.25;
    box-shadow: none;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 84%, 0 100%);
    z-index: 3;
  }

  .clinic-card .no1-ribbon::before {
    content: '人気';
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    letter-spacing: 0.1em;
  }

  .clinic-head {
    min-height: 170px;
    margin: 0;
    padding: 18px 170px 22px 275px;
    border: 0;
    align-items: center;
    position: relative;
    z-index: 2;
  }

  .clinic-name {
    color: #3f3438;
    font-size: clamp(25px, 3.5vw, 38px);
    line-height: 1.35;
  }

  .clinic-position {
    color: var(--clinic-main);
    font-size: 17px;
    font-weight: 900;
    line-height: 1.7;
  }

  .score-row {
    gap: 0;
    padding: 0;
    border-radius: 12px;
    background: linear-gradient(90deg, #fff7ef, #fffaf2);
    border: 1px solid #f3e1cf;
    overflow: hidden;
  }

  .score-item {
    padding: 22px 16px;
    border-right: 1px solid #f3e1cf;
  }

  .score-item:last-child {
    border-right: 0;
  }

  .score-label {
    color: #3f3438;
    font-size: 15px;
    font-weight: 900;
  }

  .score-label::before {
    content: '♡';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-right: 8px;
    border-radius: 50%;
    color: var(--clinic-main);
    border: 2px solid color-mix(in srgb, var(--clinic-main) 26%, white);
    vertical-align: middle;
  }

  .score-stars {
    color: #f5a400;
    font-size: 19px;
    letter-spacing: 0.06em;
    margin: 10px 0 4px;
  }

  .score-num {
    color: var(--clinic-main);
    font-family: 'Inter', sans-serif;
    font-size: 27px;
    font-weight: 900;
  }

  .spec-table {
    margin: 0;
    border: 1px solid #e5d4c8;
    border-radius: 12px;
    background: rgba(255,255,255,0.92);
    box-shadow: 0 8px 20px rgba(90,67,75,0.04);
    overflow: hidden;
  }

  .spec-table td {
    padding: 16px 18px;
    border-bottom: 1px solid #e5d4c8;
    color: #3f3438;
    font-size: 14px;
  }

  .spec-table .sh {
    width: 180px;
    background: var(--clinic-soft);
    color: var(--clinic-dark);
  }

  .spec-table .best {
    color: var(--clinic-main);
  }

  .points-title {
    margin: 12px 0 0;
    padding-left: 0;
    border-left: 0;
    color: #3f3438;
    font-size: 22px;
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .points-title::before {
    content: '';
    width: 8px;
    height: 28px;
    border-radius: 999px;
    background: var(--clinic-main);
  }

  .point-item {
    align-items: center;
    gap: 18px;
    margin: 0;
    padding: 18px 20px;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(90deg, var(--clinic-soft), rgba(255,255,255,0.88));
  }

  .point-num {
    width: 54px;
    height: 54px;
    background: var(--clinic-main);
    box-shadow: none;
    font-size: 20px;
  }

  .point-title {
    color: var(--clinic-main);
    font-size: 16px;
  }

  .osusume-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 12px;
  }

  .osusume-card {
    min-height: 190px;
    padding: 22px 16px;
    border: 1px solid #e5d4c8;
    border-radius: 12px;
    background: rgba(255,255,255,0.9);
    text-align: center;
  }

  .osusume-icon {
    width: 150px;
    height: 150px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: var(--clinic-soft);
    overflow: hidden;
    display: block;
    position: relative;
  }

  .clinic-cta-btn {
    width: min(720px, 100%);
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #c4ae9a, #9e8878);
    box-shadow: 0 12px 24px rgba(158,136,120,0.28);
    font-size: 19px;
    padding: 20px 34px;
  }

  .clinic-card {
    grid-template-columns: minmax(220px, 0.95fr) minmax(300px, 1.25fr);
    align-items: start;
  }

  .clinic-card .clinic-head,
  .clinic-card .points-title,
  .clinic-card .point-item,
  .clinic-card .reviews-title,
  .clinic-card .osusume-grid,
  .clinic-card .cf-notes-box,
  .clinic-card .clinic-cta {
    grid-column: 1 / -1;
  }

  .clinic-card .spec-table {
    grid-column: 1;
    grid-row: 2;
    align-self: stretch;
    min-height: 168px;
    display: grid;
    align-items: center;
    padding: 26px 26px 22px;
    position: relative;
  }

  .clinic-card .spec-table::after {
    content: '';
    position: absolute;
    right: 22px;
    bottom: 18px;
    width: 142px;
    height: 82px;
    background: linear-gradient(180deg, rgba(255,230,237,0.96), rgba(255,246,249,0.96));
    border: 1px solid #e5d4c8;
    border-radius: 6px;
    box-shadow: 0 10px 18px rgba(90,67,75,0.08);
  }

  .clinic-card .spec-table::before {
    content: 'GLP-1';
    position: absolute;
    right: 57px;
    bottom: 50px;
    z-index: 1;
    color: #9e8878;
    font-family: 'Noto Serif JP', serif;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  .clinic-card .spec-table tbody,
  .clinic-card .spec-table tr,
  .clinic-card .spec-table td {
    display: block;
  }

  .clinic-card .spec-table tr {
    display: none;
  }

  .clinic-card .spec-table tr:nth-child(3) {
    display: block;
    position: relative;
    z-index: 2;
    padding-right: 155px;
  }

  .clinic-card .spec-table tr:nth-child(3) .sh {
    width: auto;
    padding: 0;
    margin-bottom: 14px;
    border: 0;
    background: transparent;
    color: #3f3438;
    font-size: 15px;
    line-height: 1.4;
  }

  .clinic-card .spec-table tr:nth-child(3) td:not(.sh) {
    padding: 0;
    border: 0;
    background: transparent;
    color: #3f3438;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.55;
  }

 
  .clinic-card .score-row {
    grid-column: 2;
    grid-row: 2;
    min-height: 168px;
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 18px 24px;
    align-items: center;
    padding: 24px 26px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background: linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,246,249,0.92) 100%);
    position: relative;
  }

  .clinic-card .score-row::before {
    display: none;
  }

  .clinic-card .score-item {
    display: grid;
    grid-template-columns: minmax(88px, 1fr) 92px 34px;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    text-align: left;
  }

  .clinic-card .score-label {
    color: #3f3438;
    font-size: 13px;
    line-height: 1.4;
  }

  .clinic-card .score-label::before {
    display: none;
  }

  .clinic-card .score-stars {
    margin: 0;
    color: #f5a400;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    color: #9e8878;
    font-size: 13px;
    line-height: 1;
    text-align: right;
  }

  @media (max-width: 980px) {
    .clinic-card {
      padding: 34px 22px 28px;
    }

    .clinic-card::before,
    .clinic-card::after {
      display: none;
    }

    .clinic-card .no1-ribbon {
      left: auto;
      right: 22px;
      width: 64px;
      min-height: 78px;
      font-size: 15px;
    }

    .clinic-head {
      min-height: auto;
      padding: 0 84px 0 0;
    }

    .score-row,
    .osusume-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  @media (max-width: 640px) {
    .clinic-card {
      gap: 16px;
      padding: 28px 16px 24px;
    }

    .clinic-head {
      padding-right: 0;
      align-items: flex-start;
    }

    .clinic-card .no1-ribbon {
      position: relative;
      top: auto;
      right: auto;
      left: auto;
      width: 70px;
      min-height: 64px;
      margin-bottom: -4px;
    }

    .clinic-name {
      font-size: 22px;
    }

    .clinic-position {
      font-size: 13px;
    }

    .score-row,
    .osusume-grid {
      grid-template-columns: 1fr;
    }

    .score-item {
      border-right: 0;
      border-bottom: 1px solid #f3e1cf;
    }

    .score-item:last-child {
      border-bottom: 0;
    }

    .spec-table .sh {
      width: 116px;
    }

    .spec-table td {
      padding: 12px 10px;
      font-size: 12px;
    }

    .clinic-cta-btn {
      font-size: 15px;
      padding: 16px 22px;
    }
  }


  /* ===== score-row：総合評価カードの表示調整（最終） ===== */
  .clinic-card .score-row {
    grid-template-columns: 40% 60%;
    gap: 0;
    padding: 18px 22px;
    min-height: 156px;
    background: linear-gradient(90deg, #fff 0%, #fff7fa 100%);
  }

  .clinic-card .score-row::before {
    display: none;
  }

  .clinic-card .score-summary {
    grid-column: 1;
    grid-row: 1 / 5;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-right: 18px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
  }

  .clinic-card .ss-label {
    font-size: 16px;
    color: #3f3438;
    line-height: 1.4;
  }

  .clinic-card .ss-score-line {
    display: flex;
    align-items: baseline;
    line-height: 1;
  }

  .clinic-card .ss-score {
    font-size: 35px;
    color: #9e8878;
    line-height: 1;
  }

  .clinic-card .ss-slash {
    font-size: 16px;
    color: #3f3438;
  }

  .clinic-card .ss-stars {
    font-size: 35px;
    color: #f6a800;
    line-height: 1;
  }

  .clinic-card .score-item {
    grid-column: 2;
    display: grid;
    grid-template-columns: minmax(82px, 1fr) 86px 36px;
    align-items: center;
    gap: 8px;
    min-height: 24px;
    padding: 0 0 0 20px;
    border: 0;
    text-align: left;
  }

  .clinic-card .score-label {
    font-size: 13px;
    font-weight: 900;
    color: #4a3933;
    line-height: 1.4;
  }

  .clinic-card .score-label::before {
    display: none;
  }

  .clinic-card .score-stars {
    margin: 0;
    font-size: 14px;
    color: #f6a800;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    font-size: 13px;
    font-weight: 900;
    color: var(--clinic-main);
    line-height: 1;
    text-align: right;
  }

  @media (max-width: 640px) {
    .clinic-card .score-row {
      grid-template-columns: 1fr;
      gap: 12px;
    }

    .clinic-card .score-summary {
      grid-column: 1;
      grid-row: auto;
      padding: 0 0 12px;
      text-align: center;
    }

    .clinic-card .score-item {
      grid-column: 1;
      padding-left: 0;
    }
  }

  /* ===== spec-table：全行表示リセット ===== */
  .clinic-card .spec-table {
    display: table;
    width: 100%;
    min-height: auto;
    overflow: visible;
  }

  .clinic-card .spec-table tbody {
    display: table-row-group;
  }

  .clinic-card .spec-table tr,
  .clinic-card .spec-table tr:nth-child(3) {
    display: table-row !important;
    position: static !important;
    padding-right: 0 !important;
    z-index: auto !important;
  }

  .clinic-card .spec-table td {
    display: table-cell !important;
  }

  .clinic-card .spec-table tr:nth-child(3) .sh {
    width: 90px;
    padding: 8px 10px;
    margin-bottom: 0;
    font-size: 11px;
    line-height: inherit;
  }

  .clinic-card .spec-table tr:nth-child(3) td:not(.sh) {
    padding: 8px 10px;
    font-size: 13px;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
  }

  .clinic-card .spec-table::before,
  .clinic-card .spec-table::after {
    display: none;
  }

  /* ===== score-row::after（薄ピンク矩形）非表示 ===== */
  .clinic-card .score-row::after {
    display: none;
  }

  /* ===== head-fee：丸枠内レイアウト調整 ===== */
  .clinic-card .head-fee {
    position: absolute;
    top: 46px;
    right: 48px;
    width: 132px;
    height: 132px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    z-index: 2;
    pointer-events: none;
    gap: 2px;
  }

  .clinic-card .hf-label {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.12em;
    color: #888;
    line-height: 1;
  }

  .clinic-card .hf-price {
    font-size: 28px;
    font-weight: 900;
    color: #9e8878;
    font-family: 'Noto Serif JP', serif;
    line-height: 1.1;
  }

  .clinic-card .hf-note {
    font-size: 10px;
    color: #4a3933;
    line-height: 1.55;
    margin-top: 3px;
  }

  /* ===== clinic spec split: final override ===== */
  .clinic-card .score-row {
    grid-column: 1 / -1;
    grid-row: auto;
    display: grid;
    grid-template-columns: minmax(260px, 1.05fr) minmax(260px, 1fr) minmax(290px, 1.25fr);
    gap: 18px;
    align-items: stretch;
    min-height: auto;
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .clinic-card .score-row::before,
  .clinic-card .score-row::after {
    display: none !important;
  }

  .clinic-price-card {
    position: relative;
    grid-column: 1;
    grid-row: 1 / 5;
    min-height: 178px;
    padding: 30px 160px 26px 30px;
    overflow: hidden;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background:
      radial-gradient(circle at 86% 30%, rgba(255, 226, 234, 0.92), transparent 38%),
      linear-gradient(135deg, #fff 0%, #fff8fb 100%);
    box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
  }



  .clinic-price-card::after {
    content: '';
    position: absolute;
    right: 34px;
    bottom: 38px;
    z-index: 1;
    width: 132px;
    height: 20px;
    border-radius: 999px;
    background:
      linear-gradient(90deg, #5aa7c4 0 32%, #e8f7fb 32% 38%, #9bd2dd 38% 100%);
    box-shadow: 0 8px 16px rgba(76, 151, 172, 0.22);
    transform: rotate(-2deg);
  }

  .clinic-price-name {
    position: relative;
    z-index: 3;
    color: #3f3438;
    font-size: 17px;
    font-weight: 900;
    line-height: 1.5;
  }

  .clinic-price-text {
    position: relative;
    z-index: 3;
    margin-top: 18px;
    color: #3f3438;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.55;
  }

  .clinic-price-text small {
    font-size: 13px;
    font-weight: 800;
  }

  .clinic-card .score-summary {
    grid-column: 2;
    grid-row: 1 / 5;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 178px;
    padding: 22px 18px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background: linear-gradient(135deg, #fff 0%, #fff8fb 100%);
    box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
  }

  .clinic-card .ss-label {
    color: #3f3438;
    font-size: 16px;
    line-height: 1.4;
  }

  .clinic-card .ss-score-line {
    display: flex;
    align-items: baseline;
    margin-top: 6px;
    line-height: 1;
  }

  .clinic-card .ss-score {
    color: #9e8878;
    font-size: 35px;
    line-height: 1;
  }

  .clinic-card .ss-slash {
    color: #3f3438;
    font-size: 16px;
    line-height: 1;
  }

  .clinic-card .ss-stars {
    margin-top: 8px;
    color: #f6a800;
    font-size: 35px;
    letter-spacing: 0;
    line-height: 1;
  }

  .clinic-card .score-item {
    grid-column: 3;
    display: grid;
    grid-template-columns: minmax(94px, 1fr) 92px 42px;
    gap: 8px;
    align-items: center;
    min-height: 34px;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
  }

  .clinic-card .score-label {
    color: #3f3438;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.4;
  }

  .clinic-card .score-label::before {
    display: none;
  }

  .clinic-card .score-stars {
    margin: 0;
    color: #f6a800;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    color: var(--clinic-main);
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    text-align: right;
  }

  .clinic-spec-table {
    grid-column: 1 / -1;
    width: 100%;
    overflow: hidden;
    margin-top: 2px;
    border: 1px solid #f1d7df;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 24px rgba(137, 91, 103, 0.06);
  }

  .clinic-spec-table td {
    padding: 15px 18px;
    border-bottom: 1px solid #f4e1e6;
    color: #3f3438;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.7;
  }

  .clinic-spec-table tr:last-child td {
    border-bottom: 0;
  }

  .clinic-spec-table .sh {
    width: 190px;
    background: var(--clinic-soft);
    color: var(--clinic-main);
    font-size: 13px;
    font-weight: 900;
    text-align: center;
  }

  .clinic-spec-table .best {
    color: var(--clinic-main);
    font-weight: 900;
  }

  @media (max-width: 980px) {
    .clinic-card .score-row {
      grid-template-columns: 1fr 1fr;
    }

    .clinic-price-card {
      grid-column: 1;
      grid-row: auto;
    }

    .clinic-card .score-summary {
      grid-column: 2;
      grid-row: auto;
    }

    .clinic-card .score-item {
      grid-column: 1 / -1;
      grid-template-columns: minmax(120px, 1fr) 100px 44px;
      padding: 0 14px;
    }
  }

  @media (max-width: 640px) {
    .clinic-card .score-row {
      grid-template-columns: 1fr;
      gap: 12px;
    }

    .clinic-price-card,
    .clinic-card .score-summary,
    .clinic-card .score-item {
      grid-column: 1;
      grid-row: auto;
    }

    .clinic-price-card {
      min-height: 154px;
      padding: 22px 138px 22px 18px;
    }

 
    .clinic-price-card::after {
      right: 22px;
      bottom: 34px;
      width: 112px;
    }

    .clinic-price-text {
      font-size: 18px;
    }

    .clinic-card .score-summary {
      min-height: 142px;
    }

    .clinic-card .score-item {
      grid-template-columns: minmax(90px, 1fr) 86px 38px;
      padding: 0;
    }

    .clinic-spec-table .sh {
      width: 112px;
    }

    .clinic-spec-table td {
      padding: 12px 10px;
      font-size: 12px;
    }
  }

  /* ===== clinic score/price layout polish: tail override ===== */
  .clinic-card .score-row {
    grid-column: 1 / -1;
    grid-row: auto;
    display: grid;
    grid-template-columns: minmax(260px, 0.95fr) minmax(210px, 0.72fr) minmax(310px, 1.2fr);
    gap: 18px;
    align-items: stretch;
    min-height: auto;
    margin-top: 6px;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .clinic-card .score-row::before,
  .clinic-card .score-row::after {
    display: none !important;
    content: none !important;
  }

  .clinic-price-card {
    position: relative;
    grid-column: 1;
    grid-row: 1 / 5;
    min-height: 154px;
    padding: 24px 30px 22px 30px;
    overflow: visible;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background:
      radial-gradient(circle at 82% 22%, rgba(255, 238, 243, 0.9), transparent 34%),
      linear-gradient(135deg, #fff 0%, #fff8fb 100%);
    box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
  }

  

  .clinic-price-card::after {
    display: none !important;
    content: none !important;
  }

  .clinic-price-name {
    position: relative;
    z-index: 2;
    color: #3f3438;
    font-size: 17px;
    font-weight: 900;
    line-height: 1.5;
  }

  .clinic-price-text {
    position: relative;
    z-index: 2;
    max-width: calc(100% - 76px);
    margin-top: 18px;
    color: #3f3438;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.55;
  }

  .clinic-price-text small {
    font-size: 13px;
    font-weight: 800;
  }

  .clinic-card .score-summary {
    grid-column: 2;
    grid-row: 1 / 5;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 154px;
    padding: 18px 22px;
    border: 1px solid #e5d4c8;
    border-radius: 10px;
    background: linear-gradient(135deg, #fff 0%, #fff8fb 100%);
    box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
    font-family: 'Noto Serif JP', serif;
    font-weight: 900;
  }

  .clinic-card .score-item {
    grid-column: 3;
    display: grid;
    grid-template-columns: minmax(98px, 1fr) 96px 42px;
    gap: 8px;
    align-items: center;
    min-height: 34px;
    padding: 0 4px 0 28px;
    border: 0;
    border-left: 0;
    background: transparent;
    text-align: left;
  }

  .clinic-card .score-item + .score-item {
    border-top: 1px solid rgba(244, 214, 222, 0.72);
  }

  .clinic-card:not(#dmm) .score-summary {
    display: none;
  }

  .clinic-card:not(#dmm) .score-row {
    grid-template-columns: minmax(260px, 0.95fr) minmax(390px, 1.35fr);
  }

  .clinic-card:not(#dmm) .score-item {
    grid-column: 2;
  }

  .clinic-card .score-label {
    color: #3f3438;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.4;
  }

  .clinic-card .score-label::before {
    display: none;
  }

  .clinic-card .score-stars {
    margin: 0;
    color: #f6a800;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .clinic-card .score-num {
    color: var(--clinic-main);
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    text-align: right;
  }

  @media (max-width: 980px) {
    .clinic-card .score-row {
      grid-template-columns: 1fr 1fr;
      gap: 0;
      padding: 20px;
    }

    .clinic-price-card {
      grid-column: 1;
      grid-row: auto;
      padding: 22px 30px;
    }

    .clinic-card .score-summary {
      grid-column: 2;
      grid-row: auto;
      border-left: 1px solid #e0d0c8;
    }

    .clinic-card .score-item {
      grid-column: 1 / -1;
      grid-template-columns: minmax(120px, 1fr) 100px 44px;
      padding: 12px 8px;
      border-left: 0;
      border-top: 1px solid rgba(244, 214, 222, 0.72);
    }
  }

  @media (max-width: 640px) {
    .clinic-card .score-row {
      grid-template-columns: 1fr;
      padding: 18px;
    }

    .clinic-price-card,
    .clinic-card .score-summary,
    .clinic-card .score-item {
      grid-column: 1;
      grid-row: auto;
    }

    .clinic-price-card {
      min-height: 132px;
      padding: 18px 30px;
    }

   
    .clinic-price-text {
      max-width: calc(100% - 68px);
      font-size: 18px;
    }

    .clinic-card .score-summary {
      min-height: 128px;
      border-left: 0;
      border-top: 1px solid rgba(244, 214, 222, 0.72);
    }

    .clinic-card .score-item {
      grid-template-columns: minmax(90px, 1fr) 86px 38px;
      padding: 12px 0;
      border-left: 0;
    }
  }

/* ===== final: score summary only DMM / standalone price card ===== */
.clinic-card .score-row {
  grid-column: 1 / -1;
  grid-row: auto;
  display: grid;
  grid-template-columns: minmax(260px, 0.95fr) minmax(210px, 0.72fr) minmax(310px, 1.2fr);
  gap: 18px;
  align-items: stretch;
  min-height: auto;
  margin-top: 6px;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.clinic-card .score-row::before,
.clinic-card .score-row::after {
  display: none !important;
  content: none !important;
}

.clinic-price-card {
  position: relative;
  grid-column: 1;
  grid-row: 1 / 5;
  min-height: 154px;
  padding: 24px 30px 22px 30px;
  overflow: visible;
  border: 1px solid #e5d4c8;
  border-radius: 10px;
  background: radial-gradient(circle at 82% 22%, rgba(255, 238, 243, 0.9), transparent 34%), linear-gradient(135deg, #fff 0%, #fff8fb 100%);
  box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
}

.clinic-price-card::after {
  display: none !important;
  content: none !important;
}

.clinic-card .score-summary {
  grid-column: 2;
  grid-row: 1 / 5;
  border: 1px solid #e5d4c8;
  border-radius: 10px;
  background: linear-gradient(135deg, #fff 0%, #fff8fb 100%);
  box-shadow: 0 12px 26px rgba(196, 89, 116, 0.08);
}

.clinic-card:not(#dmm) .score-summary {
  display: none !important;
}

.clinic-card:not(#dmm) .score-row {
  grid-template-columns: minmax(260px, 0.95fr) minmax(390px, 1.35fr);
}

.clinic-card .score-item {
  grid-column: 3;
  padding: 0 4px 0 28px;
  border-left: 0;
}

.clinic-card:not(#dmm) .score-item {
  grid-column: 2;
}

@media (max-width: 980px) {
  .clinic-card .score-row,
  .clinic-card:not(#dmm) .score-row {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 0;
  }

  .clinic-card .score-summary {
    grid-column: 2;
    grid-row: auto;
  }

  .clinic-card .score-item,
  .clinic-card:not(#dmm) .score-item {
    grid-column: 1 / -1;
    padding: 12px 8px;
  }
}

@media (max-width: 640px) {
  .clinic-card .score-row,
  .clinic-card:not(#dmm) .score-row {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 0;
  }

  .clinic-price-card,
  .clinic-card .score-summary,
  .clinic-card .score-item,
  .clinic-card:not(#dmm) .score-item {
    grid-column: 1;
    grid-row: auto;
  }

  .clinic-price-card {
    min-height: 132px;
    padding: 18px 30px;
  }

  .clinic-card .score-item,
  .clinic-card:not(#dmm) .score-item {
    padding: 12px 0;
  }
}

/* ===== final: cv section with image ===== */
.cv-section {
  --cv-rose: #c4ae9a;
  --cv-beige: #DFCBB8;
  --cv-brown: #8D7062;
  position: relative;
  padding: 88px 24px;
  overflow: hidden;
  background:
    radial-gradient(circle at 84% 30%, rgba(196, 174, 154, 0.32), transparent 28%),
    radial-gradient(circle at 16% 82%, rgba(223, 203, 184, 0.38), transparent 32%),
    linear-gradient(180deg, rgba(255,253,249,0.80) 0%, rgba(245,237,228,0.80) 100%),
    url('../images/back.png') left center / auto 100vh no-repeat fixed;
  background-color: #fffdf9;
}




.cv-inner {
  position: relative;
  z-index: 1;
  max-width: 1060px;
  margin: 0 auto;
  text-align: center;
}

.cv-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 230px;
  padding: 12px 28px;
  border-radius: 999px;
  background: #d9257a;
  color: #fff;
  box-shadow: 0 12px 24px rgba(141, 112, 98, 0.16);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.cv-label::before,
.cv-label::after {
  content: '✦';
  margin: 0 8px;
  color: #fff7f5;
  font-size: 14px;
}

.cv-title {
  margin: 24px 260px 14px 0;
  color: #2f2526;
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(30px, 4.2vw, 54px);
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: 0;
}

.cv-title em {
  color: #d9257a;
  font-style: normal;
}

.cv-title em::after {
  background: rgba(223, 203, 184, 0.55);
}

.cv-desc {
  max-width: 620px;
  margin: 0 auto 34px;
  color: #4a3b36;
  font-size: 17px;
  font-weight: 700;
  line-height: 2;
}

.cv-model {
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
  width: min(32vw, 330px);
  height: 380px;
  pointer-events: none;
}

.cv-model::before {
  content: '';
  position: absolute;
  right: 12px;
  bottom: 16px;
  width: 250px;
  height: 250px;
  border-radius: 50%;
  background: rgba(158, 136, 120, 0.24);
}

.cv-model img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 18px 28px rgba(141, 112, 98, 0.12));
}

.cv-card {
  position: relative;
  max-width: 980px;
  margin: 0 auto;
  padding: 54px 58px 44px;
  border: 1px solid rgba(158, 136, 120, 0.72);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 22px 54px rgba(141, 112, 98, 0.16);
  text-align: left;
}

.cv-card::before {
  content: 'RECOMMEND';
  position: absolute;
  top: -18px;
  left: 48px;
  padding: 10px 24px;
  border-radius: 5px;
  background: linear-gradient(135deg, var(--cv-rose), #d08886);
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.18em;
}

.cv-card-header {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 28px;
  padding-bottom: 28px;
  border-bottom: 2px dashed rgba(158, 136, 120, 0.54);
}

.cv-card-icon {
  position: relative;
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  border-radius: 50%;
  background: #d9257a;
  color: #fff;
  font-family: 'Noto Serif JP', serif;
  font-size: 34px;
  font-weight: 900;
  box-shadow: 0 12px 22px rgba(158, 136, 120, 0.26);
}

.cv-card-icon::before {
  content: '♛';
  position: absolute;
  top: -26px;
  left: 50%;
  transform: translateX(-50%);
  color: #d4aa67;
  font-size: 28px;
  line-height: 1;
}

.cv-clinic-name {
  color: #2f2526;
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(24px, 3.2vw, 36px);
  font-weight: 900;
  letter-spacing: 0;
}

.cv-clinic-tag {
  margin-top: 6px;
  color: #9e8878;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.cv-card-content {
  display: grid;
  grid-template-columns: minmax(230px, 0.85fr) minmax(360px, 1.35fr);
  gap: 34px;
  align-items: center;
  margin-bottom: 34px;
}

.cv-phone-visual {
  position: relative;
  min-height: 270px;
  display: grid;
  place-items: center;
}

.cv-phone-visual::before {
  content: '';
  position: absolute;
  width: 132px;
  height: 232px;
  border: 9px solid #252326;
  border-radius: 24px;
  background: linear-gradient(180deg, #fff 0%, #f7eeee 100%);
  box-shadow: 0 18px 28px rgba(55, 43, 39, 0.18);
}



.cv-phone-visual img {
  position: relative;
  z-index: 1;
  width: 108px;
  height: 146px;
  object-fit: cover;
  object-position: center top;
  border-radius: 12px;
  transform: translateY(-12px);
}

.cv-merits {
  margin: 0;
  list-style: none;
}

.cv-merits li {
  position: relative;
  padding: 13px 0 13px 46px;
  border-bottom: 0;
  color: #3e3230;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.7;
}

.cv-merits li::before {
  top: 16px;
  left: 0;
  width: 28px;
  height: 28px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='14' fill='%23c4ae9a'/%3E%3Cpath d='M8.2 14.3l3.6 3.7 8-9' stroke='white' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}

.cv-btn-main {
  max-width: 780px;
  margin: 0 auto;
  padding: 24px 28px;
  border-radius: 999px;
  background: #d9257a;
  box-shadow: 0 18px 34px rgba(158, 136, 120, 0.42);
  color: #fff;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.cv-btn-arrow {
  width: 40px;
  height: 40px;
  color: #9e8878;
}

.cv-btn-note {
  color: var(--cv-brown);
  font-size: 12px;
  font-weight: 700;
}

.cv-others-label {
  position: relative;
  color: var(--cv-brown);
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.cv-others-label::before,
.cv-others-label::after {
  content: '';
  display: inline-block;
  width: 22%;
  height: 1px;
  margin: 0 18px 4px;
  background: rgba(158, 136, 120, 0.72);
}

.cv-others {
  max-width: 780px;
  margin: 0 auto;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.cv-other-btn {
  position: relative;
  padding: 17px 42px 17px 24px;
  border: 1px solid var(--cv-rose);
  border-radius: 999px;
  background: #fff;
  color: #3f3438;
  font-size: 16px;
  font-weight: 900;
}

.cv-other-btn::after {
  content: '›';
  position: absolute;
  top: 50%;
  right: 24px;
  transform: translateY(-50%);
  color: var(--cv-rose);
  font-size: 28px;
  line-height: 1;
}

@media (max-width: 900px) {
  .cv-section {
    padding: 64px 18px;
  }

  .cv-title {
    margin-right: 0;
  }

  .cv-model {
    position: relative;
    z-index: 0;
    width: min(62vw, 260px);
    height: 220px;
    margin: -12px auto 20px;
  }

  .cv-model::before {
    right: 18px;
    bottom: 8px;
    width: 170px;
    height: 170px;
  }

  .cv-card {
    padding: 44px 24px 32px;
  }

  .cv-card-content {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .cv-phone-visual {
    min-height: 230px;
  }
}

@media (max-width: 640px) {
  .cv-section {
    padding: 52px 14px;
  }

  .cv-label {
    min-width: 0;
    padding: 9px 18px;
    font-size: 12px;
  }

  .cv-title {
    font-size: 25px;
  }

  .cv-desc {
    font-size: 13px;
    line-height: 1.8;
  }

  .cv-card {
    padding: 38px 18px 26px;
    border-radius: 14px;
  }

  .cv-card::before {
    left: 20px;
  }

  .cv-card-header {
    gap: 14px;
  }

  .cv-card-icon {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
    font-size: 24px;
  }

  .cv-clinic-name {
    font-size: 21px;
  }

  .cv-clinic-tag {
    font-size: 12px;
  }

  .cv-merits li {
    padding-left: 36px;
    font-size: 14px;
  }

  .cv-merits li::before {
    width: 22px;
    height: 22px;
  }

  .cv-btn-main {
    padding: 18px 18px;
    font-size: 16px;
  }

  .cv-btn-arrow {
    width: 30px;
    height: 30px;
  }

  .cv-others-label::before,
  .cv-others-label::after {
    width: 12%;
    margin-inline: 8px;
  }

  .cv-others {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

/* ===== final: split FV background and woman cutout ===== */
.fv-v4-visual {
  overflow: hidden;
}

.fv-v4-visual > img:not(.fv-v4-woman) {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.fv-v4-visual .fv-v4-woman {
  position: absolute;
  right: 5.5%;
  bottom: calc(-2% - 10px);
  z-index: 2;
  width: min(57vw, 840px);
  height: auto;
  max-height: 110%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 18px 30px rgba(141, 112, 98, 0.16));
}

.cv-model > img:not(.cv-model-woman) {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  opacity: 0.72;
}

.cv-model .cv-model-woman {
  position: absolute;
  right: -6px;
  bottom: -2px;
  z-index: 2;
  width: 92%;
  height: 96%;
  object-fit: contain;
  object-position: center bottom;
  opacity: 1;
  filter: drop-shadow(0 16px 24px rgba(141, 112, 98, 0.16));
}

@media (max-width: 900px) {
  .fv-v4-visual .fv-v4-woman {
    right: 50%;
    bottom: -6px;
    transform: translateX(50%);
    width: min(96vw, 495px);
    max-height: 96%;
  }

  .cv-model .cv-model-woman {
    right: 50%;
    transform: translateX(50%);
    width: min(72vw, 230px);
  }
}

@media (max-width: 640px) {
  .fv-v4-visual .fv-v4-woman {
    width: min(114vw, 420px);
  }
}

/* ===== fv_label 画像差し替え ===== */
.fv-v4-eyebrow {
  background: none;
  border-radius: 0;
  padding: 0;
  color: transparent;
  box-shadow: none;
  transform: none;
}

.fv-v4-eyebrow::before,
.fv-v4-eyebrow::after {
  display: none;
}

.fv-label-img {
  width: 360px;
  margin-top:20px;
  transform-origin: left center;
  display: block;
  transform: rotate(-3deg); /* 右肩上がり：角度調整はここ */
}

/* ===== fv_model モバイルインライン表示 ===== */
.fv-v4-model-sp {
  display: none;
}

@media (max-width: 768px) {
  .fv-v4-visual {
    display: none;
  }

  .fv-v4-subtitle-row {
    display: flex;
    align-items: flex-end;
    width: 100%;
    margin: 0 auto;
    position: relative;
    overflow: visible;
    min-height: 220px;
  }


  .fv-v4-model-sp {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    width: 200%;
    object-fit: contain;
    object-position: right bottom;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 25%, black 70%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 25%, black 70%, transparent 100%);
    z-index: 1;
  }

  .fv-label-img {
    width: 260px;
    margin-left: 0;
    margin-right: auto;
  }
}

.clinic-card img {
  width: 3%;
}

/* ===== #clinics 新レイアウト ===== */

/* 旧::before・旧::after・head-fee を非表示 */
.clinic-card::before,
.clinic-card::after,
.clinic-card.rank1::after {
  display: none !important;
}

.clinic-card .head-fee {
  display: none !important;
}

/* no1-ribbon: 左端・縦並び・center */
.clinic-card .no1-ribbon {
  left: 0;
  right: auto;
  top: 0;
  width: 72px;
  min-height: 110px;
  padding: 10px 4px 22px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 3px;
  text-align: center;
  z-index: 3;
}

.clinic-card .no1-ribbon::before {
  display: none !important;
}

.ribbon-rank-img {
  width: 44px !important;
  height: auto;
  display: block;
  flex-shrink: 0;
  object-fit: contain;
}

.ribbon-ninki {
  font-size: 10px;
  letter-spacing: 0.08em;
  font-family: 'Noto Sans JP', sans-serif;
  display: block;
  color: #fff;
  line-height: 1;
  padding: 5px;
}

.ribbon-no {
  font-size: 16px;
  font-weight: 700;
  display: block;
  color: #fff;
  line-height: 1;
}

/* clinic-upper-row */
.clinic-upper-row {
  display: flex;
  align-items: flex-start;
  gap: 35px;
  margin-bottom: 10px;
  padding-left: 60px;
  grid-column: 1 / -1;
}

.clinic-doctor-img {
  width: 170px !important;
  height: auto;
  flex-shrink: 0;
  border-radius: 0 0 12px 12px;
  align-self: flex-start;
  object-fit: cover;
}

.clinic-right-area {
  flex: 1;
  min-width: 0;
}

.clinic-upper-row .clinic-head {
  min-height: unset;
  padding: 0;
  margin-bottom: 22px;
  border: 0;
  position: static;
  display: flex;
  align-items: center;
  gap: 100px;
}

/* ===== 評価スコア帯 ===== */
.clinic-score-section {
  margin-top: 8px;
  border-radius: 8px;
  overflow: hidden;
  background: linear-gradient(180deg, var(--clinic-main), var(--clinic-dark));
}

.score-items-row {
  display: flex;
  gap: 0;
  flex-wrap: nowrap;
  border-top: 1px solid rgba(255,255,255,0.28);
}

.clinic-score-section .score-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: 1;
  background: #fff;
  border-right: 1px solid rgba(0,0,0,0.08);
  border-radius: 0;
  padding: 6px 3px !important;
  gap: 1px;
}

.clinic-score-section .score-item:last-child {
  border-right: none;
}

.clinic-score-section .score-label,
.basic-label {
  font-size: 13px;
  color: #888;
  font-weight: 600;
  display: block;
}

.clinic-score-section .score-stars {
  font-size: 16px;
  color: #f5a623;
  letter-spacing: -1px;
  display: block;
}

.clinic-score-section .score-num {
  font-size: 15px;
  font-weight: 700;
  color: #333;
  display: block;
    padding-top:10px
}

/* ===== 基本情報帯 ===== */
.clinic-basic-section {
  margin: 8px 0 0;
  border-radius: 8px;
  overflow: hidden;
  background: linear-gradient(180deg, var(--clinic-main), var(--clinic-dark));
  grid-column: 1 / -1;
}

.clinic-basic-row {
  display: flex;
  gap: 0;
  flex-wrap: nowrap;
  margin: 0;
  border-top: 1px solid rgba(255,255,255,0.28);
}

.clinic-basic-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: 1;
  min-width: 0;
  background: #fff;
  border: none;
  border-right: 1px solid rgba(0,0,0,0.08);
  border-radius: 0;
  padding: 7px 3px;
  gap: 2px;
}

.clinic-basic-item:last-child {
  border-right: none;
}


.basic-value {
  font-size: 15px;
  font-weight: 700;
  color: #333;
  display: block;
  word-break: break-all;
}

.basic-value.best {
  color: var(--clinic-main);
}

.basic-note {
  font-size: 12px;
  color: #999;
  display: block;
}

/* その他情報タグ（帯の外・下に配置） */
.clinic-tags-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.clinic-tag {
  background: color-mix(in srgb, var(--clinic-main) 10%, white);
  color: var(--clinic-main);
  font-size: 15px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 100px;
  border: 1px solid color-mix(in srgb, var(--clinic-main) 25%, white);
}

/* モバイル調整 */
@media (max-width: 768px) {
  .clinic-upper-row {
    padding-left: 0px;
    flex-wrap: wrap;
    gap: 8px;
  }

  .clinic-doctor-img {
    width: 100px !important;
  }

  .score-items-row {
    flex-wrap: wrap;
  }

  .clinic-score-section .score-item {
    flex: 0 0 30%;
    border-bottom: 1px solid rgba(255,255,255,0.28);
    padding: 6px 3px !important;
  }

  .clinic-score-section .score-item:nth-child(2n) {
    border-right: none;
  }

  .clinic-score-section .score-item:nth-last-child(-n+2) {
    border-bottom: none;
  }

  .clinic-basic-row {
    flex-wrap: wrap;
  }

  .clinic-basic-item {
    flex: 0 0 30%;
    border-bottom: 1px solid rgba(255,255,255,0.28);
  }

  .clinic-basic-item:nth-child(2n) {
    border-right: none;
  }

  .clinic-basic-item:last-child {
    border-bottom: none;
  }
}

/* タイトル帯: center揃え */
.clinic-score-section > .clinic-section-title,
.clinic-basic-section > .clinic-section-title {
  padding: 5px 10px;
  color: rgba(255,255,255,0.92);
  font-size: 16px;
  font-weight: 700;
  margin: 0;
  text-align: center;
}

/* fv-v4-card-medal 画像サイズ */
.fv-v4-card-medal img {
  width: 44px;
  height: auto;
  display: block;
  margin: 0 auto;
}


/* ===== eval-circle（DMMランク1 総合評価バッジ） ===== */
.eval-circle {
  flex-shrink: 0;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.95) 0%, rgba(255,243,246,0.95) 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-bottom: -10px;
  position: relative;
}

/* PC: エンブレム左右をabsoluteで配置 */
.eval-circle::before {
  content: '';
  position: absolute;
  right: calc(100% + 6px);
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 52px;
  background: url('../images/エンブレム左.png') no-repeat center / contain;
  pointer-events: none;
}
.eval-circle::after {
  content: '';
  position: absolute;
  left: calc(100% + 6px);
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 52px;
  background: url('../images/エンブレム右.png') no-repeat center / contain;
  pointer-events: none;
}

.eval-title {
  display: block;
  font-size: 15px;
  color: #3f3438;
  line-height: 1.4;
}

.eval-score {
  display: block;
  font-size: 25px;
  color: #9e8878;
  font-weight: 700;
  line-height: 1.3;
}

.eval-note {
  display: block;
  font-size: 12px;
  color: #3f3438;
  line-height: 1.4;
}

/* ===== emoji-rank 画像（ボタン・テーブル見出し内） ===== */
.emoji-rank {
  width: 20px;
  height: auto;
  vertical-align: middle;
  margin-right: 3px;
}

.cmp-table th .emoji-rank {
  width: 36px;
  display: block;
  margin: 0 auto 4px;
}

/* ===== final: mobile FV model larger ===== */
@media (max-width: 768px) {
  .fv-v4-subtitle-row {
    min-height: 260px;
    overflow: hidden;
    align-items: flex-end;
  }

  .fv-v4-model-sp {
    display: block;
    position: absolute;
    right: -58%;
    bottom: 0;
    width: 400%;
    max-width: none;
    height: auto;
    object-fit: contain;
    object-position: right bottom;
    z-index: 3;
    -webkit-mask-image: none;
    mask-image: none;
  }
}

/* ===== final: desktop FV model larger ===== */
@media (min-width: 769px) {
  .fv-v4 {
    overflow: hidden;
  }

  .fv-v4-visual {
    height: 710px;
    overflow: hidden;
  }

  .fv-v4-visual .fv-v4-woman {
    right: -10%;
    bottom: 0;
    width: min(100vw, 1450px);
    max-width: none;
    max-height: none;
    object-fit: contain;
    object-position: right bottom;
  }
}

/* ===== final: FV visual fade/blur below subtitle ===== */
.fv-v4-visual::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 450px;
  bottom: 0;
  z-index: 4;
  pointer-events: none;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,250,249,0.72) 42%, rgba(255,255,255,0.96) 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 34%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 54%, #000 100%);
}

@media (max-width: 768px) {
  .fv-v4-subtitle-row::after {
    content: '';
    position: absolute;
    left: -16px;
    right: -16px;
    top: 72px;
    bottom: 0;
    z-index: 4;
    pointer-events: none;
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,250,249,0.68) 44%, rgba(255,255,255,0.94) 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 36%, #000 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 36%, #000 100%);
  }
}

/* ===== final: desktop FV show more lower model ===== */
@media (min-width: 769px) {
  .fv-v4 {
    min-height: 760px;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 80px), 50% 100%, 0 calc(100% - 80px));
    margin-bottom: -80px;
    z-index: 2;
  }

  .fv-v4 + .section.sec-pink {
    padding-top: 148px;
  }

  .fv-v4-visual {
    height: 720px;
  }

  .fv-v4-visual::before {
    top: 315px;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,250,249,0.26) 24%, rgba(255,255,255,0.56) 64%, rgba(255,255,255,0.70) 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.38) 22%, rgba(0,0,0,0.82) 72%, #000 100%);
    mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.38) 22%, rgba(0,0,0,0.82) 72%, #000 100%);
  }
}

/* ===== final: FV ribbon readability ===== */
.fv-ribbon {
  background: rgba(255,255,255,0.3);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  box-shadow: 0 12px 30px rgba(141,112,98,0.10);
}

/* ===== final: desktop FV model bottom stops at side-card top border ===== */
@media (min-width: 769px) {
  .fv-v4-visual .fv-v4-woman {
    bottom: 110px;
    object-position: right bottom;
  }
}

/* ===== PC専用: sec-cream 2本の横線区切りを揃える ===== */
@media (min-width: 981px) {
  .sec-cream .dp-col.good {
    min-height: 291px;
  }
  .sec-cream .dp-col.suit {
    min-height: 253px;
  }
}

/* ===== モバイル優先修正：後置きで高特異度ルールを上書き ===== */
@media (max-width: 768px) {
  /* section-eyebrow: ID付きルールを含め12pxに統一 */
  .section-eyebrow,
  #clinics .section-eyebrow { font-size: 12px; }

  /* section-title: 全セクション固有ルールを24pxに統一 */
  .section-title,
  #clinics .section-title,
  .sec-cream .section-title,
  #compare .section-title { font-size: 24px; }

  /* faq */
  .faq-q { font-size: 16px; }
  .faq-a { font-size: 13px; }

  /* section-lead */
  .section-lead { font-size: 16px; line-height: 1.65; }

  /* flow */
  .flow-title { font-size: 18px; }  
}

/* ===== Mobile: FV model上部表示・テキストオーバーレイ・各調整 ===== */
@media (max-width: 768px) {

  /* 1 & 2: FVレイアウト再構成 */
  .fv-v4-inner {
    display: flex;
    flex-direction: column;
  }

  /* モデル行を最上部へ移動 */
  .fv-v4-subtitle-row {
    order: -1;
    height: 320px;
    min-height: 320px;
    overflow: hidden;
    position: relative;
    margin-bottom: -230px; /* テキストをモデル中央に重ねる */
    align-items: flex-start;
    z-index: 0;
  }

  /* ::after のブラーオーバーレイを無効化 */
  .fv-v4-subtitle-row::after {
    display: none;
  }

  /* 1. モデル画像：上から鼻の位置でクロップ */
  .fv-v4-model-sp {
    position: absolute;
    top: 0;
    left: 50%;
    right: auto;
    bottom: auto;
    transform: translate(-50%, -33%);
    width: 115%;
    object-fit: contain;
    object-position: center top;
    -webkit-mask-image: linear-gradient(to bottom, black 0%, black 65%, transparent 100%);
    mask-image: linear-gradient(to bottom, black 0%, black 65%, transparent 100%);
    z-index: 1;
  }

  /* 2. テキスト群：モデルの上に重ねる */
  .fv-v4-eyebrow,
  .fv-v4-title,
  .fv-drug-section {
    position: relative;
    z-index: 2;
    text-align: center;
  }

  /* 3. what-point-icon を1.5倍（100px → 150px） */
  .fv-v4 + .section.sec-pink .what-point-icon {
    width: 150px;
    height: auto;
  }

  /* 4. sec-cream dtab を2列に固定 */
  section.section:has(+ .cv-section) .drug-tabs {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

/* ===== Mobile追加修正（2026-06-11） ===== */
@media (max-width: 768px) {

  /* 1. FV: fv.png を ::before に移動して model と同様に下透過 */
  .fv-v4-subtitle-row {
    background: none;
  }
  .fv-v4-subtitle-row::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../images/fv.png');
    background-size: cover;
    background-position: center top;
    -webkit-mask-image: linear-gradient(to bottom, black 0%, black 65%, transparent 100%);
    mask-image: linear-gradient(to bottom, black 0%, black 65%, transparent 100%);
    z-index: 0;
    pointer-events: none;
  }

  /* 2. fv-drug-section: 横→縦並び（label上） */
  .fv-drug-section {
    flex-direction: column;
    align-items: center;
    gap: 2px;
  }
  .fv-drug-label {
    white-space: normal;
    text-align: center;
  }
  .fv-drug-text {
    flex: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
  }

  /* 3. cv-clinic-name フォント 20px */
  .cv-clinic-name {
    font-size: 20px;
  }

  /* 4. cv-card::before padding */
  .cv-card::before {
    padding: 6px 24px;
  }

  /* 5. cv-merits li line-height 1.3 */
  .cv-merits li {
    line-height: 1.3;
  }

  /* 6. cv-merits li::before top 0 */
  .cv-merits li::before {
    top: 10px;
  }

  /* 7. cv-others-label 横線を半分（6%） */
  .cv-others-label::before,
  .cv-others-label::after {
    width: 6%;
  }

  /* 8. cv-other-btn padding */
  .cv-other-btn {
    padding: 10px 42px 10px 24px;
  }

  /* 10. #clinics クリニックカード レイアウト変更 */

  /* clinic-upper-row: flex行→flex列 */
  #clinics .clinic-upper-row {
    flex-direction: column;
    gap: 0;
  }

  /* clinic-right-area を先頭（ribbonの右隣）に */
  #clinics .clinic-right-area {
    order: -1;
    width: 100%;
  }

  /* clinic-doctor-img: 全幅で最下部に */
  #clinics .clinic-doctor-img {
    order: 2;
    margin-left: -76px;
    width: calc(100% + 76px) !important;
    max-width: none !important;
    margin-top: 12px;
    margin-bottom: 8px;
    border-radius: 0;
  }

  /* clinic-head: 縦並び（name→position→eval-circle） */
  #clinics .clinic-upper-row .clinic-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  /* eval-circle: PC=縦3行バッジ → モバイル=横1行テキスト */
  #clinics .eval-circle {
    order: 3;
    width: auto;
    height: auto;
    border-radius: 0;
    background: none;
    box-shadow: none;
    flex-direction: row;
    align-items: baseline;
    gap: 4px;
    margin-bottom: 0;
    text-align: left;
  }
  #clinics .eval-title {
    font-size: 14px;
    display: inline;
  }
  #clinics .eval-score {
    font-size: 18px;
    display: inline;
  }
  #clinics .eval-note {
    font-size: 12px;
    display: inline;
  }

  /* モバイル: エンブレムをflexアイテムとして左右に配置（PCのabsoluteを上書き） */
  #clinics .eval-circle::before {
    position: static;
    transform: none;
    right: auto;
    top: auto;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    align-self: center;
  }
  #clinics .eval-circle::after {
    position: static;
    transform: none;
    left: auto;
    top: auto;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    align-self: center;
  }

  /* score-section / basic-section タイトル左寄せ */
  #clinics .clinic-score-section > .clinic-section-title,
  #clinics .clinic-basic-section > .clinic-section-title {
    text-align: left;
    padding-left: 12px;
  }

  /* score-item 中央揃え */
  #clinics .clinic-score-section .score-item {
    align-items: center;
    text-align: center;
    padding-left: 3px !important;
  }

  /* osusume-card を2列 */
  #clinics .osusume-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  #clinics .osusume-card {
    padding: 12px 10px;
  }
  #clinics .osusume-title {
    font-size: 15px;
  }
  #clinics .osusume-desc {
    font-size: 12px;
    line-height: 1.5;
  }

  /* clinic-cta-btn: カード枠内に収める */
  #clinics .clinic-cta-btn {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: 13px;
    padding: 14px 12px;
    gap: 4px;
  }
}

/* ===== Mobile: clinic-card グリッド修正 + score-item / basic-item 2列化 ===== */
@media (max-width: 768px) {
  /* clinic-card を1列グリッドに強制（minmax(220,0.95fr) + minmax(300,1.25fr) の膨張を防ぐ） */
  #clinics .clinic-card {
    grid-template-columns: minmax(0, 1fr);
  }

  /* doctor-img: カード内幅(100%) + 左右パディング分(18px×2)に合わせて端まで広げる */
  #clinics .clinic-doctor-img {
    margin-left: 0px !important;
    width: calc(100%) !important;
  }

  /* score-item 2列 */
  #clinics .score-items-row {
    flex-wrap: wrap;
  }
  #clinics .clinic-score-section .score-item {
    flex: 0 0 50%;
    max-width: 50%;
    box-sizing: border-box;
  }
  #clinics .clinic-score-section .score-item:nth-child(2n) {
    border-right: none;
  }
  #clinics .clinic-score-section .score-item:nth-last-child(-n+2) {
    border-bottom: none;
  }

  /* basic-item 2列 */
  #clinics .clinic-basic-row {
    flex-wrap: wrap;
  }
  #clinics .clinic-basic-item {
    flex: 0 0 50%;
    max-width: 50%;
    box-sizing: border-box;
  }
  #clinics .clinic-basic-item:nth-child(2n) {
    border-right: none;
  }
  #clinics .clinic-basic-item:nth-last-child(-n+2) {
    border-bottom: none;
  }
}

/* ===== Mobile: タスク1 ribbon右配置 / タスク2 basic空きセル非表示 ===== */
@media (max-width: 768px) {
  /* 1. no1-ribbon を absolute でカード左端に固定（grid フローから外す） */
  #clinics .clinic-card.rank1 .no1-ribbon {
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
  }
  /* rank2/3: top padding 28px 分だけ下げてコンテンツ上端に揃える */
  #clinics .clinic-card:not(.rank1) .no1-ribbon {
    position: absolute;
    top: 28px;
    left: 0;
    right: auto;
  }

  /* 1. clinic-head に padding-left で ribbon の右側に clinic-name/position を配置 */
  /* ribbon(72px) - card padding(18px) + gap(8px) = 62px */
  #clinics .clinic-head {
    padding-left: 62px;
  }

  /* 2. basic-row の最後の空きセル（奇数アイテム時の右下）を白で覆う */
  #clinics .clinic-basic-row::after {
    content: '';
    flex: 0 0 50%;
    max-width: 50%;
    background: #ffffff;
    box-sizing: border-box;
  }
}

/* ===== Mobile: clinic-name margin-top / clinic-head gap / score↔doctor 入れ替え ===== */
@media (max-width: 768px) {
  /* 1. clinic-name margin-top 14px */
  #clinics .clinic-name {
    margin-top: 14px;
  }

  /* 2. clinic-head gap を 10px に */
  #clinics .clinic-upper-row .clinic-head {
    gap: 10px;
  }

  /* 3. clinic-score-section ↔ clinic-doctor-img 入れ替え */
  /* display:contents で clinic-right-area の子を clinic-upper-row の直接 flex item に昇格 */
  #clinics .clinic-right-area {
    display: contents;
  }
  /* clinic-head: 1番目 */
  #clinics .clinic-head {
    order: -2;
    width: 100%;
  }
  /* clinic-doctor-img: 2番目（既存 order:2 を上書き） */
  #clinics .clinic-doctor-img {
    order: -1;
  }
  /* clinic-score-section: 3番目 */
  #clinics .clinic-score-section {
    order: 0;
    width: 100%;
  }
}

/* ===== Mobile: osusume-icon 130px / basic-item 区切り線強化 / point-num 上揃え ===== */
@media (max-width: 768px) {
  /* 1. osusume-icon を 130×130px に */
  #clinics .osusume-icon {
    width: 130px;
    height: 130px;
    flex-shrink: 0;
  }
  #clinics .osusume-icon img {
    width: 100px;
    height: 100px;
    object-fit: contain;
  }

  /* 4. clinic-basic-item 縦区切り線・横区切り線（score-item と色統一） */
  #clinics .clinic-basic-item {
    border-right: 1px solid rgba(0,0,0,0.08);
    border-bottom: 1px solid rgba(0,0,0,0.08);
  }
  #clinics .clinic-basic-item:nth-child(2n) {
    border-right: none;
  }
  #clinics .clinic-basic-item:nth-last-child(-n+2) {
    border-bottom: none;
  }
  #clinics .clinic-basic-row::after {
    border-right: none;
    border-bottom: none;
  }

  /* 6. point-num を上揃え */
  #clinics .point-item {
    align-items: flex-start;
  }
}

/* ===== Mobile: rank2/3 上部余白 rank1 に統一 / basic-border色統一 ===== */
@media (max-width: 768px) {
  /* rank2/3 の padding-top を rank1(0px) に合わせ、@media(max-width:640px)の28pxを上書き */
  #clinics .clinic-card:not(.rank1) {
    padding-top: 0;
  }

  /* ribbon top を 28px → 0 に合わせて変更 */
  #clinics .clinic-card:not(.rank1) .no1-ribbon {
    top: 0;
  }
}

/* ===== Mobile: comp-card-title::after アイコン＋フォントサイズ上書き ===== */
/* ベースCSSより後方に配置し、モバイルで確実に上書きする */
@media (max-width: 768px) {
  .comp-card.inject .comp-card-title::after,
  .comp-card.oral .comp-card-title::after {
    font-size: 15px;
    padding: 0 5px;
    background-size: auto 17px, auto 17px;
  }
  .comp-drugs {
    padding: 8px 10px 8px 122px;
    width: 324px;
    height: 76px;
    min-height: unset;
    box-sizing: border-box;
  }
  /* ribbon.png モバイル: PC(48px)の1.5倍 = 54px / 幅 488÷212×54 ≈ 124px */
  .comp-drugs::before {
    width: 124px;
    height: 44px;
  }
  .comp-card.inject .comp-drug-tag {
    font-size: 15px;
  }
  .comp-card.oral .comp-drug-tag {
    font-size: 20px;
  }
}


/* ===================================================
   オンライン診療 安全性ヒーローセクション (.trust-hero-section)
   =================================================== */

  .trust-hero-section {
    background: #5a5a5a;
    position: relative;
    z-index: 2;
    padding: 44px 20px 100px;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 52px), 50% 100%, 0 calc(100% - 52px));
    overflow: hidden;
    margin-top: -2px;
  }

  .trust-hero-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('../images/back.png') left center / auto 100vh no-repeat fixed;
    opacity: 0.15;
    z-index: 0;
    pointer-events: none;
  }

/* ===================================================
   オンライン診療 安全性セクション (.sec-trust)
   =================================================== */

  .sec-trust {
    background: linear-gradient(180deg, #fff 0%, #fff7f8 100%);
  }

  /* ----- ヒーロー（trust-hero-section内） ----- */
  .trust-hero {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 14px;
    position: relative;
    z-index: 3;
    max-width: 440px;
    margin: 0 auto;
  }

  .trust-hero-img {
    flex-shrink: 0;
    width: 130px;
    height: 170px;
    overflow: hidden;
  }

  .trust-hero-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
    display: block;
    mask-image: linear-gradient(to bottom, black 65%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 65%, transparent 100%);
  }

  .trust-bubbles {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
  }

  .trust-bubble {
    background: rgba(255,255,255,0.12);
    padding: 10px 14px;
    font-size: 20px;
    font-weight: 700;
    color: #ffd700;
    line-height: 1.6;
    position: relative;
  }



  /* ----- メインコピー ----- */
  .trust-copy {
    text-align: center;
    margin-bottom: 24px;
  }

  .trust-reassure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-size: 20px;
    font-weight: 700;
    color: #9e8878;
    letter-spacing: 0.18em;
    margin-bottom: 10px;
  }

  .trust-reassure-icon {
    width: 20px;
    height: 20px;
    object-fit: contain;
    display: inline-block;
    flex-shrink: 0;
  }

  .trust-heading {
    font-family: 'Noto Serif JP', serif;
    font-size: 22px;
    font-weight: 900;
    color: #4a3933;
    line-height: 1.7;
  }

  .trust-hl {
    font-style: normal;
    color: #d9257a;
    font-size: 26px;
  }

  /* ----- 法律バナー＋2項目 統合ブロック ----- */
  .trust-law-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: white;
    border-radius: 14px;
    padding: 20px 16px;
    box-shadow: 0 4px 14px rgba(90,67,75,0.08);
    margin-bottom: 24px;
  }

  .trust-law-left {
    display: flex;
    align-items: center;
    gap: 14px;
  }

  .trust-law-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #e84c9e, #d9257a);
    color: white;
    border-radius: 32px;
    padding: 12px 12px;
    min-width: 54px;
    flex-shrink: 0;
  }

  .trust-law-year {
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
  }

  .trust-law-month {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.1;
  }

  .trust-law-text {
    font-size: 18px;
    font-weight: 700;
    color: #4a3933;
    line-height: 1.7;
  }

  .trust-law-strong {
    font-style: normal;
    color: #d9257a;
    font-size: 25px;
    font-weight: 900;
  }

  .trust-law-center {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding: 8px 0;
  }

  .trust-law-building {
    width: 110px;
    height: auto;
    object-fit: contain;
    display: block;
  }

  .trust-law-items {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .trust-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
  }

  .trust-item-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
  }

  .trust-item-icon img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    display: block;
  }

  .trust-item-title {
    font-size: 18px;
    font-weight: 900;
    color: #4a3933;
    margin-bottom: 5px;
  }

  .trust-item-desc {
    font-size: 15px;
    color: #6a5a53;
    line-height: 1.75;
  }

  .trust-pink {
    color: #d9257a;
    font-weight: 700;
  }

  /* ----- 過去の話 ----- */
  .trust-past {
    border-radius: 12px;
    color: #4a3933;
    text-align: center;
    padding: 18px 20px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 36px;
  }

  .trust-past em {
    font-style: normal;
    font-size: 20px;
    font-weight: 900;
    display: inline-block;
    position: relative;
  }
  .trust-past em::before {
    content: '';
    position: absolute;
    left: -8px;
    right: -8px;
    bottom: -4px;
    height: 18px;
    background: url('../images/label.png') center / 100% 100% no-repeat;
    pointer-events: none;
    z-index: -1;
  }

  /* ----- メリット ----- */
  .trust-merits {
    margin-bottom: 28px;
  }

  .trust-merits-title {
    text-align: center;
    font-size: 18px;
    font-weight: 900;
    color: #4a3933;
    letter-spacing: 0.05em;
    margin-bottom: 16px;
  }

  .trust-merit-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    position: relative;
    margin-bottom: 28px;
  }

  .trust-merit-grid .flow-line {
    top: 52px;
    left: 25%;
    right: 25%;
  }

  .trust-merit-grid .flow-icon img {
    width: 80px;
    height: 80px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
  }

/* ===== PC: sec-trust レイアウト調整 ===== */
@media (min-width: 769px) {
  .trust-hero-section {
    padding: 56px 32px 130px;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 70px), 50% 100%, 0 calc(100% - 70px));
  }

  .trust-hero {
    justify-content: center;
    gap: 48px;
    max-width: 800px;
  }

  .trust-hero-img {
    width: 240px;
    height: 280px;
  }

  .trust-bubble {
    font-size: 30px;
    padding: 12px 18px;
  }


  .trust-heading {
    font-size: 32px;
  }

  .trust-hl {
    font-size: 38px;
  }

  .trust-reassure {
    font-size: 30px;
  }

  .trust-reassure-icon {
    width: 30px;
    height: 30px;
  }

  .trust-law-block {
    flex-direction: row;
    align-items: center;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 24px;
    gap: 0;
    padding: 20px 24px;
  }

  .trust-law-left {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    min-width: 160px;
    flex: 0 0 auto;
    gap: 10px;
    padding-right: 16px;
  }

  .trust-law-center {
    flex: 0 0 auto;
    padding: 0 12px;
    align-self: flex-end;
  }

  .trust-law-building {
    width: 120px;
  }

  .trust-law-items {
    flex: 1;
    flex-direction: column;
    gap: 12px;
    padding-left: 16px;
  }

  .trust-item {
    flex: 1;
  }

  .trust-past {
    font-size: 18px;
  }

  .trust-past em {
    font-size: 24px;
  }

  .trust-merit-grid {
    max-width: 700px;
    margin: 0 auto 28px;
  }

  .trust-merit-grid .flow-icon img {
    width: 100px;
    height: 100px;
  }

}

/* ===== Mobile: cv-wave-bottom 用 padding 確保 ===== */
@media (max-width: 768px) {
  .cv-section:has(.cv-wave-bottom) {
    padding-bottom: 140px;
  }

  .cv-wave-bottom {
    height: 60px;
  }
}

/* ===== trust-merit-imgs: icon15/16 横並び ===== */
.trust-merit-imgs {
  display: flex;
  gap: 100px;
  justify-content: center;
  align-items: flex-start;
  margin-bottom: 28px;
}
.trust-merit-imgs img {
  width: 48%;
  max-width: 354px;
  height: auto;
  display: block;
}
@media (max-width: 768px) {
  /* trust-merit-imgs: 上下表示 */
  .trust-merit-imgs {
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }
  .trust-merit-imgs img {
    width: 80%;
    max-width: 320px;
  }

  /* trust-bubble: <br>を無視して自然折り返し */
  .trust-bubble br {
    display: none;
  }
}

/* ===== sp-only: モバイルのみ表示する改行 ===== */
.sp-only { display: none; }
@media (max-width: 768px) {
  .sp-only { display: block; }
}

/* ===== Mobile: cv-section の fv_model を非表示 ===== */
@media (max-width: 768px) {
  .cv-section .cv-model {
    display: none;
  }
}

/* ===== Mobile: sec-cream drug-panel をタブ選択時のみ表示 ===== */
@media (max-width: 768px) {
  .sec-cream .drug-panel,
  .sec-cream .drug-tabs ~ .drug-panel {
    display: none !important;
    width: 100%;
    margin-right: 0;
  }
  .sec-cream .drug-panel.active {
    display: block !important;
    margin-bottom: 0;
  }
}

/* ===== Mobile: CV直前セクションのdrug-tabs 選択時カラー反転 ===== */
@media (max-width: 768px) {
  section.section:has(+ .cv-section) .dtab.active {
    background: #9a7355 !important;
    color: #fff !important;
    border-color: #9a7355 !important;
    box-shadow: 0 7px 18px rgba(90,67,75,0.15) !important;
  }
  section.section:has(+ .cv-section) .dtab.active::before {
    background: #fff !important;
    color: #9a7355 !important;
  }
  section.section:has(+ .cv-section) .dtab.active small {
    color: rgba(255,255,255,0.85) !important;
  }
}

/* ===== PC: fv-drug-text 左余白150px・横一列固定 ===== */
@media (min-width: 769px) {
  .fv-drug-text {
    padding-left: 150px;
    flex-wrap: nowrap;
  }
  .fv-drug-text .fv-v4-tag {
    white-space: nowrap;
  }
}

