    /* ============================================
       Reset & Base
       ============================================ */
    .lp-reform-service *, .lp-reform-service *::before, .lp-reform-service *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }

    /* ============================================
       Design Tokens
       ============================================ */
    :root {
      --color-white: #FFFFFF;
      --color-bg: #FBF9F4;
      --color-gray-light: #F4F0E8;
      --color-gray-mid: #E4DED2;
      --color-gray-text: #999999;
      --color-text: #333333;
      --color-text-light: #666666;
      --color-gold: #C2A063;
      --color-gold-light: #D4B76A;
      --color-gold-bg: #F6F1E8;
      --color-blush: #F7E6E6;
      --color-black: #1A1A1A;
      --font-ja: "Noto Sans JP", "Yu Gothic", "YuGothic", "Hiragino Sans", sans-serif;
      --font-ja-serif: "Noto Serif JP", "Yu Mincho", serif;
      --font-en: "Playfair Display", "Times New Roman", serif;
      --font-en-sans: "Jost", sans-serif;
      --container-width: 1100px;
      --transition-base: 0.3s ease;
      --transition-slow: 0.6s ease;
    }

    .lp-reform-service {
      font-family: var(--font-ja);
      font-weight: 300;
      font-size: 18px;
      line-height: 1.8;
      color: var(--color-text);
      background-color: var(--color-white);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    .lp-reform-service a { color: inherit; text-decoration: none; transition: color var(--transition-base); }
    .lp-reform-service a:hover { color: var(--color-gold); }
    .lp-reform-service img { max-width: 100%; height: auto; display: block; }

    .lp-reform-service .container {
      max-width: var(--container-width);
      margin: 0 auto;
      padding: 0 40px;
    }

    /* ============================================
       Placeholder Image
       ============================================ */
    .placeholder-img {
      /* background: linear-gradient(135deg, #E8E4DF 0%, #D8D3CC 100%); */
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }
    .placeholder-img img {
      object-fit: cover;
      width: 100%;
      height: 100%;
    }
    /* <picture> を箱から外し、中の img を .placeholder-img 直下の flex 子にして全面を覆わせる */
    .placeholder-img picture { display: contents; }
    .placeholder-img::after {
      content: "PHOTO";
      font-family: var(--font-en-sans);
      font-size: 14px;
      letter-spacing: 0.2em;
      color: var(--color-gold);
      opacity: 0.4;
      display: none;
    }

    /* ============================================
       Note / Tag UI
       ============================================ */
    .note {
      display: inline-block;
      background-color: #FFF9E6;
      border: 1px solid #F0E6C0;
      padding: 4px 12px;
      font-size: 14px;
      color: #8B7A4A;
      line-height: 1.6;
      margin-top: 8px;
      display: none;
    }
    .tag-required {
      display: inline-block;
      background-color: #FFF0F0;
      border: 1px solid #E8C0C0;
      color: #A05050;
      font-size: 10px;
      font-weight: 500;
      padding: 2px 8px;
      letter-spacing: 0.05em;
      margin-left: 4px;
      vertical-align: middle;
    }
    .tag-temp {
      display: inline-block;
      background-color: #F0F0F0;
      border: 1px solid #D0D0D0;
      color: #888888;
      font-size: 10px;
      font-weight: 500;
      padding: 2px 8px;
      letter-spacing: 0.05em;
      margin-left: 4px;
      vertical-align: middle;
    }

    /* ============================================
       Section Header
       ============================================ */
    .section-header {
      text-align: center;
      margin-bottom: 56px;
    }
    .section-header__en {
      font-family: var(--font-en);
      font-size: 32px;
      font-weight: 400;
      letter-spacing: 0.12em;
      color: var(--color-black);
      display: block;
      line-height: 1.2;
      margin-bottom: 8px;
    }
    .section-header__ja {
      font-family: var(--font-ja);
      font-size: 14px;
      letter-spacing: 0.1em;
      color: var(--color-gray-text);
      display: block;
    }
    .section-header__line {
      display: block;
      width: 40px;
      height: 1px;
      background-color: var(--color-gold);
      margin: 16px auto 0;
    }

    /* ============================================
       Hero (B) — photo + vertical copy + floating promo
       ============================================ */
    .lp2-hero {
      position: relative;
      width: 100%;
    }
    .lp2-hero__media {
      position: relative;
      width: 100%;
      height: 80vh;
      min-height: 460px;
      max-height: 760px;
      overflow: hidden;
    }
    .lp2-hero__media .placeholder-img {
      width: 100%;
      height: 100%;
    }
    .lp2-hero__copy {
      position: absolute;
      bottom: 80px;
      left: 60px;
      top: auto;
      right: auto;
      z-index: 2;
      writing-mode: horizontal-tb;
      font-family: var(--font-ja-serif);
      font-weight: 400;
      font-size: clamp(32px, 3.6vw, 48px); /* c-hero__copyにQ数を合わせる */
      line-height: 1.45;
      letter-spacing: 0.2em;
      color: var(--color-white);
      text-shadow: 0 0 8px rgba(0,0,0,0.8);
    }
    .lp2-hero__scroll {
      position: absolute;
      bottom: 28px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
    }
    .lp2-hero__scroll-line { width: 1px; height: 44px; background-color: var(--color-white); }
    .lp2-hero__scroll-text {
      font-family: var(--font-en);
      font-style: italic;
      font-size: 14px;
      letter-spacing: 0.25em;
      color: var(--color-white);
    }
    .lp2-hero__note { position: absolute; left: 16px; bottom: 16px; z-index: 3; }

    /* Promo — fixed split-wipe button */
    .lp2-hero__promo {
      position: fixed;
      right: 24px;
      bottom: 24px;
      z-index: 200;
      width: 260px;
      height: 60px;
      background-color: #FAEAE8;
      box-shadow: 0 4px 18px rgba(61,51,43,0.18);
      overflow: hidden;
      isolation: isolate;
    }
    .lp2-hero__promo-link {
      position: relative;
      z-index: 1;
      display: block;
      width: 100%;
      height: 100%;
      color: var(--color-text);
      cursor: pointer;
    }
    .lp2-hero__promo-text {
      position: relative;
      z-index: 1;
      display: block;
      padding-left: 28px;
      color: var(--color-text);
      font: 500 12px/60px var(--font-ja);
      letter-spacing: 0.12em;
      transition: color 0.35s ease;
    }
    .lp2-hero__promo-line {
      position: absolute;
      right: 18px;
      top: 50%;
      z-index: 1;
      width: 48px;
      height: 1px;
      background: var(--color-text);
      transform: scaleX(0.25);
      transform-origin: right center;
      transition: transform 0.35s ease, background-color 0.35s ease;
    }
    .lp2-hero__promo::before,
    .lp2-hero__promo::after {
      content: "";
      position: absolute;
      width: 0;
      height: 50%;
      background-color: var(--color-white);
      transition: width 0.4s cubic-bezier(0.785,0.135,0.15,0.86);
    }
    .lp2-hero__promo::before { top: 0; left: 0; }
    .lp2-hero__promo::after { bottom: 0; right: 0; }
    .lp2-hero__promo:hover::before { width: 100%; left: auto; right: 0; }
    .lp2-hero__promo:hover::after { width: 100%; right: auto; left: 0; }
    .lp2-hero__promo:hover .lp2-hero__promo-line {
      transform: scaleX(1);
    }

    /* ============================================
       Intro
       ============================================ */
    .lp2-intro {
      padding: 100px 0 90px;
      background-color: var(--color-white);
      text-align: center;
    }
    .lp2-intro__inner {
      max-width: 760px;
      margin: 0 auto;
      padding: 0 40px;
    }
    .lp2-intro__heading {
      font-family: var(--font-ja-serif);
      font-weight: 400;
      font-size: clamp(24px, 2.4vw, 32px);
      letter-spacing: 0.16em;
      line-height: 1.6;
      color: var(--color-text);
    }
    .lp2-intro__label {
      font-family: var(--font-ja);
      font-size: 14px;
      letter-spacing: 0.18em;
      color: var(--color-gray-text);
      margin-top: 16px;
    }
    .lp2-intro__line {
      display: block;
      width: 40px;
      height: 1px;
      background-color: var(--color-gold);
      margin: 20px auto 0;
    }
    .lp2-intro__body { margin-top: 48px; }
    .lp2-intro__body p {
      font-size: 18px;
      line-height: 2.4;
      letter-spacing: 0.08em;
      color: var(--color-text-light);
    }
    .lp2-intro__body p:first-child {
      font-size: 18px;
      line-height: 2.2;
      color: var(--color-text);
    }
    .lp2-intro__body p + p { margin-top: 32px; }

    /* ============================================
       Beauty (美しく、今の私へ) — Before / After
       ============================================ */
    .lp2-beauty {
      padding: 0 0 100px;
      background-color: #FFF;
    }
    .lp2-beauty__inner {
      max-width: var(--container-width);
      margin: 0 auto;
      padding: 80px 40px;
      background-color: #FBFAFA;
    }
    .lp2-beauty__pc-image {
      display: none;
    }
    .lp2-beauty--pc-image .lp2-beauty__inner {
      padding: 0;
      background-color: transparent;
    }
    .lp2-beauty--pc-image .lp2-beauty__pc-image {
      display: block;
    }
    .lp2-beauty--pc-image .lp2-beauty__pc-image img {
      display: block;
      width: 100%;
      height: auto;
    }
    .lp2-beauty--pc-image .lp2-beauty__sp-content {
      display: none;
    }
    .lp2-beauty .gold { color: var(--color-gold); }
    .lp2-beauty__head { text-align: center; }
    .lp2-beauty__eyebrow {
      font-family: var(--font-ja-serif);
      font-size: 18px;
      letter-spacing: 0.2em;
      color: var(--color-text);
      margin-bottom: 1rem;
    }
    .lp2-beauty__heading {
      font-family: var(--font-ja-serif);
      font-weight: 500;
      font-size: clamp(24px, 2.8vw, 40px);
      letter-spacing: 0.15em;
      line-height: 1.3;
      color: var(--color-text);
      /* margin-top: 14px; */
    }
    .lp2-beauty__heading .gold { font-size: 1.45em; }
    .lp2-beauty__ornament {
      display: block;
      width: 30px;
      height: 10px;
      margin: 18px auto 0;
      background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjkiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAyOSAxMCI+CiAgPGRlZnM+CiAgICA8Y2xpcFBhdGggaWQ9ImNsaXAtcGF0aCI+CiAgICAgIDxyZWN0IHdpZHRoPSIyOSIgaGVpZ2h0PSIxMCIgZmlsbD0ibm9uZSIvPgogICAgPC9jbGlwUGF0aD4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoLTIiPgogICAgICA8cmVjdCBpZD0i6ZW35pa55b2iXzIxMzEyIiBkYXRhLW5hbWU9IumVt+aWueW9oiAyMTMxMiIgd2lkdGg9IjciIGhlaWdodD0iNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC4xOTgpIiBmaWxsPSIjNmE1YzQ5Ii8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KICA8ZyBpZD0i44Oq44OU44O844OI44Kw44Oq44OD44OJXzE3IiBkYXRhLW5hbWU9IuODquODlOODvOODiOOCsOODquODg+ODiSAxNyIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aCkiPgogICAgPGcgaWQ9IuOCsOODq+ODvOODl183NDY5MSIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNzQ2OTEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuMTMxKSI+CiAgICAgIDxnIGlkPSLjgrDjg6vjg7zjg5dfNzQ2OTAiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDc0NjkwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMuMzI4KSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aC0yKSI+CiAgICAgICAgPHBhdGggaWQ9IuODkeOCuV8xMTciIGRhdGEtbmFtZT0i44OR44K5IDExNyIgZD0iTTMuMzgsNi43NTlhLjEuMSwwLDAsMS0uMS0uMDg0LDQuMjQ5LDQuMjQ5LDAsMCwwLS45LTIuMyw0LjI0OCw0LjI0OCwwLDAsMC0yLjMtLjkuMS4xLDAsMCwxLDAtLjIsNC4yNDksNC4yNDksMCwwLDAsMi4zLS45LDQuMjQ5LDQuMjQ5LDAsMCwwLC45LTIuMy4xLjEsMCwwLDEsLjIsMCw0LjI0OSw0LjI0OSwwLDAsMCwuOSwyLjMsNC4yNDksNC4yNDksMCwwLDAsMi4zLjkuMS4xLDAsMCwxLDAsLjIsNC4yNDksNC4yNDksMCwwLDAtMi4zLjksNC4yNDksNC4yNDksMCwwLDAtLjksMi4zLjEuMSwwLDAsMS0uMS4wODQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wNDQpIiBmaWxsPSIjNmE1YzQ5Ii8+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSLjgrDjg6vjg7zjg5dfNzQ2OTEtMiIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNzQ2OTEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExIC0wLjEzMSkiPgogICAgICA8ZyBpZD0i44Kw44Or44O844OXXzc0NjkwLTIiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDc0NjkwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMuMzI4KSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aC0yKSI+CiAgICAgICAgPHBhdGggaWQ9IuODkeOCuV8xMTctMiIgZGF0YS1uYW1lPSLjg5HjgrkgMTE3IiBkPSJNMy4zOCw2Ljc1OWEuMS4xLDAsMCwxLS4xLS4wODQsNC4yNDksNC4yNDksMCwwLDAtLjktMi4zLDQuMjQ4LDQuMjQ4LDAsMCwwLTIuMy0uOS4xLjEsMCwwLDEsMC0uMiw0LjI0OSw0LjI0OSwwLDAsMCwyLjMtLjksNC4yNDksNC4yNDksMCwwLDAsLjktMi4zLjEuMSwwLDAsMSwuMiwwLDQuMjQ5LDQuMjQ5LDAsMCwwLC45LDIuMyw0LjI0OSw0LjI0OSwwLDAsMCwyLjMuOS4xLjEsMCwwLDEsMCwuMiw0LjI0OSw0LjI0OSwwLDAsMC0yLjMuOSw0LjI0OSw0LjI0OSwwLDAsMC0uOSwyLjMuMS4xLDAsMCwxLS4xLjA4NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjA0NCkiIGZpbGw9IiM2YTVjNDkiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9IuOCsOODq+ODvOODl183NDY5MS0zIiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA3NDY5MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjIgLTAuMTMxKSI+CiAgICAgIDxnIGlkPSLjgrDjg6vjg7zjg5dfNzQ2OTAtMyIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNzQ2OTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMy4zMjgpIiBjbGlwLXBhdGg9InVybCgjY2xpcC1wYXRoLTIpIj4KICAgICAgICA8cGF0aCBpZD0i44OR44K5XzExNy0zIiBkYXRhLW5hbWU9IuODkeOCuSAxMTciIGQ9Ik0zLjM4LDYuNzU5YS4xLjEsMCwwLDEtLjEtLjA4NCw0LjI0OSw0LjI0OSwwLDAsMC0uOS0yLjMsNC4yNDgsNC4yNDgsMCwwLDAtMi4zLS45LjEuMSwwLDAsMSwwLS4yLDQuMjQ5LDQuMjQ5LDAsMCwwLDIuMy0uOSw0LjI0OSw0LjI0OSwwLDAsMCwuOS0yLjMuMS4xLDAsMCwxLC4yLDAsNC4yNDksNC4yNDksMCwwLDAsLjksMi4zLDQuMjQ5LDQuMjQ5LDAsMCwwLDIuMy45LjEuMSwwLDAsMSwwLC4yLDQuMjQ5LDQuMjQ5LDAsMCwwLTIuMy45LDQuMjQ5LDQuMjQ5LDAsMCwwLS45LDIuMy4xLjEsMCwwLDEtLjEuMDg0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDQ0KSIgZmlsbD0iIzZhNWM0OSIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K") center / contain no-repeat;
    }
    .lp2-beauty__lead {
      text-align: center;
      font-family: var(--font-ja-serif);
      font-weight: 500;
      font-size: 18px;
      letter-spacing: 0.1em;
      color: var(--color-text-light);
      margin-top: 28px;
      line-height: 2;
    }
    .lp2-beauty__ring {
      width: 168px;
      margin: 40px auto 0;
    }
    .lp2-beauty__ring .placeholder-img {
      width: 100%;
      aspect-ratio: 1 / 1;
    }
    .lp2-beauty__tagline {
      text-align: center;
      font-family: var(--font-ja-serif);
      font-size: clamp(16px, 1.8vw, 24px);
      font-weight: 500;
      letter-spacing: 0.1em;
      color: var(--color-text);
      /* margin-top: 30px; */
    }
    .lp2-beauty__items {
      /* display: flex;
      justify-content: center;
      gap: 28px; */
      max-width: 380px;
      margin: 24px auto 0;
    }
    .lp2-beauty__items .placeholder-img {
      width: 96px;
      aspect-ratio: 1 / 1;
    }

    /* Before / After card */
    .ba-card {
      display: grid;
      grid-template-columns: 0.85fr auto 1.75fr;
      align-items: stretch;
      background-color: var(--color-white);
      width: 800px;
      max-width: 100%;
      margin: 48px auto 0;
      border: 1px solid #E5DBC8;
    }
    .ba-card__before {
      background-color: #F6F3F0;
      padding: 24px;
      text-align: center;
    }
    .ba-card__after { padding: 24px; }
    .ba-card__label {
      font-family: var(--font-en);
      font-style: italic;
      font-size: 18px;
      letter-spacing: 0.06em;
      color: var(--color-gold);
      display: block;
      text-align: left;
    }
    .ba-card__before .ba-card__img { width: 130px; margin: 18px auto; }
    .ba-card__img .placeholder-img { width: 100%; aspect-ratio: 1 / 1; }
    .ba-card__caption {
      font-family: var(--font-ja-serif);
      font-size: 14px;
      font-weight: 500;
      line-height: 1.8;
      color: var(--color-text-light);
    }
    .ba-card__arrow {
      align-self: center;
      justify-self: center;
      width: 22px;
      height:72px;
      background: linear-gradient(90deg, #F7F1E1 0%, #C8A458 100%);
      clip-path: polygon(0 0, 100% 50%, 0 100%);
    }
    .ba-card__after-grid {
      display: grid;
      grid-template-columns: 1fr 1.15fr;
      gap: 28px;
      align-items: center;
      margin-top: 14px;
    }
    .ba-card__desc {
      font-family: var(--font-ja-serif);
      font-weight: 500;
      font-size: 18px;
      line-height: 1.9;
      color: var(--color-text-light);
    }
    .ba-card__checks { list-style: none; margin-top: 16px; }
    .ba-card__checks li {
      position: relative;
      padding-left: 22px;
      font-size: 18px;
      line-height: 1.9;
      color: var(--color-text-light);
      font-family: var(--font-ja-serif);
      font-weight: 500;
    }
    .ba-card__checks li::before {
      content: "✓";
      position: absolute;
      left: 0;
      color: var(--color-gold);
    }
    .lp2-beauty__closing { text-align: center; margin-top: 64px; }
    .lp2-beauty__closing-main {
      font-family: var(--font-ja-serif);
      font-size: clamp(16px, 2vw, 24px);
      font-weight: 500;
      letter-spacing: 0.1em;
      color: var(--color-text);
    }
    .lp2-beauty__closing-sub {
      display: inline-block;
      font-family: var(--font-ja-serif);
      font-weight: 500;
      font-size: 14px;
      letter-spacing: 0.08em;
      color: var(--color-text-light);
      margin-top: 12px;
      padding: 0 22px;
      position: relative;
    }
    .lp2-beauty__closing-sub::before,
    .lp2-beauty__closing-sub::after {
      content: "";
      position: absolute;
      top: 50%;
      width: clamp(40px, 10vw, 120px);
      height: 1px;
      background-color: var(--color-gray-mid);
    }
    .lp2-beauty__closing-sub::before { right: 100%; }
    .lp2-beauty__closing-sub::after { left: 100%; }

    /* ============================================
       Before/After Cases
       ============================================ */
    .lp2-cases {
      padding: 100px 0;
      background-color: var(--color-gray-light);
    }
    .lp2-cases__inner {
      max-width: var(--container-width);
      margin: 0 auto;
      padding: 0 40px;
    }
    .lp2-cases__list {
      display: flex;
      flex-direction: column;
      gap: 56px;
    }
    .case-item {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 24px;
      align-items: center;
      background-color: var(--color-white);
      padding: 48px 48px 40px;
    }
    .case-item__label {
      font-family: var(--font-en-sans);
      font-size: 14px;
      letter-spacing: 0.15em;
      color: var(--color-gray-text);
      text-align: center;
      margin-bottom: 12px;
    }
    .case-item__photo .placeholder-img {
      width: 100%;
      aspect-ratio: 1 / 1;
    }
    .case-item__arrow {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
    }
    .case-item__arrow-icon {
      width: 48px;
      height: 48px;
      border: 1px solid var(--color-gold);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .case-item__arrow-icon::after {
      content: "→";
      font-family: var(--font-en-sans);
      font-size: 18px;
      color: var(--color-gold);
    }
    .case-item__info {
      grid-column: 1 / -1;
      text-align: center;
      padding-top: 28px;
    }
    .case-item__title {
      font-size: 18px;
      font-weight: 400;
      color: var(--color-black);
      letter-spacing: 0.06em;
      margin-bottom: 4px;
    }
    .case-item__desc {
      font-size: 18px;
      color: var(--color-text-light);
      line-height: 1.8;
    }
    .case-item__price {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: 1fr 1fr;
      /* margin-top: 28px; */
      background-color: var(--color-bg);
    }
    .case-item__price-col {
      padding: 22px 24px;
      text-align: center;
    }
    .case-item__price-col:first-child {
      border-right: 1px solid var(--color-gray-mid);
    }
    .case-item__price-type {
      font-size: 18px;
      letter-spacing: 0.04em;
      color: var(--color-text-light);
    }
    .case-item__price-value {
      font-size: 18px;
      letter-spacing: 0.04em;
      color: var(--color-text);
      /* margin-top: 4px; */
    }

    .case-item__note {
    font-size: 10px;
    letter-spacing: 0.04em;
    color: var(--color-text-light);
    list-style: none;
    margin: 10px 5px;
    line-height: 1.45;
}

    /* ============================================
       Flow Section (5 Steps)
       ============================================ */
    .lp2-flow {
      padding: 100px 0;
      background-color: var(--color-white);
    }
    .lp2-flow__inner {
      max-width: 800px;
      margin: 0 auto;
      padding: 0 40px;
    }
    .flow-list {
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .flow-step {
      display: grid;
      grid-template-columns: 120px 1fr;
      gap: 32px;
      padding: 48px 0;
      border-bottom: 1px solid var(--color-gray-mid);
      align-items: start;
    }
    .flow-step:first-child { padding-top: 0; }
    .flow-step:last-child { border-bottom: none; }
    .flow-step__visual {
      text-align: center;
    }
    .flow-step__number {
      font-family: var(--font-en);
      font-size: 48px;
      font-weight: 300;
      color: var(--color-gold);
      opacity: 0.5;
      line-height: 1;
      display: block;
      margin-bottom: 12px;
    }
    .flow-step__icon .placeholder-img {
      width: 80px;
      height: 80px;
      border-radius: 50%;
      margin: 0 auto;
    }
    .flow-step__title {
      font-size: 18px;
      font-weight: 400;
      color: var(--color-black);
      letter-spacing: 0.06em;
      margin-bottom: 12px;
    }
    .flow-step__text {
      font-size: 18px;
      line-height: 2;
      color: var(--color-text-light);
      text-align: justify;
    }
    .flow-step__note{
      font-size: 10px;
      margin-top: 10px;
      line-height: 1.75;
      color: var(--color-text-light);
    }

    /* ============================================
       Pricing Section
       ============================================ */
    .lp2-pricing {
      padding: 100px 0;
      background-color: var(--color-gray-light);
    }
    .lp2-pricing__inner {
      max-width: var(--container-width);
      margin: 0 auto;
      padding: 0 40px;
    }
    .lp2-pricing__lead {
      max-width: 760px;
      margin: 0 auto 48px;
      text-align: center;
      font-size: 18px;
      line-height: 2.2;
      color: var(--color-text-light);
    }
    .lp2-pricing__cards {
      max-width: 1020px;
      margin: 0 auto 64px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
    }
    .lp2-pricing-card {
      position: relative;
      aspect-ratio: 496 / 402;
      overflow: hidden;
      background-color: var(--color-black);
    }
    .lp2-pricing-card::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      background: rgba(21, 18, 16, 0.48);
    }
    .lp2-pricing-card__image {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .lp2-pricing-card__content {
      position: absolute;
      inset: 0;
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      color: var(--color-white);
      transform: translateY(8px);
    }
    .lp2-pricing-card__en {
      font-family: var(--font-en-sans);
      font-size: 14px;
      line-height: 1.5;
      letter-spacing: 0.16em;
      display: block;
      margin-bottom: 12px;
    }
    .lp2-pricing-card__title {
      font-size: 24px;
      font-weight: 400;
      line-height: 1.5;
      letter-spacing: 0.08em;
    }
    .lp2-pricing-card__line {
      width: 40px;
      height: 1px;
      margin: 50px 0 54px;
      background-color: rgba(255, 255, 255, 0.88);
    }
    .lp2-pricing-card__text {
      font-size: 18px;
      line-height: 1.8;
      letter-spacing: 0.08em;
      min-height: 5.4em;
    }
    .lp2-pricing__note {
      text-align: center;
      font-size: 14px;
      line-height: 2;
      color: var(--color-text-light);
    }
    .lp2-pricing__note p {
      margin-bottom: 4px;
    }

    /* ============================================
       Event Section
       ============================================ */
    .lp2-event {
      padding: 100px 0;
      background-color: var(--color-white);
    }
    .lp2-event__inner {
      max-width: var(--container-width);
      margin: 0 auto;
      padding: 0 40px;
    }
    .lp2-event__body {
      max-width: 700px;
      margin: 0 auto;
      text-align: center;
    }
    .lp2-event__text {
      font-size: 18px;
      line-height: 2.2;
      color: var(--color-text-light);
      margin-bottom: 32px;
    }
    .event-box {
      background-color: var(--color-gray-light);
      border: 1px solid var(--color-gray-mid);
      padding: 40px;
      text-align: center;
    }
    .event-box__title {
      font-size: 18px;
      font-weight: 400;
      color: var(--color-black);
      margin-bottom: 12px;
    }
    .event-box__text {
      font-size: 18px;
      color: var(--color-text-light);
      line-height: 1.8;
    }

    /* ============================================
       CTA Section (LP2)
       ============================================ */
    .lp2-cta {
      padding: 110px 0 120px;
      background-color: var(--color-gray-light);
    }
    .lp2-cta__inner {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 40px;
      text-align: center;
    }
    .lp2-cta__title {
      font-size: 24px;
      font-weight: 400;
      letter-spacing: 0.08em;
      color: var(--color-text-light);
      margin-bottom: 70px;
    }
    .lp2-cta__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 16px;
      max-width: 740px;
      margin: 0 auto;
    }
    .lp2-cta__card {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      min-height: 290px;
      padding: 42px 32px 38px;
      border: 1px solid var(--color-gold);
      background-color: var(--color-white);
      color: var(--color-text-light);
      transition: color var(--transition-base), border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);
    }
    .lp2-cta__card:hover {
      color: var(--color-gold);
      border-color: var(--color-gold-light);
      transform: translateY(-4px);
      box-shadow: 0 18px 40px rgba(66, 61, 54, 0.08);
    }
    .lp2-cta__card-en {
      font-family: var(--font-en-sans);
      font-size: 14px;
      line-height: 1.5;
      letter-spacing: 0.22em;
      color: inherit;
      transition: color var(--transition-base);
    }
    .lp2-cta__card-title {
      margin-top: 12px;
      font-size: 24px;
      font-weight: 400;
      line-height: 1.5;
      letter-spacing: 0.08em;
      color: inherit;
    }
    .lp2-cta__card-icon {
      width: 44px;
      height: 44px;
      object-fit: contain;
      margin-top: 22px;
    }
    .lp2-cta__card-arrow {
      position: relative;
      width: 42px;
      height: 42px;
      margin-top: 36px;
      border: 1px solid var(--color-gold);
      border-radius: 50%;
    }
    .lp2-cta__card-arrow::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 8px;
      height: 8px;
      border-top: 1px solid var(--color-gold);
      border-right: 1px solid var(--color-gold);
      transform: translate(-60%, -50%) rotate(45deg);
    }

    .sp-only { display: none; }

    /* ============================================
       Responsive — Tablet
       ============================================ */
    @media (max-width: 1024px) {
      .lp2-about__photos { gap: 16px; }
      .case-item { padding: 32px; gap: 20px; }
      .lp2-pricing__cards { gap: 20px; }
    }

    /* ============================================
       Responsive — SP
       ============================================ */
    @media (max-width: 768px) {
      .lp2-hero__media {
        height: auto;
        aspect-ratio: 3 / 4;
        min-height: 0;
        max-height: none;
      }
      .lp2-hero__copy { top: auto; bottom: 48px; left: 24px; right: auto; font-size: 30px; letter-spacing: 0.16em; color: var(--color-white); }
      .lp2-hero__scroll { display: none; }
      .lp2-hero__promo {
        right: 16px;
        bottom: 16px;
        width: min(260px, calc(100vw - 32px));
        height: 52px;
      }
      .lp2-hero__promo-text {
        padding-left: 22px;
        font-size: 14px;
        line-height: 52px;
        letter-spacing: 0.08em;
      }
      .lp2-hero__promo-line { width: 42px; }

      .lp2-intro { padding: 70px 0 64px; }
      .lp2-intro__inner { padding: 0 24px; }
      .lp2-intro__body p:first-child { font-size: 18px; }

      .lp2-beauty { padding: 0 0 80px; }
      /* .lp2-beauty__inner { padding: 0 20px; } */
      /* SPでは固定幅676pxを外す（端で溢れるのを防ぐ＝トップのCTAと同じ対処） */
      .ba-card { width: auto; }
      .lp2-beauty__items { gap: 12px; flex-wrap: wrap; }
      .lp2-beauty__items .placeholder-img { width: 64px; }
      .ba-card { grid-template-columns: 1fr; }
      .ba-card__before { padding: 30px 24px 36px; }
      .ba-card__after { padding: 32px 24px; text-align: center; }
      .ba-card__arrow {
        margin: 0 auto;
        width: 72px;
        height: 22px;
        border: 0;
        background: linear-gradient(180deg, #F7F1E1 0%, #C8A458 100%);
        clip-path: polygon(0 0, 100% 0, 50% 100%);
      }
      .ba-card__before .ba-card__img { width: 120px; }
      .ba-card__after-grid { grid-template-columns: 1fr; gap: 16px; justify-items: center; }
      .ba-card__after .ba-card__img { width: 58%; }
      .ba-card__detail { text-align: center; }
      .ba-card__checks { display: inline-block; text-align: left; margin-top: 14px; }
      .lp2-beauty__closing-sub::before,
      .lp2-beauty__closing-sub::after { width: 36px; }

      .lp2-cases { padding: 80px 0; }
      .lp2-cases__inner { padding: 0 20px; }
      .case-item {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 24px;
      }
      .case-item__price { grid-template-columns: 1fr; }
      .case-item__price-col:first-child {
        border-right: none;
        border-bottom: 1px solid var(--color-gray-mid);
      }
      .case-item__arrow {
        flex-direction: row;
        justify-content: center;
      }
      .case-item__arrow-icon {
        width: 40px; height: 40px;
      }
      .case-item__arrow-icon::after {
        content: "↓";
      }
       .case-item__desc {
      text-align: justify;
      letter-spacing: 0.01em;
    }

      .lp2-flow { padding: 80px 0; }
      .lp2-flow__inner { padding: 0 20px; }
      .flow-step {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 32px 0;
      }
      .flow-step__visual {
        display: flex;
        align-items: center;
        gap: 16px;
      }
      .flow-step__number { margin-bottom: 0; font-size: 32px; }
      .flow-step__icon .placeholder-img { width: 56px; height: 56px; }

      .lp2-pricing { padding: 80px 0; }
      .lp2-pricing__inner { padding: 0 20px; }
      .lp2-pricing__lead { margin-bottom: 40px; }
      .lp2-pricing__cards {
        max-width: 510px;
        grid-template-columns: 1fr;
        gap: 20px;
        margin-bottom: 48px;
      }
      .lp2-pricing-card__content { transform: translateY(4px); }
      .lp2-pricing-card__line { margin: 38px 0 40px; }

      .lp2-event { padding: 80px 0; }
      .lp2-event__inner { padding: 0 20px; }
      .event-box { padding: 32px 20px; }

      .lp2-cta { padding: 64px 0 72px; }
      .lp2-cta__inner { padding: 0 20px; }
      .lp2-cta__title {
        font-size: 18px;
        line-height: 1.6;
        margin-bottom: 28px;
      }
      .lp2-cta__grid {
        grid-template-columns: 1fr;
        gap: 12px;
      }
      .lp2-cta__card {
        min-height: 196px;
        padding: 26px 24px 24px;
      }
      .lp2-cta__card-en {
        font-size: 14px;
        line-height: 1.4;
        letter-spacing: 0.18em;
      }
      .lp2-cta__card-title {
        margin-top: 8px;
        font-size: 18px;
        line-height: 1.45;
      }
      .lp2-cta__card-icon {
        width: 38px;
        height: 38px;
        margin-top: 16px;
      }
      .lp2-cta__card-arrow {
        width: 36px;
        height: 36px;
        margin-top: 20px;
      }

      .section-header__en { font-size: 24px; }

      .lp2-beauty__tagline {
        letter-spacing: 0;
      }

      .lp2-beauty__closing-main {
        letter-spacing: 0;
      }

      .lp2-beauty__inner {
        padding: 60px 20px;
      }

      .lp2-beauty--pc-image .lp2-beauty__inner {
        padding: 60px 20px;
        background-color: #FBFAFA;
      }

      .lp2-beauty--pc-image .lp2-beauty__pc-image {
        display: none;
      }

      .lp2-beauty--pc-image .lp2-beauty__sp-content {
        display: contents;
      }

      .sp-only { display: block; }

    }

    /* QA 2026-06-12: SPでの改行落ち（オーファン）対策 */
    .flow-step__text,
    .flow-step__note { text-wrap: pretty; }
    .case-item__desc { text-wrap: balance; }

    /* SP: 料金リードは折返しで9行の中央揃えになり読みにくいため、左揃えの段落に */
    @media (max-width: 768px) {
      .lp2-pricing__lead { text-align: left; }
      .lp2-pricing__lead br { display: none !important; }
    }
