    /* ── Hero ── */
    .hero {
      position: relative;
      height: 92vh;
      min-height: 600px;
      overflow: hidden;
    }
    @media (max-width: 767px) { .hero { height: 85vh; min-height: 500px; } }
    .hero-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      animation: heroScale 1.4s ease forwards;
    }
    @media (max-width: 767px) { .hero-img { object-position: 70% center; } }
    .hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to right, rgba(26,58,92,0.88) 0%, rgba(26,58,92,0.6) 50%, rgba(26,58,92,0.2) 100%);
    }
    @media (max-width: 767px) {
      .hero-overlay { background: linear-gradient(to bottom, rgba(26,58,92,0.75) 0%, rgba(26,58,92,0.55) 60%, rgba(26,58,92,0.8) 100%); }
    }
    .hero-content {
      position: relative;
      z-index: 10;
      height: 100%;
      display: flex;
      align-items: center;
    }
    @media (max-width: 767px) { .hero-content { align-items: flex-end; } }
    .hero-inner {
      max-width: 1280px;
      margin: 0 auto;
      padding: 0 32px;
      width: 100%;
    }
    @media (max-width: 767px) { .hero-inner { padding: 0 16px 60px; } }
    .hero-text { max-width: 620px; }
    @media (max-width: 767px) { .hero-text { max-width: 100%; } }
    .hero-eyebrow {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 20px;
      animation: fadeUp 0.6s ease forwards;
    }
    .hero-eyebrow-line { width: 20px; height: 2px; background: #90caf9; }
    .hero-eyebrow span { font-size: 11px; color: #90caf9; letter-spacing: 0.2em; font-weight: 700; }
    @media (max-width: 767px) { .hero-eyebrow span { font-size: 10px; } }
    .hero-h1 {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(36px, 5vw, 64px);
      font-weight: 900;
      color: var(--white);
      line-height: 1.25;
      letter-spacing: 0.02em;
      margin-bottom: 20px;
      animation: fadeUp 0.6s 0.1s ease both;
    }
    .hero-h1 span { color: #90caf9; }
    @media (max-width: 767px) { .hero-h1 { font-size: 36px; } }
    .hero-lead {
      font-size: 16px;
      color: rgba(255,255,255,0.85);
      line-height: 1.9;
      margin-bottom: 32px;
      animation: fadeUp 0.6s 0.2s ease both;
    }
    @media (max-width: 767px) { .hero-lead { font-size: 14px; } }
    .hero-btns {
      display: flex;
      gap: 12px;
      animation: fadeUp 0.6s 0.3s ease both;
    }
    @media (max-width: 767px) { .hero-btns { flex-direction: column; } }
    .btn-hero-primary {
      background: linear-gradient(135deg, var(--blue), var(--navy));
      color: var(--white);
      border: none;
      padding: 16px 32px;
      font-size: 15px;
      font-weight: 700;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      box-shadow: 0 8px 24px rgba(41,128,185,0.4);
      letter-spacing: 0.04em;
    }
    .hero-btns a{text-decoration:none;}

    .btn-hero-primary:hover {
      background: linear-gradient(100deg, var(--navy), var(--navy));
      transition: background 0.5s;
    }

    @media (max-width: 767px) { .btn-hero-primary { font-size: 14px; padding: 16px 24px; } }
    .btn-hero-secondary {
      background: rgba(255,255,255,0.12);
      color: var(--white);
      border: 1.5px solid rgba(255,255,255,0.5);
      padding: 16px 32px;
      font-size: 15px;
      font-weight: 600;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      backdrop-filter: blur(8px);
      letter-spacing: 0.04em;
    }
    .btn-hero-secondary:hover {
      background: rgba(255,255,255,0.5);
      transition: background 0.5s;

    }

    @media (max-width: 767px) { .btn-hero-secondary { font-size: 14px; padding: 14px 24px; } }
    .scroll-indicator {
      position: absolute;
      bottom: 32px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      color: rgba(255,255,255,0.6);
      font-size: 11px;
      letter-spacing: 0.1em;
    }
    .scroll-indicator svg { animation: scrollBounce 1.5s infinite; }
    @media (max-width: 767px) { .scroll-indicator { display: none; } }

    /* ── Trust Badges ── */
    .trust-badges { background: var(--navy); }
    .trust-badges-grid {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
    }
    @media (max-width: 767px) { .trust-badges-grid { grid-template-columns: 1fr 1fr; } }
    .trust-badge {
      padding: 28px 24px;
      display: flex;
      align-items: center;
      gap: 12px;
      border-right: 1px solid rgba(255,255,255,0.08);
    }
    .trust-badge:last-child { border-right: none; }
    @media (max-width: 767px) {
      .trust-badge { padding: 20px 16px; }
      .trust-badge:nth-child(2n) { border-right: none; }
      .trust-badge:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,0.08); }
    }
    .trust-badge-icon {
      width: 44px; height: 44px;
      background: rgba(41,128,185,0.2);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    @media (max-width: 767px) { .trust-badge-icon { width: 36px; height: 36px; } }
    .trust-badge-label { font-size: 16px; font-weight: 700; color: var(--white); margin-bottom: 2px; }
    .trust-badge-sub { font-size: 14px; color: rgba(255,255,255,0.5); }
    @media (max-width: 767px) { .trust-badge-label { font-size: 12px; } .trust-badge-sub { font-size: 10px; } }

    /* ── Stats ── */
    .stats-section { padding: 80px 32px; background: var(--light); }
    @media (max-width: 767px) { .stats-section { padding: 56px 16px; } }
    .stats-grid {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
    }
    @media (max-width: 767px) { .stats-grid { grid-template-columns: 1fr; gap: 12px; } }
    .stat-card {
      background: var(--white);
      padding: 48px 40px;
      text-align: center;
      box-shadow: 0 2px 16px rgba(26,58,92,0.06);
    }
    @media (max-width: 767px) { .stat-card { padding: 32px 24px; display: flex; align-items: center; gap: 20px; text-align: left; } }
    .stat-num {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(48px, 6vw, 72px);
      font-weight: 900;
      color: var(--navy);
      line-height: 1;
    }
    @media (max-width: 767px) { .stat-num { font-size: 48px; min-width: 140px; } }
    .stat-num span { font-size: 0.45em; color: var(--blue); }
    .stat-sub { color: var(--blue); font-weight: 700; letter-spacing: 0.1em; margin: 12px 0 6px; }
    @media (max-width: 767px) { .stat-sub { margin: 0 0 4px; } }
    .stat-label { color: var(--muted); }

    /* ── Section Heading ── */
    .section-heading { text-align: center; margin-bottom: 56px; }
    @media (max-width: 767px) { .section-heading { margin-bottom: 40px; } }
    .section-eyebrow {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin-bottom: 14px;
    }
    .section-eyebrow-line { width: 20px; height: 2px; background: var(--blue); }
    .section-eyebrow span { font-size: 11px; color: var(--blue); letter-spacing: 0.2em; font-weight: 700; }
    .section-h2 {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(28px, 4vw, 48px);
      font-weight: 900;
      color: var(--navy);
    }
    @media (max-width: 767px) { .section-h2 { font-size: 32px; } }

    /* ── About / Consultation ── */
    .about-section { padding: 100px 32px; background: var(--white); }
    @media (max-width: 767px) { .about-section { padding: 64px 16px; } }
    .about-grid {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: center;
    }
    @media (max-width: 767px) { .about-grid { grid-template-columns: 1fr; gap: 48px; } }
    .about-photo-wrap { position: relative; }
    .about-photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
    .about-badge {
      position: absolute;
      bottom: -24px;
      right: -24px;
      background: var(--navy);
      color: var(--white);
      padding: 20px 24px;
      box-shadow: 0 8px 32px rgba(26,58,92,0.25);
    }
    @media (max-width: 767px) { .about-badge { bottom: -16px; right: 16px; padding: 14px 18px; } }
    .about-badge-eyebrow { font-size: 10px; color: #90caf9; letter-spacing: 0.15em; font-weight: 700; margin-bottom: 3px; }
    .about-badge-title { font-size: 14px; font-weight: 700; }
    @media (max-width: 767px) { .about-badge-title { font-size: 13px; } }
    .about-badge-sub { font-size: 11px; color: rgba(255,255,255,0.6); margin-top: 2px; }
    .about-text { padding-top: 0; }
    @media (max-width: 767px) { .about-text { padding-top: 24px; } }
    .about-eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
    .about-eyebrow-line { width: 20px; height: 2px; background: var(--blue); }
    .about-eyebrow span { font-size: 11px; color: var(--blue); letter-spacing: 0.2em; font-weight: 700; }
    .about-h2 {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(28px, 3.5vw, 44px);
      font-weight: 900;
      color: var(--navy);
      line-height: 1.35;
      letter-spacing: 0.02em;
      margin-bottom: 20px;
    }
    .about-h2 span { color: var(--blue); }
    @media (max-width: 767px) { .about-h2 { font-size: 28px; } }
    .about-lead { font-size: 15px; color: var(--muted); line-height: 2; margin-bottom: 28px; }
    @media (max-width: 767px) { .about-lead { font-size: 14px; } }
    .about-checks { display: flex; flex-direction: column; gap: 12px; }
    .about-check { display: flex; align-items: flex-start; gap: 10px; }
    .about-check span { font-size: 14px; color: var(--text); font-weight: 500; line-height: 1.6; }

    /* ── Treatments ── */
    .treatments-section { padding: 100px 32px; background: var(--light); }
    @media (max-width: 767px) { .treatments-section { padding: 64px 16px; } }
    .treatments-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }
    @media (max-width: 1023px) { .treatments-grid { grid-template-columns: 1fr 1fr; } }
    @media (max-width: 767px) { .treatments-grid { grid-template-columns: 1fr; } }
    .treatment-card {
      background: var(--white);
      padding: 28px 24px;
      cursor: pointer;
      transition: transform 0.2s, box-shadow 0.2s, border-top-color 0.2s;
      box-shadow: 0 2px 12px rgba(26,58,92,0.06);
      border-top: 3px solid transparent;
      text-decoration: none;
      display: flex;
      flex-direction: column;
      /*height: 100%;*/
    }
    .treatment-card:hover {
      transform: translateY(-3px);
      box-shadow: 0 10px 28px rgba(26,58,92,0.12);
      border-top-color: var(--blue);
    }
    @media (max-width: 767px) {
      .treatment-card { flex-direction: row; align-items: center; gap: 16px; padding: 24px 20px; }
    }
    .treatment-card-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14px; width: 100%; }
    @media (max-width: 767px) { .treatment-card-top { display: none; } }
    .treatment-tag { background: var(--light); color: var(--blue); padding: 4px 10px; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; }
    .treatment-card-body { flex: 1; }
    .treatment-tag-mobile { background: var(--light); color: var(--blue); padding: 3px 8px; font-size: 10px; font-weight: 700; letter-spacing: 0.06em; display: inline-block; margin-bottom: 8px; }
    @media (min-width: 768px) { .treatment-tag-mobile { display: none; } }
    .treatment-name {
      font-family: 'Noto Serif JP', serif;
      font-size: 18px;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 10px;
    }
    @media (max-width: 767px) { .treatment-name { font-size: 16px; margin-bottom: 6px; } }
    .treatment-desc { font-size: 13px; color: var(--muted); line-height: 1.8; }
    @media (max-width: 767px) { .treatment-desc { font-size: 12px; line-height: 1.7; } }
    .treatment-arrow { flex-shrink: 0; color: var(--muted); }
    @media (min-width: 768px) { .treatment-arrow { display: none; } }
    .treatments-cta { text-align: center; margin-top: 32px; }
    .btn-outline {
      background: transparent;
      color: var(--navy);
      border: 1.5px solid var(--navy);
      padding: 14px 40px;
      font-size: 14px;
      font-weight: 700;
      border-radius: 4px;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      text-decoration: none;
      transition: background 0.5s;
    }
    .btn-outline:hover{background:#fff;transition: background 0.5s;}

    @media (max-width: 767px) { .btn-outline { justify-content: center; } }

    /* ── Private Room ── */
    .private-section { padding: 100px 32px; background: var(--white); }
    @media (max-width: 767px) { .private-section { padding: 64px 16px; } }
    .private-grid {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: center;
    }
    @media (max-width: 767px) { .private-grid { grid-template-columns: 1fr; gap: 40px; } }
    .private-h2 {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(26px, 3.5vw, 42px);
      font-weight: 900;
      color: var(--navy);
      line-height: 1.35;
      margin-bottom: 20px;
    }
    .private-h2 span { color: var(--blue); }
    @media (max-width: 767px) { .private-h2 { font-size: 28px; } }
    .private-lead { font-size: 15px; color: var(--muted); line-height: 2; margin-bottom: 24px; }
    @media (max-width: 767px) { .private-lead { font-size: 14px; } }
    .private-features { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .private-feature { background: var(--light); padding: 14px 16px; border-left: 3px solid var(--blue); }
    .private-feature-title { font-weight: 700; color: var(--navy); margin-bottom: 3px; }
    .private-feature-desc { font-size: 14px; color: var(--muted); }
    .private-photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; box-shadow: 0 12px 40px rgba(26,58,92,0.12); }

    /* ── Doctor ── */
    .doctor-section { padding: 100px 32px; background: var(--navy); }
    @media (max-width: 767px) { .doctor-section { padding: 64px 16px; } }
    .doctor-grid {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 80px;
      align-items: center;
    }
    @media (max-width: 767px) { .doctor-grid { grid-template-columns: 1fr; gap: 40px; } }
    .doctor-photo-wrap { position: relative; }
    .doctor-photo { width: 100%; aspect-ratio: 3/4; object-fit: cover; object-position: top; }
    @media (max-width: 767px) { .doctor-photo { aspect-ratio: 3/2; } }
    .doctor-photo-caption {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      background: linear-gradient(to top, rgba(26,58,92,0.95), transparent);
      padding: 32px 24px 24px;
    }
    @media (max-width: 767px) { .doctor-photo-caption { padding: 24px 20px 16px; } }
    .doctor-caption-role { font-size: 10px; color: #90caf9; letter-spacing: 0.15em; font-weight: 700; margin-bottom: 4px; }
    .doctor-caption-name { font-family: 'Noto Serif JP', serif; font-size: 22px; font-weight: 900; color: var(--white); }
    @media (max-width: 767px) { .doctor-caption-name { font-size: 18px; } }
    .doctor-caption-title { font-size: 12px; color: rgba(255,255,255,0.7); margin-top: 3px; }
    .doctor-text-eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
    .doctor-text-eyebrow-line { width: 20px; height: 2px; background: #90caf9; }
    .doctor-text-eyebrow span { font-size: 11px; color: #90caf9; letter-spacing: 0.2em; font-weight: 700; }
    .doctor-h2 {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(24px, 3vw, 38px);
      font-weight: 900;
      color: var(--white);
      line-height: 1.4;
      margin-bottom: 20px;
    }
    .doctor-h2 span { color: #90caf9; }
    @media (max-width: 767px) { .doctor-h2 { font-size: 26px; } }
    .doctor-lead { font-size: 15px; color: rgba(255,255,255,0.75); line-height: 2; margin-bottom: 28px; }
    @media (max-width: 767px) { .doctor-lead { font-size: 14px; } }
    .doctor-career { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; }
    .doctor-career-label { font-size: 12px; color: rgba(255,255,255,0.45); margin-bottom: 10px; }
    .doctor-career-item { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
    .doctor-career-dot { width: 4px; height: 4px; background: #90caf9; border-radius: 50%; flex-shrink: 0; }
    .doctor-career-text { font-size: 14px; color: rgba(255,255,255,0.8); }

    /* ── FAQ ── */
    .faq-section { padding: 100px 32px; background: var(--white); }
    @media (max-width: 767px) { .faq-section { padding: 64px 16px; } }
    .faq-list { border: 1px solid rgba(26,58,92,0.1); max-width: 900px; margin: 0 auto; }
    .faq-item { border-bottom: 1px solid rgba(26,58,92,0.08); }
    .faq-item:last-child { border-bottom: none; }
    .faq-q {
      width: 100%;
      padding: 22px 28px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      transition: background 0.2s;
      gap: 12px;
    }
    @media (max-width: 767px) { .faq-q { padding: 20px 16px; } }
    .faq-q.open { background: var(--light); }
    .faq-q-text {
      font-family: 'Noto Serif JP', serif;
      font-size: 15px;
      font-weight: 700;
      color: var(--navy);
      line-height: 1.5;
    }
    @media (max-width: 767px) { .faq-q-text { font-size: 14px; } }
    .faq-icon {
      width: 28px; height: 28px;
      background: var(--light);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: background 0.2s;
      font-size: 16px;
      color: var(--blue);
      font-weight: 700;
    }
    .faq-q.open .faq-icon { background: var(--blue); color: var(--white); }
    .faq-a {
      display: none;
      padding: 0 28px 22px;
      background: var(--light);
    }
    @media (max-width: 767px) { .faq-a { padding: 0 16px 20px; } }
    .faq-a.open { display: block; }
    .faq-a-inner { padding-top: 14px; border-top: 1px solid rgba(41,128,185,0.15); }
    .faq-a-text { font-size: 14px; color: var(--muted); line-height: 1.9; }
