
    /* PAGE HERO */
    .page-hero {
      background: var(--pink-bg);
      padding: 140px 0 80px;
      text-align: center;
    }
    .page-hero .section-label { display: block; margin-bottom: 12px; }
    .page-hero h1 {
      font-family: var(--font-serif);
      font-size: clamp(2rem, 4vw, 2.8rem);
      font-weight: 600;
      color: var(--navy);
      margin-bottom: 16px;
    }
    .page-hero p {
      font-size: 0.95rem;
      color: var(--text-muted);
      line-height: 2;
      max-width: 680px;
      margin: 0 auto;
    }

    /* GENERIC SECTION */
    .svc-section { padding: 80px 0; }
    .svc-section:nth-child(odd)  { background: var(--white); }
    .svc-section:nth-child(even) { background: var(--pink-bg); }

    .svc-header { text-align: center; margin-bottom: 48px; }
    .svc-header .section-sub { margin: 0 auto; }

    /* SERVICE CARDS */
    .svc-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 24px;
    }
    .svc-card {
      background: var(--white);
      border: 1px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 32px 28px;
      transition: var(--transition);
      overflow: hidden;
    }
    .svc-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow);
    }
    .svc-card-photo {
      width: calc(100% + 56px);
      margin: -32px -28px 20px;
      height: 180px;
      object-fit: cover;
      display: block;
      border-radius: var(--radius) var(--radius) 0 0;
    }
    .svc-card-num {
      font-family: var(--font-en);
      font-size: 0.72rem;
      letter-spacing: 0.2em;
      color: var(--pink);
      display: block;
      margin-bottom: 6px;
    }
    .svc-card h3 {
      font-family: var(--font-serif);
      font-size: 1.05rem;
      font-weight: 600;
      color: var(--navy);
      margin-bottom: 12px;
    }
    .svc-card > p {
      font-size: 0.87rem;
      color: var(--text-muted);
      line-height: 1.9;
      margin-bottom: 16px;
    }
    .svc-card ul { list-style: none; }
    .svc-card ul li {
      font-size: 0.83rem;
      color: var(--text-muted);
      padding: 3px 0;
      display: flex;
      align-items: flex-start;
      gap: 6px;
      line-height: 1.7;
    }
    .svc-card ul li::before {
      content: '・';
      color: var(--pink);
      flex-shrink: 0;
    }

    /* PROGRAM STEPS */
    .program-steps {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
      position: relative;
    }
    .program-step {
      background: var(--white);
      border: 1px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 28px 20px;
      text-align: center;
      position: relative;
    }
    .program-step:not(:last-child)::after {
      content: '›';
      position: absolute;
      right: -13px;
      top: 50%;
      transform: translateY(-50%);
      color: var(--pink-light);
      font-size: 1.6rem;
      z-index: 1;
    }
    .step-num {
      font-family: var(--font-en);
      font-size: 0.68rem;
      letter-spacing: 0.2em;
      color: var(--pink);
      display: block;
      margin-bottom: 8px;
    }
    .step-title {
      font-family: var(--font-serif);
      font-size: 0.95rem;
      font-weight: 600;
      color: var(--navy);
      margin-bottom: 10px;
    }
    .step-desc {
      font-size: 0.8rem;
      color: var(--text-muted);
      line-height: 1.8;
    }

    /* PRICING */
    .pricing-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      border-radius: var(--radius);
      border: 1px solid var(--pink-border);
    }
    .pricing-table {
      width: 100%;
      min-width: 600px;
      border-collapse: collapse;
      font-size: 0.87rem;
    }
    .pricing-table thead tr {
      background: var(--navy);
    }
    .pricing-table th {
      padding: 14px 18px;
      text-align: left;
      color: var(--white);
      font-weight: 500;
      font-size: 0.82rem;
      white-space: nowrap;
    }
    .pricing-table td {
      padding: 14px 18px;
      border-bottom: 1px solid var(--pink-border);
      vertical-align: top;
      line-height: 1.8;
    }
    .pricing-table tbody tr:last-child td { border-bottom: none; }
    .pricing-table tbody tr:nth-child(even) td { background: var(--pink-bg); }
    .pricing-table td:first-child {
      font-weight: 500;
      color: var(--navy);
      white-space: nowrap;
    }
    .price {
      color: var(--pink);
      font-weight: 600;
      white-space: nowrap;
    }
    .badge-rec {
      display: inline-block;
      background: var(--pink);
      color: var(--white);
      font-size: 0.68rem;
      padding: 2px 8px;
      border-radius: 50px;
      vertical-align: middle;
      margin-left: 6px;
      letter-spacing: 0.04em;
    }
    .pricing-notes {
      margin-top: 20px;
      background: var(--pink-bg);
      border: 1px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 20px 24px;
    }
    .pricing-notes p {
      font-size: 0.8rem;
      color: var(--text-muted);
      line-height: 2.1;
    }

    /* FLOW STEPS */
    .flow-steps {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 12px;
    }
    .flow-step {
      background: var(--white);
      border: 1px solid var(--pink-border);
      border-radius: var(--radius);
      padding: 24px 16px;
      text-align: center;
      position: relative;
    }
    .flow-step:not(:last-child)::after {
      content: '›';
      position: absolute;
      right: -11px;
      top: 32px;
      color: var(--pink-light);
      font-size: 1.5rem;
      z-index: 1;
    }
    .flow-step-circle {
      width: 52px;
      height: 52px;
      background: var(--pink);
      color: var(--white);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-en);
      font-size: 0.72rem;
      letter-spacing: 0.04em;
      margin: 0 auto 14px;
      flex-shrink: 0;
    }
    .flow-step h4 {
      font-size: 0.87rem;
      font-weight: 600;
      color: var(--navy);
      margin-bottom: 8px;
      line-height: 1.4;
    }
    .flow-step p {
      font-size: 0.78rem;
      color: var(--text-muted);
      line-height: 1.8;
    }

    @media (max-width: 900px) {
      .flow-steps { grid-template-columns: 1fr 1fr; }
      .flow-step:not(:last-child)::after { display: none; }
    }
    @media (max-width: 768px) {
      .svc-grid { grid-template-columns: 1fr; }
      .program-steps { grid-template-columns: 1fr 1fr; }
      .program-step:not(:last-child)::after { display: none; }
    }
    @media (max-width: 480px) {
      .program-steps { grid-template-columns: 1fr; }
      .flow-steps { grid-template-columns: 1fr; }
    }
  
/* Instructor profile */
.page-services .instructor-section{background:#fcf7f5;scroll-margin-top:30px}.instructor-layout{display:grid;grid-template-columns:1fr 2fr;gap:60px}.instructor-profile{border-left:2px solid #d7a4b6;padding-left:40px}.instructor-profile .instructor-degree{color:var(--rose);font-size:14px;letter-spacing:.12em;margin:0 0 10px}.instructor-profile h3{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:36px;letter-spacing:.15em;font-weight:500;margin:0 0 12px}.instructor-profile .instructor-role{font-size:13px;color:var(--muted);margin:0 0 28px}.instructor-bio p{font-size:15px;line-height:2.2;color:var(--ink);margin:0 0 18px}.instructor-bio p:last-child{margin-bottom:0}@media(max-width:760px){.instructor-layout{grid-template-columns:1fr;gap:25px}.instructor-profile{padding-left:22px}.instructor-profile h3{font-size:30px}.instructor-bio p{font-size:14px}.page-services .instructor-section{scroll-margin-top:90px}}
