    :root {
      --bg: #F7F3EC;
      --ink: #2B2A28;
      --sub: #6B6660;
      --terracotta: #C97B5E;
      --terracotta-soft: #F0E1D8;
      --sage: #5C8C7A;
      --sage-soft: #E3ECE6;
      --paper: #FFFDF8;
      --card: #E8DFD2;
      --line: #D9D2C5;
      --side: 24px;
      font-family: "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
      color: var(--ink);
      background: var(--bg);
    }

    * { box-sizing: border-box; }
    html { background: var(--bg); }
    body {
      margin: 0;
      background: var(--bg);
      color: var(--ink);
      font-size: 15px;
      line-height: 1.7;
      letter-spacing: 0;
      overflow-x: hidden;
    }
    img { display: block; max-width: 100%; height: auto; }
    a { color: inherit; }
    p { margin: 0; color: var(--sub); }
    ul, ol { margin: 0; padding: 0; }
    li { list-style: none; }
    h1, h2, h3 {
      margin: 0;
      font-family: "Noto Serif JP", "Yu Mincho", serif;
      line-height: 1.42;
      letter-spacing: 0;
      color: var(--ink);
    }
    h1 { font-size: 34px; font-weight: 700; }
    h2 { font-size: 25px; font-weight: 700; }
    h3 { font-size: 18px; font-weight: 700; }
    summary { list-style: none; }
    summary::-webkit-details-marker { display: none; }

    .page { min-width: 320px; overflow: hidden; }
    .container {
      width: min(100% - calc(var(--side) * 2), 390px);
      margin: 0 auto;
      position: relative;
      z-index: 1;
    }
    .section { padding: 48px 0; position: relative; }
    .section.compact { padding: 38px 0; }
    .section-head { display: grid; gap: 10px; margin-bottom: 20px; }
    .eyebrow {
      color: var(--sage);
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .lead { font-size: 15px; color: var(--sub); }
    .divider {
      width: min(100% - 48px, 390px);
      margin: 0 auto;
    }
    .divider img { width: 100%; }
    .ornament {
      position: absolute;
      width: 60px;
      opacity: .55;
      pointer-events: none;
    }
    .ornament.top-right { right: 8px; top: 28px; }
    .ornament.bottom-left { left: 18px; bottom: 24px; transform: rotate(18deg); }

    .hero {
      min-height: 78svh;
      display: grid;
      align-items: end;
      padding: 24px 0 32px;
      position: relative;
      overflow: hidden;
      background: var(--bg);
    }
    .hero-media,
    .hero-media img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
    }
    .hero-media img {
      object-fit: cover;
      object-position: 63% top;
      opacity: .9;
    }
    .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(180deg, rgba(247,243,236,.08), rgba(247,243,236,.34) 42%, rgba(247,243,236,.97) 83%),
        linear-gradient(90deg, rgba(247,243,236,.96), rgba(247,243,236,.68) 38%, rgba(247,243,236,.2) 72%);
    }
    .hero-logo {
      position: absolute;
      z-index: 2;
      top: 20px;
      left: var(--side);
      width: 142px;
    }
    .hero-content {
      position: relative;
      z-index: 2;
      display: grid;
      gap: 14px;
      padding-top: 120px;
    }
    .hero-kicker {
      width: fit-content;
      padding: 5px 10px;
      border-left: 3px solid var(--sage);
      background: rgba(255,253,248,.78);
      color: var(--sage);
      font-weight: 700;
      font-size: 12px;
    }
    .hero-sub {
      font-family: "Noto Serif JP", "Yu Mincho", serif;
      font-weight: 500;
      color: var(--ink);
      font-size: 18px;
      line-height: 1.7;
    }
    .hero-note {
      padding: 12px 14px;
      background: rgba(255,253,248,.84);
      border: 1px solid var(--line);
      border-left: 4px solid var(--sage);
      border-radius: 8px;
      color: var(--ink);
      font-size: 13px;
      font-weight: 600;
      line-height: 1.7;
    }
    .cta-wrap { display: grid; gap: 12px; margin-top: 4px; }
    .cta {
      min-height: 58px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      border-radius: 8px;
      background: var(--terracotta);
      color: #fff;
      text-decoration: none;
      font-weight: 700;
      font-size: 15px;
      padding: 0 18px;
      box-shadow: 0 12px 24px rgba(105, 61, 44, .16);
    }
    .cta img { width: 28px; height: 28px; }
    .phone {
      color: var(--terracotta);
      font-weight: 700;
      letter-spacing: .06em;
      font-size: 20px;
      line-height: 1.2;
    }
    .hours { font-size: 12px; color: var(--sub); }
    .trust-badges {
      display: grid;
      gap: 6px;
      margin-top: 8px;
    }
    .trust-badge {
      display: grid;
      grid-template-columns: 20px 1fr;
      gap: 8px;
      align-items: start;
      padding: 7px 9px;
      border: 1px solid rgba(217,210,197,.86);
      background: rgba(255,253,248,.76);
      border-radius: 8px;
      color: var(--ink);
      font-size: 11px;
      line-height: 1.45;
      font-weight: 600;
    }
    .trust-badge::before {
      content: "";
      width: 10px;
      height: 10px;
      margin: 5px auto 0;
      transform: rotate(45deg);
      background: var(--sage);
      opacity: .65;
    }

    .emergency-bar {
      padding: 16px 0;
      background: rgba(227,236,230,.68);
      border-block: 1px solid rgba(92,140,122,.22);
    }
    .emergency-copy {
      display: grid;
      grid-template-columns: 34px 1fr;
      gap: 12px;
      align-items: start;
      color: var(--ink);
      font-size: 13px;
      line-height: 1.75;
      font-weight: 600;
    }
    .emergency-mark {
      width: 34px;
      height: 34px;
      border-radius: 8px;
      display: grid;
      place-items: center;
      background: var(--paper);
      border: 1px solid var(--line);
      color: var(--sage);
      font-weight: 700;
    }

    .band {
      padding: 42px 0;
      border-block: 1px solid rgba(217,210,197,.72);
    }
    .band.sage { background: var(--sage-soft); }
    .band.terracotta-soft { background: var(--terracotta-soft); }
    .band.terracotta {
      background: var(--terracotta);
      color: #fff;
      border: 0;
    }
    .band.terracotta h2,
    .band.terracotta p,
    .band.terracotta .phone,
    .band.terracotta .hours { color: #fff; }
    .band.terracotta .cta {
      background: #fff;
      color: var(--terracotta);
      box-shadow: none;
    }
    .band.terracotta-soft .cta {
      background: var(--terracotta);
      color: #fff;
    }
    .band-copy { display: grid; gap: 16px; }

    .empathy-box {
      padding: 24px 20px;
      background:
        linear-gradient(100deg,
          rgba(255,253,248,.96) 0%,
          rgba(255,253,248,.90) 52%,
          rgba(255,253,248,.34) 100%),
        url("assets/bg-empathy-window.svg") right bottom / 78% auto no-repeat,
        var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
      box-shadow: 0 16px 32px rgba(78,67,55,.06);
    }
    .empathy-box h2 {
      font-size: 24px;
      margin-bottom: 12px;
    }
    .empathy-box p {
      font-family: "Noto Serif JP", "Yu Mincho", serif;
      font-weight: 500;
      color: var(--ink);
      font-size: 17px;
      line-height: 1.85;
    }

    #empathy.section.compact { padding: 44px 0; }

    .check-list { display: grid; gap: 8px; }
    .check-item {
      display: grid;
      grid-template-columns: 40px 1fr;
      gap: 12px;
      align-items: center;
      padding: 11px;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
    }
    .check-item img { width: 40px; height: 40px; }
    .check-item span { font-weight: 600; line-height: 1.65; }

    .story-panel { display: grid; gap: 26px; }
    .soft-illust {
      border-radius: 8px;
      border: 1px solid var(--line);
      background: var(--paper);
      overflow: hidden;
    }
    .care-grid { display: grid; gap: 10px; }
    .care-card {
      padding: 18px;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
    }
    .care-card h3 {
      margin-bottom: 8px;
      color: var(--ink);
    }

    .cards { display: grid; gap: 10px; }
    .card {
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 16px 18px;
      position: relative;
      overflow: hidden;
      min-width: 0;
      display: grid;
      grid-template-columns: 44px 1fr;
      column-gap: 12px;
      row-gap: 6px;
    }
    .card::after {
      content: "";
      position: absolute;
      right: 14px;
      top: -22px;
      width: 42px;
      height: 42px;
      border: 1px solid rgba(201,123,94,.42);
      transform: rotate(45deg);
      display: none;
    }
    .icon {
      width: 44px;
      height: 44px;
      margin-bottom: 0;
      grid-row: 1;
      grid-column: 1;
      align-self: center;
      border-radius: 8px;
      background: #F5EEE6;
      padding: 6px;
    }
    .card h3 {
      margin-bottom: 0;
      grid-row: 1;
      grid-column: 2;
      align-self: center;
      font-size: 16px;
    }
    .card p {
      grid-column: 1 / -1;
      grid-row: 2;
      color: var(--sub);
      line-height: 1.7;
    }
    .disclosure {
      padding: 14px;
      border-radius: 8px;
      background: rgba(227,236,230,.6);
      border: 1px solid rgba(92,140,122,.24);
      color: var(--ink);
      font-weight: 600;
      font-size: 13px;
      line-height: 1.75;
    }
    #services .section-head { margin-bottom: 18px; }
    .services-illust { display: none; }

    .steps { display: grid; gap: 8px; }
    .step {
      display: grid;
      grid-template-columns: 44px 1fr;
      gap: 14px;
      padding: 14px;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
    }
    .step-icon { width: 44px; height: 44px; }
    .step-label {
      color: var(--terracotta);
      font-weight: 700;
      font-size: 12px;
      letter-spacing: .06em;
      margin-bottom: 4px;
    }

    .profile { display: grid; gap: 22px; }
    .portrait-frame {
      border-radius: 8px;
      overflow: hidden;
      border: 1px solid var(--line);
      background: var(--card);
    }
    .portrait-frame img {
      width: 100%;
      aspect-ratio: 1 / 1;
      object-fit: cover;
    }
    .quote {
      font-family: "Noto Serif JP", "Yu Mincho", serif;
      font-weight: 500;
      color: var(--ink);
      font-size: 18px;
      line-height: 1.8;
      padding-left: 18px;
      border-left: 3px solid var(--terracotta);
    }
    .profile-meta {
      display: grid;
      gap: 8px;
      font-size: 13px;
      color: var(--sub);
    }
    .profile-title {
      color: var(--ink);
      font-weight: 700;
      font-size: 15px;
    }
    .note { font-size: 12px; color: var(--sub); }

    .price-box {
      display: grid;
      gap: 14px;
      padding: 20px;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
    }
    .price-marker {
      display: inline-flex;
      width: fit-content;
      align-items: center;
      min-height: 36px;
      padding: 0 12px;
      border-radius: 8px;
      background: var(--sage-soft);
      color: var(--sage);
      font-weight: 700;
    }
    details {
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
      overflow: hidden;
    }
    summary {
      cursor: pointer;
      display: grid;
      grid-template-columns: 1fr 28px;
      gap: 12px;
      align-items: center;
      padding: 15px;
      font-weight: 700;
      color: var(--ink);
      line-height: 1.65;
    }
    summary::after {
      content: "";
      width: 28px;
      height: 28px;
      background: url("assets/icon-faq-toggle.svg") center / contain no-repeat;
      transition: transform .2s ease;
    }
    details[open] summary::after { transform: rotate(45deg); }
    .details-body {
      padding: 0 15px 16px;
      border-top: 1px solid var(--line);
      display: grid;
      gap: 14px;
    }
    .criteria-list, .admission-list { display: grid; gap: 12px; }
    .criteria-list li, .admission-list li {
      display: grid;
      grid-template-columns: 48px 1fr;
      gap: 12px;
      align-items: start;
      padding: 14px 0;
      border-bottom: 1px solid rgba(217,210,197,.7);
    }
    .criteria-list img, .admission-list img {
      width: 48px;
      height: 48px;
      border-radius: 8px;
      background: #F5EEE6;
      padding: 6px;
    }

    .faq { display: grid; gap: 12px; }
    .faq details p {
      padding: 0 18px 18px;
      border-top: 1px solid var(--line);
    }
    .medical-note {
      padding: 16px;
      background: rgba(255,253,248,.74);
      border-left: 4px solid var(--sage);
      color: var(--sub);
      font-weight: 600;
      line-height: 1.75;
    }

    .ethics-list {
      display: grid;
      gap: 10px;
      counter-reset: ethics;
      margin-bottom: 24px;
    }
    .ethics-list li {
      counter-increment: ethics;
      display: grid;
      grid-template-columns: 34px 1fr;
      gap: 12px;
      align-items: start;
      padding: 14px 0;
      border-bottom: 1px solid rgba(92,140,122,.18);
      font-weight: 600;
    }
    .ethics-list li::before {
      content: counter(ethics, decimal-leading-zero);
      color: var(--sage);
      font-weight: 700;
      letter-spacing: .06em;
    }
    .public-list { display: grid; gap: 12px; margin-top: 18px; }
    .public-item {
      display: grid;
      grid-template-columns: 46px 1fr;
      gap: 12px;
      align-items: center;
      padding: 16px;
      background: rgba(255,253,248,.78);
      border: 1px solid var(--line);
      border-radius: 8px;
    }
    .public-item img { width: 46px; height: 46px; }
    .public-item strong { display: block; color: var(--ink); }

    .footer {
      padding: 44px 0 32px;
      background: #EFE7DA;
      border-top: 1px solid var(--line);
    }
    .footer-grid { display: grid; gap: 22px; }
    .footer-logo { width: 138px; }
    .footer-links, .sibling-list, .company-list {
      display: grid;
      gap: 8px;
      color: var(--sub);
      font-size: 13px;
    }
    .footer a { color: var(--ink); text-decoration-color: rgba(92,140,122,.5); text-underline-offset: 4px; }
    .legal-links {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 14px;
      font-size: 12px;
      color: var(--sub);
    }
    .copyright { font-size: 11px; color: var(--sub); margin-top: 28px; }

    @media (min-width: 760px) {
      :root { --side: 36px; }
      body { font-size: 16px; }
      .container { width: min(100% - 72px, 720px); }
      .section { padding: 100px 0; }
      .section.compact { padding: 78px 0; }
      .section-head { gap: 14px; margin-bottom: 30px; }
      .lead { font-size: 16px; }
      h1 { font-size: 47px; }
      h2 { font-size: 32px; }
      .band { padding: 76px 0; }
      .ornament { width: 76px; }
      .ornament.top-right { top: 44px; }
      .ornament.bottom-left { bottom: 40px; }
      .hero { min-height: 88svh; }
      .hero-logo { left: 36px; width: 160px; }
      .hero-content { max-width: 570px; padding-top: 190px; gap: 18px; }
      .trust-badges { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
      .trust-badge { padding: 9px 10px; line-height: 1.55; }
      .empathy-box { padding: 28px 24px; background-size: auto, 40% auto, auto; }
      .empathy-box h2 { margin-bottom: 18px; }
      .empathy-box p { line-height: 1.9; }
      #empathy.section.compact { padding: 78px 0; }
      .check-list { gap: 12px; }
      .check-item { grid-template-columns: 44px 1fr; padding: 14px; }
      .check-item img { width: 44px; height: 44px; }
      .care-grid { gap: 14px; }
      .care-card { padding: 22px; }
      .cards { gap: 14px; }
      .cards.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
      .card { grid-template-columns: 1fr; padding: 22px; }
      .card .icon, .card h3, .card p { grid-column: auto; grid-row: auto; }
      .card .icon { width: 52px; height: 52px; margin-bottom: 12px; }
      .card h3 { margin-bottom: 8px; }
      .card::after { display: block; }
      .disclosure { padding: 16px; }
      #services .section-head { margin-bottom: 30px; }
      .services-illust { display: block; margin-bottom: 18px; }
      .care-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
      .story-panel, .profile { grid-template-columns: 1fr 300px; align-items: center; }
      .profile .portrait-frame { order: 2; }
      .steps { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
      .step { grid-template-columns: 1fr; padding: 20px; }
      .step-icon { width: 58px; height: 58px; }
      .price-box { gap: 18px; padding: 26px; }
      summary { padding: 18px; }
      .details-body { padding: 0 18px 20px; }
      .footer { padding: 64px 0 38px; }
      .footer-grid { grid-template-columns: 1.2fr 1fr; gap: 28px; }
    }

    @media (min-width: 1040px) {
      .container { width: min(100% - 160px, 1120px); }
      .hero { min-height: 980px; }
      .hero-content { max-width: 650px; }
      h1 { font-size: 56px; }
      h2 { font-size: 36px; }
      .public-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .price-box { padding: 34px; }
      .hero-media img { object-position: 72% top; }
    }

    /* === v2 (2026-06-09) 追加CSS === */

    /* PRICE: 提携先の選定基準 — 常時表示ブロック（details/summary を廃し、トグル非依存） */
    .criteria-block {
      padding: 18px;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
      display: grid;
      gap: 12px;
    }
    .criteria-title {
      font-weight: 700;
      color: var(--ink);
      line-height: 1.65;
    }
    .criteria-lead {
      color: var(--sub);
      line-height: 1.85;
    }
    /* 常時表示化に伴い、リスト先頭 li 上の余白を詰める（旧 .details-body 相当の収まりを維持） */
    .criteria-block .criteria-list { margin-top: 2px; }
    @media (min-width: 760px) {
      .criteria-block { padding: 22px; }
    }

    /* === LINE相談ボタン（.cta-wrap 内・電話CTAの隣） === */
    .cta-line {
      background: #06C755;
      color: #fff;
      box-shadow: 0 12px 24px rgba(6, 199, 85, .18);
    }
    .cta-line img { width: 28px; height: 28px; }
    /* 最終CTA（テラコッタ地）上でもLINE緑を維持し白文字で視認性を確保 */
    .band.terracotta .cta-line {
      background: #06C755;
      color: #fff;
      box-shadow: none;
    }

    /* === 常時表示の固定フッターCTAバー === */
    .fixed-cta {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 1000;
      display: flex;
      width: 100%;
      gap: 1px;
      background: rgba(217, 210, 197, .9);
      box-shadow: 0 -6px 18px rgba(43, 42, 40, .14);
      padding: max(0px, env(safe-area-inset-bottom)) 0 0;
    }
    .fixed-cta-btn {
      flex: 1 1 50%;
      min-width: 0;
      min-height: 60px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      color: #fff;
      text-decoration: none;
      font-weight: 700;
      font-size: 15px;
      line-height: 1.2;
      padding: 8px 10px;
    }
    .fixed-cta-btn img { width: 24px; height: 24px; }
    .fixed-cta-tel { background: var(--terracotta); }
    .fixed-cta-line { background: #06C755; }

    /* 固定バーが本文末尾・フッターを隠さないための余白（バー高さ約60px＋安全域） */
    .page { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }

    @media (min-width: 760px) {
      /* 760px+ は中央寄せ（max-width）で帯化 */
      .fixed-cta {
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        width: min(100% - 24px, 520px);
        bottom: 16px;
        border-radius: 10px;
        overflow: hidden;
        gap: 2px;
      }
      .fixed-cta-btn { min-height: 64px; font-size: 16px; }
      .page { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
    }
