/* ===== RESET & BASE ===== */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; font-size: 16px; }
    body {
      font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
      color: #1a1a1a;
      background: #fff;
      line-height: 1.85;
      -webkit-font-smoothing: antialiased;
    }
    img { max-width: 100%; height: auto; display: block; }
    a { color: inherit; text-decoration: none; }
    ul { list-style: none; }

    /* ===== CSS VARIABLES ===== */
    :root {
      --green-dark:  #1a6b5a;
      --green-mid:   #2d8c72;
      --green-light: #e8f5f0;
      --green-pale:  #f2faf7;
      --orange:      #e67e22;
      --orange-dark: #cf6d17;
      --text-dark:   #1a1a1a;
      --text-mid:    #444;
      --text-light:  #666;
      --white:       #ffffff;
      --radius:      12px;
      --shadow:      0 4px 20px rgba(0,0,0,0.08);
    }

    /* ===== LAYOUT ===== */
    .l-container {
      width: 92%;
      max-width: 780px;
      margin: 0 auto;
    }
    .l-section {
      padding: 64px 0;
    }
    .l-section--green-dark {
      background: var(--green-dark);
      color: var(--white);
    }
    .l-section--green-light {
      background: var(--green-light);
    }
    .l-section--green-pale {
      background: var(--green-pale);
    }
    .l-section--white {
      background: var(--white);
    }

    /* ===== SECTION HEADING ===== */
    .c-heading {
      font-size: 1.5rem;
      font-weight: 900;
      line-height: 1.4;
      text-align: center;
      margin-bottom: 40px;
      color: var(--green-dark);
    }
    .c-heading--white { color: var(--white); }
    .c-heading::after {
      content: '';
      display: block;
      width: 48px;
      height: 4px;
      background: var(--orange);
      border-radius: 2px;
      margin: 12px auto 0;
    }
    .c-heading--white::after { background: rgba(255,255,255,0.6); }

    /* ===== CTA BUTTON ===== */
    .c-cta {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      background: var(--orange);
      color: var(--white);
      font-size: 1.1rem;
      font-weight: 700;
      text-align: center;
      padding: 18px 24px;
      border-radius: 50px;
      box-shadow: 0 4px 16px rgba(230,126,34,0.4);
      transition: background 0.2s, transform 0.1s;
      max-width: 480px;
      margin: 0 auto;
      line-height: 1.4;
    }
    .c-cta::after {
      content: '›';
      font-size: 1.4rem;
      line-height: 1;
      font-weight: 900;
    }
    .c-cta:hover { background: var(--orange-dark); transform: translateY(-2px); }
    .c-cta:active { transform: translateY(0); }
    .c-cta-wrap { text-align: center; }
    .c-cta-sub {
      font-size: 0.78rem;
      color: var(--text-light);
      margin-top: 8px;
      text-align: center;
    }
    .c-cta-sub--white {
      color: rgba(255,255,255,0.75);
    }

    /* ===== SCROLL ANCHOR CTA ===== */
    .c-anchor-btn {
      display: inline-block;
      border: 2px solid var(--green-dark);
      color: var(--green-dark);
      font-size: 0.95rem;
      font-weight: 700;
      padding: 12px 28px;
      border-radius: 50px;
      transition: all 0.2s;
    }
    .c-anchor-btn:hover { background: var(--green-dark); color: var(--white); }

    /* ===== FADE IN ===== */
    .js-fade {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.6s ease, transform 0.6s ease;
    }
    .js-fade.is-visible {
      opacity: 1;
      transform: translateY(0);
    }

    /* ===== HEADER ===== */
    .l-header {
      background: var(--green-dark);
      padding: 12px 0;
      text-align: center;
    }
    .l-header__logo {
      color: var(--white);
      padding: 0 8px;
      font-size: clamp(0.55rem, 3vw, 0.85rem);
      font-weight: 700;
      letter-spacing: 0.01em;
      white-space: nowrap;
    }

    /* ===== HERO ===== */
    .p-hero {
      background: var(--white);
      overflow: hidden;
    }
    .p-hero__visual {
      position: relative;
      max-width: 768px;
      margin: 0 auto;
      background: var(--white);
    }
    .p-hero__full-image {
      display: block;
      width: 100%;
      height: auto;
    }
    .p-hero__booking {
      padding: 22px 0 40px;
      background: var(--white);
    }
    .p-hero__eyebrow {
      margin: 0;
      color: var(--green-dark);
      font-weight: 900;
      line-height: 1.04;
      text-align: center;
    }
    .p-hero__eyebrow-lead,
    .p-hero__eyebrow-keyword {
      display: block;
      letter-spacing: -0.05em;
    }
    .p-hero__eyebrow-lead { font-size: 1.92rem; }
    .p-hero__eyebrow-age {
      color: var(--orange);
      font-size: 1.14em;
      font-style: normal;
    }
    .p-hero__eyebrow-keyword {
      position: relative;
      display: inline-block;
      margin-top: 5px;
      color: #19c5bc;
      font-size: 4.1rem;
      line-height: 1.02;
    }
    .p-hero__eyebrow-keyword::after {
      position: absolute;
      right: -4px;
      bottom: -10px;
      left: -4px;
      height: 5px;
      border-radius: 70% 35% 65% 45%;
      background: var(--orange);
      content: '';
      transform: rotate(-1.2deg) skewX(-10deg);
    }
    .p-hero__question {
      margin: 16px 0 20px;
      color: var(--green-dark);
      font-size: 1.38rem;
      font-weight: 900;
      letter-spacing: 0.01em;
      line-height: 1.35;
      text-align: center;
    }
    .p-hero__title {
      margin: 0;
      font-weight: 900;
      line-height: 1.0;
      text-align: center;
    }
    .p-hero__title-cut,
    .p-hero__title-heal {
      display: block;
      letter-spacing: -0.08em;
    }
    .p-hero__title-cut {
      color: var(--orange);
      font-size: 3.25rem;
    }
    .p-hero__title-heal {
      color: var(--green-dark);
      font-size: 4.25rem;
    }
    .p-hero__subtitle {
      margin: 12px 0 28px;
      color: var(--green-dark);
      font-size: 1.25rem;
      font-weight: 800;
      letter-spacing: 0.03em;
      text-align: center;
    }
    .p-hero__illust {
      display: block;
      width: 100%;
      max-width: 560px;
      margin: 0 auto 32px;
      border-radius: var(--radius) var(--radius) 0 0;
    }
    .p-hero__bubbles {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 32px;
      align-items: center;
    }
    .p-hero__bubble {
      width: 100%;
      max-width: 420px;
      padding: 5px 0 9px;
      color: var(--green-dark);
      font-size: 1rem;
      font-weight: 700;
      line-height: 1.6;
      text-align: center;
    }
    .p-hero__bubble-text {
      position: relative;
      display: inline-block;
    }
    .p-hero__bubble-text::after {
      content: '';
      position: absolute;
      right: -6px;
      bottom: -5px;
      left: -6px;
      height: 4px;
      border-radius: 70% 35% 65% 45%;
      background: rgba(230, 126, 34, 0.72);
      transform: rotate(-1.2deg) skewX(-10deg);
    }
    .p-hero__cta-wrap {
      text-align: center;
      padding-bottom: 40px;
    }
    .p-hero__cta-note {
      font-size: 0.8rem;
      color: var(--text-light);
      margin-top: 10px;
      text-align: center;
    }

    /* ===== BOOKING HINT ===== */
    .p-booking-hint {
      background: var(--white);
      border: 2px dashed var(--green-mid);
      border-radius: var(--radius);
      padding: 20px;
      margin-top: 20px;
      text-align: center;
    }
    .p-booking-hint__cta { margin-bottom: 20px; }
    .p-booking-hint__label {
      font-size: 0.8rem;
      font-weight: 700;
      color: var(--green-dark);
      background: var(--green-light);
      display: inline-block;
      padding: 4px 12px;
      border-radius: 20px;
      margin-top: 14px;
    }
    .p-booking-hint__img {
      max-width: 280px;
      margin: 0 auto;
      border-radius: 8px;
      box-shadow: var(--shadow);
    }
    .p-booking-hint__note {
      font-size: 0.8rem;
      color: var(--text-light);
      margin-top: 10px;
    }

    /* ===== SCENE CARDS | パターンA：交互レイアウト ===== */
    .p-scene__grid {
      display: flex;
      flex-direction: column;
      gap: 24px;
    }
    .p-scene__card {
      background: var(--white);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      display: flex;
      align-items: stretch;
      overflow: hidden;
      min-height: 160px;
      border: 1px solid rgba(26, 107, 90, 0.10);
    }
    .p-scene__card:nth-child(even) {
      flex-direction: row-reverse;
    }
    .p-scene__body {
      flex: 1 1 56%;
      padding: 20px 18px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .p-scene__num {
      font-size: 0.72rem;
      font-weight: 900;
      letter-spacing: 0.10em;
      color: var(--green-mid);
      margin-bottom: 5px;
    }
    .p-scene__title {
      font-size: 1.05rem;
      font-weight: 900;
      color: var(--green-dark);
      line-height: 1.40;
      margin-bottom: 8px;
    }
    .p-scene__desc {
      font-size: 0.80rem;
      line-height: 1.65;
      color: var(--text-mid);
    }
    .p-scene__img-wrap {
      flex: 0 0 44%;
      min-width: 0;
      overflow: hidden;
      background: var(--green-light);
    }
    .p-scene__img-wrap img {
      display: block;
      width: 100%;
      height: 100%;
      min-height: 160px;
      object-fit: cover;
    }
    .p-scene__outro {
      position: relative;
      max-width: 680px;
      margin: 88px auto 0;
      padding: 36px 14px 42px;
      overflow: hidden;
      border-radius: 24px;
      background: #275f66;
      box-shadow: 0 16px 38px rgba(28, 70, 75, 0.18);
      color: var(--white);
      text-align: center;
    }
    .p-scene__outro-lead,
    .p-scene__outro-main {
      display: block;
      font-weight: 900;
      line-height: 1.45;
    }
    .p-scene__outro-lead {
      margin-bottom: 28px;
      font-size: 2rem;
    }
    .p-scene__outro-accent {
      color: #fed684;
      font-style: normal;
    }
    .p-scene__outro-question {
      color: var(--white);
    }
    .p-scene__outro-main {
      font-size: 1.22rem;
    }
    .p-scene__outro-row {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      white-space: nowrap;
    }
    .p-scene__outro-row + .p-scene__outro-row {
      margin-top: 20px;
    }
    .p-scene__outro-improve,
    .p-scene__outro-disease,
    .p-scene__outro-disease > span {
      font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
      font-size: 120%;
      font-weight: 900;
      line-height: 1.45;
      letter-spacing: 0;
    }
    .p-scene__outro-improve {
      display: inline-block;
      padding: 5px 8px;
      border-radius: 6px;
      background: #d4efef;
      color: #164f55;
      font-style: normal;
    }
    .p-scene__outro-disease {
      display: inline-flex;
      gap: 4px;
      font-style: normal;
    }
    .p-scene__outro-disease > span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 5px 8px;
      border-radius: 6px;
      background: #fed684;
      color: #164f55;
    }
    #scene { padding-bottom: 96px; }

    /* ===== SCENE TEXT PANELS | 確定版：バージョンA ===== */
    #scene .p-scene__card:nth-child(odd) .p-scene__body {
      background: var(--white);
    }
    #scene .p-scene__card:nth-child(even) .p-scene__body {
      background: var(--green-light);
    }

    /* ===== EMPATHY CALLOUT ===== */
    .p-empathy {
      max-width: 680px;
      margin: 32px auto 0;
      padding: 28px 24px;
      background: var(--green-pale);
      border-left: 4px solid var(--green-mid);
      border-radius: 0 var(--radius) var(--radius) 0;
    }
    .p-empathy__title {
      margin-bottom: 12px;
      color: var(--green-dark);
      font-size: 1.25rem;
      font-weight: 900;
      line-height: 1.5;
    }
    .p-empathy__body {
      color: var(--text-mid);
      font-size: 0.95rem;
      line-height: 1.9;
    }

    /* ===== CAUSE ===== */
    .p-cause__heading {
      display: flex;
      align-items: baseline;
      justify-content: center;
      gap: 0;
      margin-bottom: 36px;
      color: var(--green-dark);
      line-height: 1.25;
      letter-spacing: 0;
      white-space: nowrap;
    }
    .p-cause__heading::after {
      display: none;
    }
    .p-cause__heading-prefix {
      display: inline;
      margin: 0;
      font-size: clamp(0.7rem, 3.2vw, 0.9rem);
      font-weight: 700;
    }
    .p-cause__heading-disease {
      display: inline-flex;
      align-items: baseline;
      margin-left: -0.18em;
      font-size: clamp(1.3rem, 6.2vw, 1.55rem);
      font-weight: 900;
      white-space: nowrap;
    }
    .p-cause__heading-quote {
      display: inline-block;
    }
    .p-cause__heading-quote--open {
      margin-right: 0.14em;
    }
    .p-cause__heading-quote--close {
      margin-left: 0.14em;
      margin-right: -0.28em;
    }
    .p-cause__heading-question {
      margin-left: 0.08em;
      font-size: 1.1rem;
      font-weight: 900;
    }
    .p-cause__img {
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      margin-bottom: 28px;
    }
    .p-cause__body {
      font-size: 1rem;
      color: var(--text-mid);
      line-height: 1.9;
    }
    .p-cause__body + .p-cause__body { margin-top: 16px; }

    /* ===== RISK CALLOUT ===== */
    .p-risk {
      max-width: 680px;
      margin: 32px auto 32px;
      padding: 24px;
      background: var(--white);
      border: 1px solid #b7d8ce;
      border-radius: var(--radius);
    }
    .p-risk__header {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 14px;
    }
    .p-risk__doctor {
      width: 60px;
      height: auto;
      flex-shrink: 0;
    }
    .p-risk__heading {
      min-width: 0;
    }
    .p-risk__label {
      display: inline-block;
      margin-bottom: 6px;
      padding: 3px 10px;
      border-radius: 999px;
      background: var(--green-light);
      color: var(--green-dark);
      font-size: 0.76rem;
      font-weight: 900;
      letter-spacing: 0.04em;
    }
    .p-risk__title {
      color: var(--green-dark);
      font-size: 1.18rem;
      font-weight: 900;
      line-height: 1.5;
    }
    .p-risk__body {
      color: var(--text-mid);
      font-size: 0.93rem;
      line-height: 1.9;
    }

    /* ===== MEDICINE VS SURGERY ===== */
    .p-compare__or-row {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
      margin-bottom: 28px;
    }
    .p-compare__or-item {
      width: 100%;
      max-width: 560px;
      border: 1px solid rgba(255,255,255,0.34);
      border-radius: 14px;
      padding: 16px 20px;
      background: rgba(255,255,255,0.12);
      color: var(--white);
      font-size: 1.08rem;
      font-weight: 900;
      line-height: 1.45;
      text-align: center;
    }
    .p-compare__or-item--highlight {
      border-color: var(--orange-dark);
      background: var(--orange);
    }
    .p-compare__or-badge {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 34px;
      height: 34px;
      border-radius: 50%;
      background: var(--white);
      color: var(--green-dark);
      font-size: 0.78rem;
      font-weight: 900;
      flex-shrink: 0;
    }
    .p-compare__grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-bottom: 24px;
    }
    .p-compare__card {
      border-radius: var(--radius);
      padding: 20px 16px;
    }
    .p-compare__card--med {
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.25);
    }
    .p-compare__card--surg {
      background: var(--orange);
      border: 1px solid var(--orange-dark);
    }
    .p-compare__card-title {
      font-size: 0.9rem;
      font-weight: 900;
      color: var(--white);
      margin-bottom: 12px;
      text-align: center;
    }
    .p-compare__list {
      font-size: 0.88rem;
      color: rgba(255,255,255,0.9);
      line-height: 1.7;
    }
    .p-compare__list li { padding-left: 1em; position: relative; }
    .p-compare__list li::before { content: '・'; position: absolute; left: 0; }
    .p-compare__note {
      background: rgba(255,255,255,0.15);
      border-radius: var(--radius);
      padding: 16px;
      font-size: 0.9rem;
      color: var(--white);
      line-height: 1.7;
      text-align: center;
    }

    /* ===== WAVE INTRO ===== */
    .p-wave__badge {
      display: inline-block;
      background: var(--orange);
      color: var(--white);
      font-size: 0.85rem;
      font-weight: 700;
      padding: 6px 16px;
      border-radius: 20px;
      margin-bottom: 16px;
    }
    .p-wave__tagline {
      font-size: 1.2rem;
      font-weight: 900;
      color: var(--green-dark);
      margin-bottom: 16px;
      line-height: 1.5;
    }
    .p-wave__body {
      font-size: 0.95rem;
      color: var(--text-mid);
      line-height: 1.9;
      margin-bottom: 24px;
    }
    .p-wave__rezum {
      font-family: Arial, 'Helvetica Neue', sans-serif;
    }
    .p-wave__machine {
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      margin: 0 auto 28px;
      max-width: 360px;
    }

    /* ===== FEATURES ===== */
    .p-features__grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    .p-features__card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 20px 14px;
      text-align: center;
      box-shadow: var(--shadow);
    }
    .p-features__num {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 42px;
      height: 28px;
      margin-bottom: 12px;
      border-radius: 999px;
      background: var(--green-light);
      color: var(--green-dark);
      font-size: 0.78rem;
      font-weight: 900;
      letter-spacing: 0.08em;
    }
    .p-features__name {
      font-size: 1rem;
      font-weight: 900;
      color: var(--green-dark);
      margin-bottom: 6px;
    }
    .p-features__desc {
      font-size: 0.82rem;
      color: var(--text-mid);
      line-height: 1.6;
    }

    /* ===== COST TABLE ===== */
    .p-cost__table {
      width: 100%;
      border-collapse: collapse;
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--shadow);
      margin-bottom: 16px;
    }
    .p-cost__table th {
      background: var(--green-dark);
      color: var(--white);
      padding: 14px 16px;
      font-size: 0.9rem;
      text-align: center;
    }
    .p-cost__table td {
      padding: 14px 16px;
      font-size: 0.95rem;
      text-align: center;
      border-bottom: 1px solid #e0ede9;
    }
    .p-cost__table tr:last-child td { border-bottom: none; }
    .p-cost__table tr:nth-child(even) td { background: var(--green-pale); }
    .p-cost__note {
      font-size: 0.8rem;
      color: var(--text-light);
      line-height: 1.7;
    }

    /* ===== STEPS ===== */
    .p-steps__list { display: flex; flex-direction: column; gap: 0; }
    .p-steps__item {
      display: flex;
      gap: 16px;
      position: relative;
    }
    .p-steps__item:not(:last-child)::after {
      content: '';
      position: absolute;
      left: 31px;
      top: 44px;
      bottom: -8px;
      width: 2px;
      background: var(--green-mid);
    }
    .p-steps__num {
      flex-shrink: 0;
      width: 64px;
      height: 36px;
      background: var(--green-dark);
      color: var(--white);
      border-radius: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.78rem;
      font-weight: 900;
      line-height: 1;
      letter-spacing: 0.02em;
      white-space: nowrap;
    }
    .p-steps__content {
      padding-bottom: 28px;
      flex: 1;
    }
    .p-steps__title {
      font-size: 1rem;
      font-weight: 700;
      color: var(--green-dark);
      margin-bottom: 4px;
    }
    .p-steps__desc {
      font-size: 0.88rem;
      color: var(--text-mid);
      line-height: 1.7;
    }
    .p-steps__note {
      display: inline-block;
      background: #fff3e0;
      color: #b45309;
      font-size: 0.78rem;
      font-weight: 700;
      padding: 3px 10px;
      border-radius: 4px;
      margin-top: 4px;
    }

    /* ===== PARTNERSHIP ===== */
    .p-partner__grid {
      display: flex;
      flex-direction: column;
      gap: 16px;
      margin-bottom: 28px;
    }
    .p-partner__card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 24px 20px;
      box-shadow: var(--shadow);
    }
    .p-partner__name {
      font-size: 1rem;
      font-weight: 900;
      color: var(--green-dark);
      margin-bottom: 6px;
    }
    .p-partner__desc {
      font-size: 0.88rem;
      color: var(--text-mid);
      line-height: 1.7;
    }
    .p-partner__connector {
      width: 56px;
      height: 1px;
      margin: 4px auto;
      background: var(--green-mid);
    }
    .p-partner__summary {
      background: var(--green-dark);
      color: var(--white);
      border-radius: var(--radius);
      padding: 20px;
      font-size: 0.95rem;
      line-height: 1.8;
      text-align: center;
    }

    /* ===== CLINIC ===== */
    .p-clinic__card {
      background: var(--white);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
      margin-bottom: 20px;
    }
    .p-clinic__header {
      background: var(--green-dark);
      color: var(--white);
      padding: 16px 20px;
    }
    .p-clinic__name {
      font-size: 1.05rem;
      font-weight: 900;
    }
    .p-clinic__body {
      padding: 20px;
    }
    .p-clinic__doctor-wrap {
      display: flex;
      align-items: center;
      gap: 16px;
      margin-bottom: 20px;
    }
    .p-clinic__doctor-img {
      width: 100px;
      height: 100px;
      object-fit: cover;
      object-position: center top;
      border-radius: 50%;
      border: 3px solid var(--green-light);
      flex-shrink: 0;
    }
    .p-clinic__doctor-info {}
    .p-clinic__doctor-name {
      font-size: 1.1rem;
      font-weight: 900;
      color: var(--green-dark);
    }
    .p-clinic__doctor-title {
      font-size: 0.8rem;
      color: var(--text-light);
      margin-bottom: 6px;
    }
    .p-clinic__doctor-desc {
      font-size: 0.85rem;
      color: var(--text-mid);
      line-height: 1.7;
    }
    .p-clinic__dl {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 8px 12px;
      font-size: 0.88rem;
    }
    .p-clinic__dt {
      font-weight: 700;
      color: var(--green-dark);
      white-space: nowrap;
    }
    .p-clinic__dd { color: var(--text-mid); }
    .p-clinic__achievement {
      background: var(--green-light);
      border-radius: 8px;
      padding: 12px 16px;
      margin-top: 16px;
      font-size: 0.88rem;
      color: var(--green-dark);
      font-weight: 700;
      text-align: center;
    }
    .p-clinic__link-wrap { text-align: center; margin-top: 20px;margin-bottom: 20px; }
    .p-clinic__link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: var(--green-dark);
      color: var(--white);
      font-size: 0.9rem;
      font-weight: 700;
      padding: 12px 24px;
      border-radius: 50px;
      transition: background 0.2s;
    }
    .p-clinic__link:hover { background: var(--green-mid); }
    .p-network {
      background: var(--green-pale);
      border-radius: var(--radius);
      padding: 16px 20px;
      font-size: 0.85rem;
      color: var(--text-mid);
      line-height: 1.7;
      text-align: center;
    }

    /* ===== FAQ ===== */
    .p-faq__item {
      border-bottom: 1px solid #d4e9e2;
    }
    .p-faq__q {
      width: 100%;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      padding: 18px 0;
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--green-dark);
      display: flex;
      align-items: center;
      gap: 12px;
      line-height: 1.5;
    }
    .p-faq__q-icon {
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      background: var(--green-dark);
      color: var(--white);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.8rem;
      font-weight: 900;
    }
    .p-faq__q-arrow {
      margin-left: auto;
      flex-shrink: 0;
      font-size: 0.8rem;
      color: var(--green-mid);
      transition: transform 0.3s;
    }
    .p-faq__item.is-open .p-faq__q-arrow { transform: rotate(180deg); }
    .p-faq__a {
      display: none;
      padding: 0 0 18px 40px;
      font-size: 0.9rem;
      color: var(--text-mid);
      line-height: 1.8;
    }
    .p-faq__item.is-open .p-faq__a { display: block; }

    /* ===== FINAL CTA ===== */
    .p-final-cta {
      text-align: center;
    }
    .p-final-cta__lead {
      font-size: 1rem;
      color: rgba(255,255,255,0.9);
      margin-bottom: 28px;
      line-height: 1.8;
    }

    .u-mt32 { margin-top: 32px; }

    /* ===== FOOTER ===== */
    .l-footer {
      background: #111;
      color: rgba(255,255,255,0.7);
      padding: 28px 0;
      text-align: center;
      font-size: 0.78rem;
    }
    .l-footer__links {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 8px 16px;
      margin-bottom: 12px;
    }
    .l-footer__link { color: rgba(255,255,255,0.6); }
    .l-footer__link:hover { color: var(--white); }
    .l-footer__copy { color: rgba(255,255,255,0.4); }

    /* ===== STICKY CTA (mobile) ===== */
    .l-sticky-cta {
      display: none;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 100;
      padding: 12px 16px;
      background: rgba(255,255,255,0.97);
      box-shadow: 0 -2px 12px rgba(0,0,0,0.12);
    }
    .l-sticky-cta .c-cta {
      font-size: 0.95rem;
      padding: 14px 20px;
    }
    .l-sticky-cta .c-cta-sub--sticky {
      margin: 5px 0 0;
      color: rgba(0, 0, 0, 0.62);
      font-size: 0.72rem;
      line-height: 1.25;
    }

    /* ===== RESPONSIVE ===== */
    @media (min-width: 768px) {
      .p-empathy { margin-top: 40px; padding: 32px 36px; }
      .p-empathy__title { font-size: 1.45rem; }
      .p-hero__eyebrow-lead { font-size: 2.1rem; }
      .p-hero__eyebrow-keyword { font-size: 5rem; }
      .p-hero__question { font-size: 1.6rem; }
      .p-hero__title-cut { font-size: 4.1rem; }
      .p-hero__title-heal { font-size: 5.2rem; }
      .p-hero__subtitle { font-size: 1.5rem; }
      .p-scene__outro { margin-top: 96px; padding: 54px 36px 58px; border-radius: 32px; }
      .p-scene__outro-lead { margin-bottom: 36px; font-size: 3rem; }
      .p-scene__outro-main { font-size: 2.3rem; }
      .p-scene__outro-row { gap: 12px; }
      .p-scene__outro-row + .p-scene__outro-row { margin-top: 26px; }
      .p-scene__outro-improve { padding: 7px 13px; border-radius: 8px; }
      .p-scene__outro-disease { gap: 8px; }
      .p-scene__outro-disease > span { padding: 7px 13px; border-radius: 8px; }
      #scene { padding-bottom: 112px; }
      .p-cause__heading {
        display: flex;
        align-items: baseline;
        justify-content: center;
        gap: 0;
        margin-bottom: 48px;
      }
      .p-cause__heading-prefix {
        display: inline;
        margin-bottom: 0;
        font-size: 1.7rem;
      }
      .p-cause__heading-disease {
        margin-left: -0.22em;
        font-size: 3.6rem;
      }
      .p-cause__heading-question {
        margin-left: 0.08em;
        font-size: 2.2rem;
      }
      .p-risk { margin-top: 40px; padding: 28px 32px; }
      .p-risk__header { gap: 16px; }
      .p-risk__doctor { width: 68px; }
      .p-risk__title { font-size: 1.3rem; }
      .p-hero__title { font-size: 1.3rem; }
      .p-hero__title-em { font-size: 2.8rem; }
      .p-hero__bubbles { flex-direction: column; flex-wrap: nowrap; }
      .p-scene__card { min-height: 200px; }
      .p-scene__body { padding: 28px 32px; }
      .p-scene__title { font-size: 1.4rem; }
      .p-scene__desc { font-size: 0.9rem; }
      .p-scene__img-wrap { flex-basis: 42%; }
      .p-scene__img-wrap img { min-height: 200px; }
      .p-hero__bubble { flex: none; }
      .p-scene__grid { grid-template-columns: repeat(4, 1fr); }
      .p-features__grid { grid-template-columns: repeat(3, 1fr); }
      .c-heading { font-size: 1.8rem; }
      .l-sticky-cta { display: block; }
      .l-footer { padding-bottom: 124px; }
    }
    @media (min-width: 1024px) {
      .l-section { padding: 80px 0; }
      .p-hero { padding: 64px 0 0; }
      .p-hero__title { font-size: 1.5rem; }
      .p-hero__title-em { font-size: 3.2rem; }
      .p-clinic__doctor-wrap { gap: 24px; }
      .p-clinic__doctor-img { width: 120px; height: 120px; }
    }
