/* =========================================================
   かんだ整体院 サービス紹介ページ（assets/css/pages.css）
   「地域の健康教室」「企業の健康経営」で読み込まれます。
   サイト全体と同じ色・文字の大きさで作っています。
   ========================================================= */

.kp {
  --kp-green: #2E6B4C;
  --kp-green-dark: #25583E;
  --kp-accent: #4BA37A;
  --kp-pale: #EEF5F0;
  --kp-alt: #F5FAF6;
  --kp-card: #F8FBF9;
  --kp-line: #E6ECE8;
  --kp-ink: #26332B;
  --kp-text: #3D4A42;
  --kp-sub: #66736B;
  color: var(--kp-text);
}

/* ---- セクションの共通枠 ---- */
.kp-sec { padding: 68px 0 74px; }
.kp-sec--alt { background: var(--kp-alt); }
.kp-wrap {
  width: 100%;
  max-width: min(1200px, 92vw);
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}
.kp-narrow { max-width: 880px; margin: 0 auto; }
.kp-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--kp-accent);
  text-align: center;
}
.kp-h2 {
  margin-top: 10px;
  font-size: clamp(21px, 2.2vw, 28px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: var(--kp-ink);
  text-align: center;
}
.kp-intro {
  margin: 16px auto 0;
  max-width: 880px;
  font-size: 16px;
  line-height: 2;
  text-align: left;
}
.kp-p { margin-top: 16px; font-size: 16px; line-height: 2; }
.kp-em {
  margin-top: 16px;
  font-size: clamp(16px, 1.5vw, 19px);
  font-weight: 700;
  line-height: 1.9;
  color: var(--kp-green);
}

/* ---- トップ（ヒーロー） ---- */
.kp-hero { background: var(--kp-pale); padding: 56px 0 64px; }
.kp-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
}
.kp-hero__grid--nophoto { grid-template-columns: minmax(0, 1fr); max-width: 880px; margin: 0 auto; text-align: left; }
.kp-hero .kp-eyebrow { text-align: inherit; }
.kp-hero h1 {
  margin-top: 12px;
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.03em;
  color: var(--kp-ink);
}
.kp-hero__catch {
  margin-top: 18px;
  font-size: clamp(17px, 1.7vw, 21px);
  font-weight: 700;
  line-height: 1.8;
  color: var(--kp-green);
}
.kp-hero__lead { margin-top: 14px; font-size: 16px; line-height: 2; }
.kp-hero__photo img,
.kp-photo-ph {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 10px;
}
.kp-photo-ph {
  background: #E3ECE6;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7FA98E;
  font-size: 13px;
}

/* ---- ボタン ---- */
.kp-btns { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 12px; }
.kp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 56px;
  padding: 0 30px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  box-sizing: border-box;
}
.kp-btn--main { background: var(--kp-green); color: #fff; }
.kp-btn--main:hover { background: var(--kp-green-dark); color: #fff; }
.kp-btn--sub { background: #fff; color: var(--kp-green); border: 1px solid #CBDCD1; }
.kp-btn--sub:hover { background: var(--kp-alt); color: var(--kp-green); }
.kp-btn small { font-size: 12px; font-weight: 400; color: var(--kp-sub); }
.kp-btn--main small { color: rgba(255,255,255,.8); }
.kp-btn--main[data-tel-btn] { font-size: 18px; letter-spacing: .02em; }

/* ---- カード ---- */
.kp-cards {
  margin: 34px auto 0;
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.kp-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kp-card {
  background: #fff;
  border: 1px solid var(--kp-line);
  border-radius: 8px;
  padding: 26px 26px 28px;
}
.kp-sec--alt .kp-card { background: #fff; }
.kp-sec:not(.kp-sec--alt) .kp-card { background: var(--kp-card); }
.kp-card__no {
  display: block;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  color: var(--kp-green);
  margin-bottom: 12px;
}
.kp-card__label {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--kp-accent);
  margin-bottom: 6px;
}
.kp-card h3 {
  font-size: clamp(16px, 1.4vw, 18px);
  font-weight: 700;
  line-height: 1.7;
  color: var(--kp-ink);
}
.kp-card p { margin-top: 10px; font-size: 15px; line-height: 1.9; }
.kp-card ul { margin-top: 12px; list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.kp-card li {
  font-size: 13px;
  line-height: 1.5;
  background: var(--kp-pale);
  color: var(--kp-green);
  border-radius: 999px;
  padding: 4px 12px;
}
.kp-note { margin: 18px auto 0; max-width: 880px; font-size: 13px; color: var(--kp-sub); text-align: left; }

/* ---- お悩みチェック ---- */
.kp-checks {
  margin: 30px auto 0;
  max-width: 880px;
  list-style: none;
  padding: 0;
  display: grid;
  gap: 12px;
}
.kp-checks li {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 12px;
  background: #fff;
  border: 1px solid var(--kp-line);
  border-radius: 8px;
  padding: 18px 22px;
}
.kp-checks li::before {
  content: "";
  width: 22px;
  height: 22px;
  margin-top: 3px;
  border-radius: 50%;
  background: var(--kp-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E6B4C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-9'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.kp-checks strong { display: block; font-size: 16px; color: var(--kp-ink); line-height: 1.7; }
.kp-checks span { display: block; margin-top: 4px; font-size: 15px; line-height: 1.85; }

/* ---- 強調の囲み ---- */
.kp-callout {
  margin: 28px auto 0;
  max-width: 880px;
  background: #fff;
  border: 1px solid var(--kp-line);
  border-radius: 8px;
  padding: 24px 28px;
}
.kp-callout__title { font-size: 16px; font-weight: 700; color: var(--kp-ink); }
.kp-callout p { margin-top: 8px; font-size: 15px; line-height: 1.9; }

/* ---- タグの一覧 ---- */
.kp-tags {
  margin: 26px auto 0;
  max-width: 880px;
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 10px;
}
.kp-tags li {
  background: #fff;
  border: 1px solid #CBDCD1;
  color: var(--kp-green);
  font-size: 14px;
  font-weight: 700;
  border-radius: 999px;
  padding: 8px 18px;
}

/* ---- 目安の表 ---- */
.kp-info {
  margin: 30px auto 0;
  max-width: 760px;
  border-collapse: collapse;
  width: 100%;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--kp-line);
}
.kp-info th,
.kp-info td {
  padding: 16px 20px;
  border-bottom: 1px solid var(--kp-line);
  text-align: left;
  vertical-align: top;
  font-size: 15px;
  line-height: 1.8;
}
.kp-info tr:last-child th,
.kp-info tr:last-child td { border-bottom: 0; }
.kp-info th { width: 32%; background: var(--kp-card); color: var(--kp-ink); font-weight: 700; }

/* ---- 小さく始める（矢印でつなぐ流れ） ---- */
.kp-steps {
  margin: 30px auto 0;
  max-width: 880px;
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
}
.kp-steps li {
  position: relative;
  background: #fff;
  border: 1.5px solid #9DBFA9;
  border-radius: 8px;
  padding: 16px 12px;
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: var(--kp-ink);
  line-height: 1.6;
}
.kp-steps li:first-child { background: var(--kp-green); border-color: var(--kp-green); color: #fff; }
.kp-steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -19px;
  top: 50%;
  width: 9px;
  height: 9px;
  border-top: 3px solid var(--kp-green);
  border-right: 3px solid var(--kp-green);
  transform: translateY(-50%) rotate(45deg);
}

/* ---- 流れ（STEP） ---- */
.kp-flow {
  margin: 34px auto 0;
  max-width: 880px;
  list-style: none;
  padding: 0;
  counter-reset: kp-step;
  display: grid;
  gap: 14px;
}
.kp-flow li {
  counter-increment: kp-step;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--kp-line);
  border-radius: 8px;
  padding: 18px 22px;
}
.kp-flow li::before {
  content: "STEP\A" counter(kp-step, decimal-leading-zero);
  white-space: pre;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1px solid #CBDCD1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.15;
  color: var(--kp-green);
}
.kp-flow h3 { font-size: 16px; font-weight: 700; color: var(--kp-ink); }
.kp-flow p { margin-top: 4px; font-size: 15px; line-height: 1.85; }

/* ---- カードのアイコン・写真 ---- */
.kp-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: var(--kp-pale);
  color: var(--kp-green);
}
.kp-sec--alt .kp-card__icon { background: var(--kp-alt); }
.kp-card__img { margin: -26px -26px 18px; }
.kp-card__img img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 8px 8px 0 0;
}
.kp-card:has(.kp-card__img) { overflow: hidden; }

/* ---- 文章と写真の横並び ---- */
.kp-split {
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 40px;
  align-items: center;
  max-width: 1040px;
}
.kp-split .kp-p { margin-top: 0; }
.kp-split--nophoto { grid-template-columns: minmax(0, 1fr); max-width: 880px; }
.kp-split__photo img { display: block; }
.kp-split__photo img,
.kp-split__photo .kp-photo-ph {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 8px;
}
.kp-sec .kp-split { margin-top: 28px; }

/* ---- お問い合わせフォーム（Contact Form 7） ---- */
.kp-sec--form { background: var(--kp-pale); scroll-margin-top: 80px; }
.kp-form {
  margin: 30px auto 0;
  max-width: 760px;
  background: #fff;
  border: 1px solid var(--kp-line);
  border-radius: 10px;
  padding: 36px 40px 40px;
  box-sizing: border-box;
}
.kp-field + .kp-field { margin-top: 22px; }
.kp-field > label,
.kp-field__label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: var(--kp-ink);
  margin-bottom: 8px;
}
.kp-req,
.kp-opt {
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  padding: 4px 7px;
  border-radius: 4px;
}
.kp-req { background: #C8553D; color: #fff; }
.kp-opt { background: #EEF1EF; color: var(--kp-sub); }
.kp-form .wpcf7-form-control-wrap { display: block; }
.kp-form input[type="text"],
.kp-form input[type="email"],
.kp-form input[type="tel"],
.kp-form select,
.kp-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 14px;
  border: 1px solid #CBD6CF;
  border-radius: 8px;
  background: #FBFCFB;
  font: inherit;
  font-size: 16px;
  line-height: 1.6;
  color: var(--kp-ink);
}
.kp-form textarea { min-height: 170px; resize: vertical; }
.kp-form input:focus,
.kp-form select:focus,
.kp-form textarea:focus {
  outline: none;
  border-color: var(--kp-accent);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(75,163,122,.18);
}
.kp-form .wpcf7-checkbox,
.kp-form .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.kp-form .wpcf7-list-item { margin: 0; }
.kp-form .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border: 1px solid #CBD6CF;
  border-radius: 999px;
  font-size: 14px;
  cursor: pointer;
  background: #fff;
}
.kp-form .wpcf7-list-item input { accent-color: var(--kp-green); width: 16px; height: 16px; margin: 0; }
.kp-form .wpcf7-list-item label:has(input:checked) { border-color: var(--kp-green); background: var(--kp-pale); color: var(--kp-green); font-weight: 700; }
.kp-form__note { margin-top: 6px; font-size: 13px; color: var(--kp-sub); line-height: 1.7; }
.kp-form__privacy {
  margin-top: 26px;
  padding: 14px 16px;
  background: var(--kp-card);
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.8;
  color: var(--kp-sub);
}
.kp-form__submit { margin-top: 26px; text-align: center; }
.kp-form input[type="submit"] {
  appearance: none;
  border: 0;
  min-width: 280px;
  min-height: 58px;
  padding: 0 34px;
  border-radius: 999px;
  background: var(--kp-green);
  color: #fff;
  font: inherit;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
}
.kp-form input[type="submit"]:hover { background: var(--kp-green-dark); }
.kp-form input[type="submit"]:disabled { opacity: .6; cursor: wait; }
.kp-form .wpcf7-spinner { display: block; margin: 12px auto 0; }
.kp-form .wpcf7-not-valid { border-color: #C8553D; background: #FFF8F6; }
.kp-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; color: #C8553D; }
.kp-form .wpcf7 form .wpcf7-response-output {
  margin: 22px 0 0;
  padding: 14px 16px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.8;
}
.kp-form .wpcf7 form.sent .wpcf7-response-output { border-color: var(--kp-accent); background: var(--kp-pale); color: var(--kp-green); }

/* ---- 確認画面 ---- */
.kp-form form.kp-is-confirm { display: none; }
.kp-confirm__title { font-size: 18px; font-weight: 700; color: var(--kp-ink); text-align: center; }
.kp-confirm__lead { margin-top: 8px; font-size: 14px; line-height: 1.8; color: var(--kp-sub); text-align: center; }
.kp-confirm__table {
  margin-top: 22px;
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--kp-line);
}
.kp-confirm__table th,
.kp-confirm__table td {
  padding: 14px 10px;
  border-bottom: 1px solid var(--kp-line);
  text-align: left;
  vertical-align: top;
  font-size: 15px;
  line-height: 1.8;
}
.kp-confirm__table th { width: 34%; color: var(--kp-ink); font-weight: 700; }
.kp-confirm__table td { white-space: pre-wrap; word-break: break-word; }
.kp-confirm__table td.is-empty { color: #A3ADA7; }
.kp-confirm__btns { margin-top: 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.kp-confirm__btns .kp-btn { font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; }
.kp-confirm__btns .kp-btn--main { border: 0; min-width: 260px; }
.kp-confirm__btns .kp-btn:disabled { opacity: .6; cursor: wait; }

/* ---- サンクスページ ---- */
.kp-thanks { background: var(--kp-pale); padding: 64px 0 80px; }
.kp-thanks__box {
  max-width: 720px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--kp-line);
  border-radius: 10px;
  padding: 44px 40px 46px;
  text-align: center;
}
.kp-thanks__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--kp-green);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kp-thanks__lead { margin-top: 16px; font-size: 16px; line-height: 2; }
.kp-thanks__steps {
  margin: 26px auto 0;
  padding: 0;
  list-style: none;
  counter-reset: kp-thx;
  display: grid;
  gap: 10px;
  text-align: left;
}
.kp-thanks__steps li {
  counter-increment: kp-thx;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 4px 12px;
  background: var(--kp-card);
  border-radius: 6px;
  padding: 16px 18px;
}
.kp-thanks__steps li::before {
  content: counter(kp-thx);
  grid-row: span 2;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid #CBDCD1;
  background: #fff;
  color: var(--kp-green);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kp-thanks__steps strong { font-size: 15px; color: var(--kp-ink); }
.kp-thanks__steps span { font-size: 14px; line-height: 1.8; }
.kp-thanks__note { margin-top: 18px; font-size: 13px; line-height: 1.8; color: var(--kp-sub); text-align: left; }
.kp-thanks__tel { margin-top: 18px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.kp-thanks__tel a { font-size: 22px; font-weight: 700; color: var(--kp-green); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.kp-thanks__tel small { font-size: 12px; font-weight: 400; color: var(--kp-sub); }
.kp-thanks__tel span { font-size: 12px; color: var(--kp-sub); }
.kp-thanks__content { margin-top: 20px; text-align: left; font-size: 15px; line-height: 1.9; }

/* ---- 最後の相談ボックス ---- */
.kp-contact {
  margin: 30px auto 0;
  max-width: 760px;
  background: #fff;
  border: 1px solid var(--kp-line);
  border-radius: 10px;
  padding: 32px 28px 34px;
  text-align: center;
}
.kp-contact h3 { font-size: clamp(17px, 1.6vw, 20px); font-weight: 700; color: var(--kp-ink); line-height: 1.7; }
.kp-contact .kp-btns { justify-content: center; }
.kp-tel-note { margin-top: 14px; font-size: 14px; line-height: 1.8; color: var(--kp-text); }
.kp-tel-note strong { color: var(--kp-green); }
.kp-contact .kp-tel-note { text-align: center; }
.kp-contact__hours { margin-top: 12px; font-size: 13px; color: var(--kp-sub); }
.kp-disclaimer { margin-top: 18px; font-size: 13px; color: var(--kp-sub); text-align: center; }

/* ---- スマホ ---- */
@media (max-width: 900px) {
  .kp-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .kp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kp-split { grid-template-columns: minmax(0, 1fr); gap: 22px; }
}
@media (max-width: 640px) {
  .kp-sec { padding: 52px 0 56px; }
  .kp-wrap { padding: 0 16px; }
  .kp-cards, .kp-cards--2 { grid-template-columns: minmax(0, 1fr); }
  .kp-btn { width: 100%; }
  .kp-steps { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .kp-steps li:not(:last-child)::after { right: auto; left: 50%; top: auto; bottom: -19px; transform: translateX(-50%) rotate(135deg); }
  .kp-info th { width: 36%; padding: 14px; }
  .kp-info td { padding: 14px; }
  .kp-flow li { grid-template-columns: 52px minmax(0, 1fr); padding: 16px; gap: 14px; }
  .kp-flow li::before { width: 52px; height: 52px; font-size: 15px; }
  .kp-card__icon { width: 46px; height: 46px; }
  .kp-form { padding: 24px 18px 28px; }
  .kp-form input[type="submit"] { width: 100%; min-width: 0; }
  .kp-confirm__table th, .kp-confirm__table td { display: block; width: auto; padding: 0 4px; border: 0; }
  .kp-confirm__table th { padding-top: 14px; font-size: 13px; color: var(--kp-sub); }
  .kp-confirm__table td { padding-bottom: 14px; border-bottom: 1px solid var(--kp-line); }
  .kp-confirm__btns .kp-btn { width: 100%; min-width: 0; }
  .kp-thanks__box { padding: 32px 20px 34px; }
}

/* =========================================================
   企業の健康経営ページ（cp-）
   ========================================================= */
.cp { color:#3D4A42; }
.cp section, .cp > div[id] { scroll-margin-top:100px; }
html { scroll-behavior:smooth; }
/* キービジュアル */
.cp-kv { position:relative; margin-left:5vw; height:clamp(320px,36vw,480px); overflow:hidden; border-bottom-left-radius:16px; }
.cp-kv__img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; animation:cp-kv 1.8s cubic-bezier(.165,.84,.44,1) both; }
.cp-kv__img--none { background:linear-gradient(135deg,#5A9A75,#2E6B4C 55%,#25583E); }
@keyframes cp-kv { from { transform:scale(1.06); } to { transform:scale(1); } }
.cp-kv::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,38,28,.66),rgba(20,38,28,.1) 72%); }
.cp-kv__circle { position:absolute; z-index:1; right:6%; top:-18%; width:46%; aspect-ratio:1; border:1px solid rgba(255,255,255,.55); border-radius:50%; }
.cp-kv__t { position:absolute; z-index:2; left:clamp(24px,6vw,96px); top:44%; transform:translateY(-50%); margin:0; color:#fff; }
.cp-kv__en { display:block; font-size:clamp(13px,1.2vw,16px); font-weight:700; letter-spacing:.24em; }
.cp-kv__jp { display:block; margin-top:12px; font-size:clamp(30px,3.4vw,46px); font-weight:700; letter-spacing:.06em; line-height:1.4; }
.cp-kv__lead { display:block; margin-top:14px; font-size:clamp(14px,1.2vw,17px); font-weight:500; }
/* ページ内目次 */
.cp-idx { position:relative; z-index:3; max-width:1100px; margin:-46px auto 0; padding:0 24px; }
.cp-idx ul { list-style:none; margin:0; padding:10px; display:grid; grid-template-columns:repeat(5,1fr); background:#fff; border-radius:8px; box-shadow:0 12px 30px rgba(24,48,34,.12); }
.cp-idx li + li { border-left:1px solid #E6ECE8; }
.cp-idx a { display:flex; flex-direction:column; align-items:center; gap:6px; padding:14px 8px; border-radius:6px; text-align:center; font-size:14px; font-weight:700; color:#26332B; text-decoration:none; transition:background-color .3s ease, color .3s ease; }
.cp-idx small { font-size:11px; letter-spacing:.12em; color:#4BA37A; }
.cp-idx a::after { content:""; width:7px; height:7px; border-right:2px solid #4BA37A; border-bottom:2px solid #4BA37A; transform:rotate(45deg); transition:transform .3s ease; }
.cp-idx a:hover { background:#EEF5F0; color:#2E6B4C; }
.cp-idx a:hover::after { transform:rotate(45deg) translate(2px,2px); }
.cp-crumb { max-width:1200px; margin:0 auto; padding:18px 32px 0; font-size:12px; color:#66736B; box-sizing:border-box; }
.cp-crumb a { color:#2E6B4C; text-decoration:none; }
.cp-crumb a:hover { text-decoration:underline; }
.cp-center { text-align:center; }
.cp-note { margin-top:22px; font-size:12px; color:#66736B; }
/* 導入＋流れる写真 */
.cp-intro { padding:100px 0 0; text-align:center; overflow:hidden; }
.cp-intro__catch { margin:0; font-size:clamp(22px,2.6vw,34px); font-weight:700; line-height:1.7; letter-spacing:.06em; color:#26332B; }
.cp-intro__catch em { font-style:normal; background:linear-gradient(transparent 62%,#CFE7D8 62%); }
.cp-intro__tx { max-width:760px; margin:20px auto 0; font-size:15px; line-height:2.1; }
.cp-photos { margin-top:56px; overflow:hidden; }
.cp-photos__track { display:flex; gap:22px; width:max-content; animation:cp-flow 50s linear infinite; }
.cp-photos__track span { flex:none; width:240px; aspect-ratio:3 / 4; border-radius:10px; overflow:hidden; background:#E8EFEA; }
.cp-photos__track span:nth-child(even) { margin-top:46px; }
.cp-photos__track img { display:block; width:100%; height:100%; object-fit:cover; }
@keyframes cp-flow { to { transform:translateX(-50%); } }
/* お悩み */
.cp-iss { padding:110px 0; }
.cp-iss__grid { display:grid; grid-template-columns:4fr 7fr; gap:60px; align-items:start; }
.cp-iss__grid.is-noimg { grid-template-columns:4fr 7fr; }
.cp-iss__img { margin-top:28px; border-radius:12px; overflow:hidden; aspect-ratio:4 / 5; }
.cp-iss__img img { display:block; width:100%; height:100%; object-fit:cover; }
.iss-list { margin:0; padding:0; list-style:none; border-top:2px solid #2E6B4C; display:grid; grid-auto-rows:1fr; }
.iss-list li { display:grid; grid-template-columns:40px 1fr; gap:18px; align-items:center; padding:24px 4px; border-bottom:1px solid #E2EAE5; }
.iss-list .chk { width:30px; height:30px; box-sizing:border-box; border-radius:8px; border:2px solid #4BA37A; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E6B4C' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/18px no-repeat; }
.iss-list strong { display:block; font-size:18px; line-height:1.6; color:#26332B; }
.iss-list span { display:block; margin-top:4px; font-size:14px; line-height:1.8; color:#66736B; }
/* 答えの帯 */
.cp-ans { position:relative; overflow:hidden; background:#2E6B4C; color:#fff; padding:70px 0; }
.cp-ans__c1, .cp-ans__c2 { position:absolute; top:50%; aspect-ratio:1; border:1px solid rgba(255,255,255,.3); border-radius:50%; transform:translateY(-50%); }
.cp-ans__c1 { right:-6%; width:420px; }
.cp-ans__c2 { right:4%; width:260px; }
.cp-ans__in { display:flex; flex-wrap:wrap; gap:24px 60px; align-items:center; }
.cp-ans h2 { flex:1; min-width:280px; margin:0; font-size:clamp(20px,2.2vw,28px); line-height:1.7; color:#fff; }
.cp-ans p { flex:1; min-width:280px; margin:0; font-size:15px; line-height:2; color:#E3F0E8; }
/* サービス */
.cp-svc { padding:110px 0; background:#F5FAF6; }
.cp-svc .cp-center { margin:14px 0 0; font-size:15px; }
.svc-list { margin:48px 0 0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.svc-card { background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 10px 26px rgba(24,48,34,.07); }
.svc-card__img { position:relative; aspect-ratio:16 / 10; overflow:hidden; }
.svc-card__ph, .svc-card__ph img { display:block; width:100%; height:100%; object-fit:cover; }
.svc-card__noimg { display:flex; align-items:center; justify-content:center; width:100%; height:100%; background:linear-gradient(135deg,#E6F2EA,#D3E7DA); }
.svc-card__noimg .kp-card__icon { width:84px; height:84px; margin:0; background:#fff; box-shadow:0 6px 18px rgba(24,48,34,.08); }
.svc-card__noimg .kp-card__icon svg { width:40px; height:40px; }
.svc-card__no { position:absolute; left:22px; top:12px; font-family:"Helvetica Neue", Arial, sans-serif; font-weight:300; font-size:58px; line-height:1; color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.25); }
.svc-card__body { padding:24px 26px 28px; }
.svc-card__lab { margin:0; font-size:11px; font-weight:700; letter-spacing:.16em; color:#4BA37A; }
.svc-card h3 { margin:6px 0 0; font-size:19px; color:#26332B; }
.svc-card__body > p:not(.svc-card__lab) { margin:10px 0 0; font-size:14px; line-height:1.9; }
.svc-card__tags { margin-top:14px; display:flex; flex-wrap:wrap; gap:6px; }
.svc-card__tags span { font-size:12px; color:#2E6B4C; background:#EEF5F0; border-radius:999px; padding:4px 12px; }
/* 選ばれる理由 */
.cp-rsn { position:relative; padding:120px 0; overflow:hidden; }
.cp-rsn .bigen { left:-20px; top:30px; }
.cp-rsn__grid { display:grid; grid-template-columns:5fr 7fr; gap:64px; align-items:center; }
.cp-rsn__img { position:relative; }
.cp-rsn__photo { border-radius:12px; overflow:hidden; aspect-ratio:4 / 5; background:#E9E4DC; }
.cp-rsn__photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 20%; transform:scale(1.06); }
.cp-rsn__badge { position:absolute; right:-26px; bottom:30px; width:150px; height:150px; border-radius:50%; background:#2E6B4C; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; font-size:12px; line-height:1.5; box-shadow:0 12px 28px rgba(46,107,76,.35); }
.cp-rsn__badge b { font-size:20px; letter-spacing:.06em; }
.cp-rsn__lead { margin:22px 0 0; font-size:15px; line-height:2.1; }
.rsn-pts { margin:30px 0 0; padding:0; list-style:none; display:grid; grid-auto-rows:1fr; }
.rsn-pts li { display:grid; grid-template-columns:70px 1fr; gap:18px; align-items:center; padding:22px 0; border-top:1px solid #E2EAE5; }
.rsn-pts li:last-child { border-bottom:1px solid #E2EAE5; }
.rsn-pts b { font-family:"Helvetica Neue", Arial, sans-serif; font-weight:300; font-size:40px; line-height:1; color:#4BA37A; }
.rsn-pts strong { display:block; font-size:17px; color:#26332B; }
.rsn-pts span { display:block; margin-top:4px; font-size:14px; line-height:1.8; }
/* 導入の流れ */
.cp-fl { padding:110px 0; }
.fl-list { position:relative; max-width:860px; margin:48px auto 0; padding:0; list-style:none; }
.fl-list::before { content:""; position:absolute; left:39px; top:20px; bottom:20px; border-left:2px solid #DCEBE1; }
.fl-list li { position:relative; display:grid; grid-template-columns:80px 1fr; gap:24px; padding:14px 0; }
.fl-list i { position:relative; z-index:1; width:80px; height:80px; box-sizing:border-box; border-radius:50%; background:#fff; border:1px solid #CBDCD1; display:flex; flex-direction:column; align-items:center; justify-content:center; font-style:normal; font-size:10px; font-weight:700; letter-spacing:.1em; color:#4BA37A; }
.fl-list i b { font-size:24px; letter-spacing:0; color:#2E6B4C; }
.fl-list div { background:#F5FAF6; border-radius:8px; padding:20px 24px; }
.fl-list h3 { margin:0; font-size:17px; color:#26332B; }
.fl-list p { margin:6px 0 0; font-size:14px; line-height:1.9; }
.cp-info { margin:40px auto 0; max-width:760px; width:100%; border-collapse:collapse; background:#fff; border:1px solid #E2EAE5; border-radius:8px; overflow:hidden; }
.cp-info th, .cp-info td { padding:16px 20px; border-bottom:1px solid #E2EAE5; text-align:left; font-size:15px; line-height:1.8; }
.cp-info th { width:32%; background:#F8FBF9; color:#26332B; }
.cp-ind { margin-top:60px; text-align:center; }
.cp-ind p { margin:0; font-size:15px; font-weight:700; color:#26332B; }
.cp-ind ul { margin:18px auto 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:10px; max-width:880px; }
.cp-ind li { font-size:14px; font-weight:700; color:#2E6B4C; background:#fff; border:1px solid #CBDCD1; border-radius:999px; padding:9px 18px; }
/* お問い合わせの箱 */
.cp-cta { max-width:1200px; margin:0 auto; padding:0 32px 110px; box-sizing:border-box; }
.cp-cta__box { position:relative; overflow:hidden; border-radius:14px; background:#2E6B4C; color:#fff; padding:64px 56px; display:grid; grid-template-columns:7fr 5fr; gap:40px; align-items:center; }
.cp-cta__circle { position:absolute; left:-80px; bottom:-160px; width:420px; aspect-ratio:1; border:1px solid rgba(255,255,255,.3); border-radius:50%; }
.cp-cta h2 { margin:0; font-size:clamp(22px,2.3vw,30px); line-height:1.6; color:#fff; }
.cp-cta p { margin:14px 0 0; font-size:15px; line-height:1.9; color:#E3F0E8; }
.cp-cta__btns { display:grid; gap:12px; }
.cp-cta__btns a { display:flex; align-items:center; justify-content:center; gap:12px; min-height:66px; border-radius:999px; font-weight:700; text-decoration:none; transition:background-color .3s ease; }
.cp-cta__mail { background:#fff; color:#2E6B4C; font-size:16px; }
.cp-cta__mail:hover { background:#EEF5F0; color:#2E6B4C; }
.cp-cta__tel { border:1px solid rgba(255,255,255,.6); color:#fff; font-size:20px; }
.cp-cta__tel:hover { background:rgba(255,255,255,.1); color:#fff; }
.cp-cta__tel small { font-size:12px; font-weight:400; opacity:.8; }
/* 関連ページ */
.cp-rel { position:relative; padding:96px 0 110px; background:#F5FAF6; overflow:hidden; }
.cp-rel .bigen { right:-30px; top:20px; }
.rel-list { margin:40px 0 0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.rc { display:block; color:inherit; text-decoration:none; }
.rc__img { position:relative; display:block; aspect-ratio:4 / 3; border-radius:8px; overflow:hidden; background:#DCEBE1; }
.rc__img img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.165,.84,.44,1); }
.rc__noimg { display:block; width:100%; height:100%; background:linear-gradient(135deg,#5A9A75,#2E6B4C); }
.rc__arrow { position:absolute; right:14px; bottom:14px; width:50px; height:50px; border-radius:50%; background:#2E6B4C; transition:transform .4s ease; }
.rc__arrow::before { content:""; position:absolute; left:50%; top:50%; width:18px; height:10px; transform:translate(-50%,-50%); background:#fff; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 12'%3E%3Cpath d='M0 6h22M17 1l5 5-5 5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 12'%3E%3Cpath d='M0 6h22M17 1l5 5-5 5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat; transition:transform .4s ease; }
.rc__en { display:block; margin-top:16px; font-size:12px; font-weight:700; letter-spacing:.14em; color:#4BA37A; }
.rc__jp { display:block; margin-top:4px; font-size:18px; font-weight:700; color:#26332B; transition:color .3s ease; }
.rc__tx { display:block; margin-top:6px; font-size:14px; line-height:1.8; }
@media (hover:hover) {
  .rc:hover .rc__img img { transform:scale(1.06); }
  .rc:hover .rc__arrow { transform:scale(1.1); }
  .rc:hover .rc__arrow::before { transform:translate(-30%,-50%); }
  .rc:hover .rc__jp { color:#2E6B4C; }
}
@media (max-width:900px) {
  .svc-list, .rel-list { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:767px) {
  .cp-kv { margin-left:16px; border-bottom-left-radius:12px; }
  .cp-idx { margin-top:-30px; padding:0 16px; }
  .cp-idx ul { grid-template-columns:repeat(3,1fr); padding:6px; }
  .cp-idx li + li { border-left:0; }
  .cp-idx a { font-size:11px; padding:10px 4px; }
  .cp-crumb { padding:16px 18px 0; }
  .cp-intro { padding-top:70px; }
  .cp-photos__track span { width:160px; }
  .cp-iss, .cp-svc, .cp-rsn, .cp-fl, .cp-rel { padding-top:70px; padding-bottom:76px; }
  .cp-iss__grid, .cp-iss__grid.is-noimg, .cp-rsn__grid, .cp-cta__box { grid-template-columns:minmax(0,1fr); gap:30px; }
  .iss-list strong { font-size:16px; }
  .cp-rsn__badge { right:10px; width:120px; height:120px; }
  .cp-rsn__badge b { font-size:17px; }
  .fl-list::before { left:31px; }
  .fl-list li { grid-template-columns:64px 1fr; gap:14px; }
  .fl-list i { width:64px; height:64px; }
  .fl-list i b { font-size:20px; }
  .cp-cta { padding:0 16px 76px; }
  .cp-cta__box { padding:40px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .cp-kv__img, .cp-photos__track { animation:none; }
  html { scroll-behavior:auto; }
}

/* ---- 企業・地域：ページ内リンクの数に合わせて並べる ---- */
.cp-idx ul { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); }

/* ---- 企業・地域：Instagram（活動の様子） ---- */
.cp-ig { padding:100px 0 110px; background:#F6F4EF; }
.cp-ig__head { display:grid; grid-template-columns:auto 1fr auto; gap:20px 56px; align-items:end; }
.cp-ig__lead { margin:0; font-size:15px; line-height:2; color:#3D4A42; }
.cp-ig__feed { margin-top:44px; }
.cp-ig__feed--mock { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.cp-ig__feed--mock span { aspect-ratio:1; border-radius:8px; background:linear-gradient(135deg,#ECE8DF,#E2DED3); position:relative; }
.cp-ig__feed--mock span::after { content:""; position:absolute; left:50%; top:50%; width:30px; height:30px; margin:-15px 0 0 -15px; border:2px solid #fff; border-radius:9px; opacity:.9; }
.cp-ig__feed--mock span::before { content:""; position:absolute; left:50%; top:50%; width:10px; height:10px; margin:-7px 0 0 -7px; border:2px solid #fff; border-radius:50%; z-index:1; }
.cp-ig__mocknote { margin:14px 0 0; text-align:center; font-size:12px; color:#8A948D; }
/* プラグインの出力を整える（Smash Balloon など） */
.cp-ig__feed #sb_instagram { padding-bottom:0 !important; }
.cp-ig__feed #sb_instagram .sbi_photo { border-radius:8px; overflow:hidden; }
.cp-ig__feed #sb_instagram .sbi_follow_btn a, .cp-ig__feed #sb_instagram #sbi_load .sbi_load_btn { border-radius:999px !important; background:#1F2A24 !important; }
@media (max-width:767px) {
  .cp-idx ul { grid-auto-flow:row; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cp-ig { padding:70px 0 76px; }
  .cp-ig__head { grid-template-columns:minmax(0,1fr); }
  .cp-ig__feed--mock { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .cp-ig__feed--mock span:nth-child(n+7) { display:none; }
}
.cp-ig + .cp-cta { margin-top:100px; }
@media (max-width:767px) { .cp-ig + .cp-cta { margin-top:64px; } }
.cp-kv__img { object-position:50% 28%; }


/* =========================================================
   下層ページ共通（初めての方へ・料金・整体・お客様の声・地域）v2.1
   ========================================================= */
.cp{--g:#2E6B4C;--a:#4BA37A;--pale:#EEF5F0;--pale2:#F5FAF6;--ink:#26332B;--tx:#3D4A42;--sub:#66736B;--line:#E2EAE5}
/* ===== new shared parts (nx-) ===== */
.nx-sec{position:relative;padding:100px 0;overflow:hidden}
.nx-sec--pale{background:var(--pale2)}
.nx-sec--pale2{background:var(--pale)}
.nx-lead{max-width:760px;margin:22px 0 0;font-size:16px;line-height:2;color:var(--tx)}
.sh--c + .nx-lead{margin-left:auto;margin-right:auto;text-align:center}
.nx-ph{display:inline-block;padding:0 6px;border-radius:4px;background:#FFF3D6;color:#8A6A12;font-weight:700}

/* message */
.nx-msg{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:center}
.nx-msg__img{position:relative}
.nx-msg__img img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;clip-path:inset(6px round 12px)}
.nx-msg__img::after{content:"";position:absolute;left:-18px;bottom:-18px;width:46%;height:46%;border-radius:12px;background:var(--pale);z-index:-1}
.nx-msg__catch{margin:22px 0 0;font-size:clamp(20px,2vw,26px);line-height:1.7;font-weight:700;color:var(--ink)}
.nx-msg__catch em{font-style:normal;background:linear-gradient(transparent 62%,#D7EBDD 62%)}
.nx-msg p.tx{margin:18px 0 0;font-size:15.5px;line-height:2.05}
.nx-msg__sign{margin-top:24px;font-size:14px;color:var(--sub)}
.nx-msg__sign b{display:block;margin-top:2px;font-size:20px;color:var(--ink);letter-spacing:.1em}

/* points */
.nx-pts{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.nx-pts li{background:#fff;border-radius:10px;padding:30px 22px 26px;text-align:center;box-shadow:0 8px 22px rgba(24,48,34,.06)}
.nx-pts .kp-card__icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--pale);color:var(--g)}
.nx-pts strong{display:block;margin-top:16px;font-size:16px;color:var(--ink)}
.nx-pts span.s{display:block;margin-top:8px;font-size:13.5px;line-height:1.8;color:var(--sub)}

/* flow with photos (first visit) */
.nx-flow{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px;counter-reset:f}
.nx-flow li{position:relative;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 8px 22px rgba(24,48,34,.06)}
.nx-flow__img{position:relative;aspect-ratio:16/10;background:var(--pale)}
.nx-flow__img img{width:100%;height:100%;object-fit:cover}
.nx-flow__no{position:absolute;left:16px;top:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;height:62px;border-radius:50%;background:var(--g);color:#fff;font-size:10px;letter-spacing:.12em;line-height:1.1}
.nx-flow__no b{font-size:21px;letter-spacing:0}
.nx-flow__body{padding:22px 24px 26px}
.nx-flow__body h3{margin:0;font-size:18px;color:var(--ink)}
.nx-flow__body p{margin:10px 0 0;font-size:14.5px;line-height:1.9}
.nx-flow li:not(:nth-child(3n))::after{content:"";position:absolute;right:-19px;top:calc(31% - 7px);width:14px;height:14px;border-top:2px solid var(--a);border-right:2px solid var(--a);transform:rotate(45deg);z-index:2}
.nx-flow__noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9DBBA8;font-size:12px;letter-spacing:.1em}

/* price */
.nx-first{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:0;margin-top:48px;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 14px 34px rgba(24,48,34,.10)}
.nx-first__img img{width:100%;height:100%;object-fit:cover;min-height:320px}
.nx-first__body{padding:44px 44px 40px}
.nx-first__tag{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--or);color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em}
.nx-first h3{margin:16px 0 0;font-size:22px;line-height:1.6;color:var(--ink)}
.nx-first__price{display:flex;align-items:baseline;gap:10px;margin-top:18px;padding-top:18px;border-top:1px dashed #D5E2DA}
.nx-first__price s{color:#9AA59E;font-size:16px}
.nx-first__price b{font-size:44px;line-height:1;color:var(--g);font-family:"Helvetica Neue",Arial,sans-serif}
.nx-first__price small{font-size:14px;color:var(--sub)}
.nx-first ul{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.nx-first ul li{padding:5px 12px;border-radius:999px;background:var(--pale);color:var(--g);font-size:13px;font-weight:700}

.nx-plist{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.nx-pc{display:grid;grid-template-columns:76px 1fr;gap:20px;align-items:start;background:#fff;border-radius:10px;padding:26px 28px;box-shadow:0 8px 22px rgba(24,48,34,.06)}
.nx-pc__icon img{width:76px;height:76px;border-radius:50%}
.nx-pc__cat{font-size:11px;letter-spacing:.14em;color:var(--a);font-weight:700}
.nx-pc h3{margin:4px 0 0;font-size:19px;color:var(--ink)}
.nx-pc p{margin:8px 0 0;font-size:14px;line-height:1.8;color:var(--sub)}
.nx-pc__rows{margin-top:14px;border-top:1px solid var(--line)}
.nx-pc__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.nx-pc__row b{font-size:20px;color:var(--ink);font-family:"Helvetica Neue",Arial,sans-serif}
.nx-pc__row b small{font-size:12px;color:var(--sub);font-weight:400;margin-left:2px}
.nx-pc__more{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:14px;font-weight:700;color:var(--g);text-decoration:none}
.nx-pc__more::after{content:"";width:6px;height:6px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}

.nx-course{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.nx-course li{position:relative;background:#fff;border:2px solid var(--line);border-radius:12px;padding:34px 26px 28px;text-align:center}
.nx-course li.is-rec{border-color:var(--a)}
.nx-course__rec{position:absolute;left:50%;top:-14px;transform:translateX(-50%);padding:4px 16px;border-radius:999px;background:var(--a);color:#fff;font-size:12px;font-weight:700;white-space:nowrap}
.nx-course h3{margin:0;font-size:19px;color:var(--ink)}
.nx-course__p{margin-top:14px;font-size:34px;font-weight:700;color:var(--g);font-family:"Helvetica Neue",Arial,sans-serif}
.nx-course__p small{font-size:13px;color:var(--sub);font-weight:400}
.nx-course p{margin:12px 0 0;font-size:14px;line-height:1.8;color:var(--sub)}

.nx-info2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:48px}
.nx-box{background:#fff;border-radius:10px;padding:30px 30px 26px;box-shadow:0 8px 22px rgba(24,48,34,.06)}
.nx-box h3{display:flex;align-items:center;gap:12px;margin:0;font-size:18px;color:var(--ink)}
.nx-box h3 .kp-card__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--pale);color:var(--g)}
.nx-box h3 .kp-card__icon svg{width:22px;height:22px}
.nx-box ul{margin:16px 0 0;padding:0 0 0 1.1em;font-size:14.5px;line-height:2}
.nx-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.nx-chips span{padding:6px 14px;border-radius:999px;background:var(--pale);color:var(--g);font-size:13.5px;font-weight:700}

/* voice */
.nx-vtabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:40px}
.nx-vtabs a{padding:10px 20px;border-radius:999px;border:1px solid #CFE0D5;background:#fff;color:var(--ink);font-size:14px;font-weight:700;text-decoration:none}
.nx-vtabs a.on{background:var(--g);border-color:var(--g);color:#fff}
.nx-vlist{list-style:none;margin:40px 0 0;padding:0;columns:2;column-gap:24px}
.nx-vc{break-inside:avoid;margin:0 0 24px;background:#fff;border-radius:12px;padding:30px 30px 26px;box-shadow:0 8px 22px rgba(24,48,34,.06);position:relative}
.nx-vc::before{content:"\201C";position:absolute;right:24px;top:6px;font-size:84px;line-height:1;color:#E3F0E7;font-family:Georgia,serif}
.nx-vc__top{display:flex;align-items:center;gap:14px}
.nx-vc__av{flex:none;display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:var(--pale);color:var(--g)}
.nx-vc__who{font-size:14px;color:var(--sub)}
.nx-vc__who b{display:block;font-size:16px;color:var(--ink)}
.nx-vc__star{color:#F0B030;letter-spacing:2px;font-size:15px}
.nx-vc__tag{display:inline-block;margin-top:16px;padding:4px 12px;border-radius:999px;background:#FFF1E4;color:#C0661F;font-size:12.5px;font-weight:700}
.nx-vc h3{margin:12px 0 0;font-size:17px;line-height:1.7;color:var(--ink)}
.nx-vc__sk{margin-top:12px;display:grid;gap:10px}
.nx-vc__sk i{display:block;height:10px;border-radius:5px;background:#EDF1EE}
.nx-vc__ph{margin-top:14px;font-size:12px;color:#A3ADA6}
.nx-vnote{margin-top:12px;text-align:center;font-size:13px;color:var(--sub)}
.nx-post{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;margin-top:64px;padding:40px 48px;border-radius:12px;background:#fff;border:2px dashed #CFE0D5}
.nx-post h3{margin:0;font-size:22px;color:var(--ink)}
.nx-post p{margin:10px 0 0;font-size:15px;line-height:1.9}
.nx-gbtn{display:inline-flex;align-items:center;gap:12px;min-height:58px;padding:0 28px;border-radius:999px;background:var(--g);color:#fff;font-size:15px;font-weight:700;text-decoration:none;white-space:nowrap}
.nx-gbtn--o{background:#fff;color:var(--g);border:1px solid #CBDCD1}
.nx-gbtn::after{content:"";width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}
.nx-google{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:28px}

/* faq (static) */
.nx-faq{list-style:none;max-width:880px;margin:48px auto 0;padding:0;display:grid;gap:14px}
.nx-faq li{background:#fff;border:1px solid #E6ECE8;border-radius:8px;padding:22px 26px}
.nx-faq b{display:flex;gap:14px;font-size:16px;color:var(--ink)}
.nx-faq b::before{content:"Q";flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--g);color:#fff;font-size:14px}
.nx-faq p{display:flex;gap:14px;margin:14px 0 0;font-size:14.5px;line-height:1.9}
.nx-faq p::before{content:"A";flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#FFF1E4;color:#C0661F;font-size:14px;font-weight:700}

/* access */
.nx-acc{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:48px;align-items:start}
.nx-hours{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;font-size:14px}
.nx-hours th,.nx-hours td{padding:12px 6px;border:1px solid #E3EAE5;text-align:center}
.nx-hours thead th{background:var(--g);color:#fff;font-weight:700}
.nx-hours tbody th{text-align:left;padding-left:14px;font-weight:400;white-space:nowrap}
.nx-hours td{color:var(--g);font-weight:700}
.nx-hours td.x{color:#B9C2BC}
.nx-acc dl{margin:22px 0 0;display:grid;grid-template-columns:auto 1fr;gap:12px 20px;font-size:14.5px;line-height:1.8}
.nx-acc dt{font-weight:700;color:var(--ink)}
.nx-acc dd{margin:0}
.nx-map{position:relative;aspect-ratio:4/3;border-radius:10px;background:linear-gradient(135deg,#E3EEE7,#F3F7F4);display:flex;align-items:center;justify-content:center;color:#8FB09B;font-size:14px;letter-spacing:.1em}

/* cta for patients */
.nx-cta{padding:0 0 110px}
.nx-cta .cp-cta__btns{display:flex;flex-wrap:wrap;gap:14px}
.nx-btn-line{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:64px;padding:0 34px;border-radius:999px;background:#fff;color:var(--g);font-size:16px;font-weight:700;text-decoration:none}

/* community theme cards */
.nx-themes{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.nx-themes li{position:relative;background:#fff;border-radius:12px;padding:30px 28px 28px;box-shadow:0 8px 22px rgba(24,48,34,.06);overflow:hidden}
.nx-themes li::after{content:"";position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;background:var(--pale2)}
.nx-themes .kp-card__icon{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:var(--g);color:#fff}
.nx-themes h3{position:relative;z-index:1;margin:18px 0 0;font-size:18px;color:var(--ink)}
.nx-themes p{position:relative;z-index:1;margin:10px 0 0;font-size:14.5px;line-height:1.9}
.nx-cta__note{margin-top:14px;display:inline-block;padding:10px 16px;border-radius:6px;background:rgba(255,255,255,.14);font-size:14px}
.nx-cta__note b{color:#FFE7A8}

@media(max-width:900px){
  .nx-sec{padding:70px 0}
  .nx-msg,.nx-first,.nx-acc,.nx-info2{grid-template-columns:minmax(0,1fr)}
  .nx-msg{gap:40px}
  .nx-pts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .nx-flow,.nx-plist,.nx-course,.nx-themes{grid-template-columns:minmax(0,1fr)}
  .nx-flow li::after{display:none}
  .nx-first__body{padding:30px 24px}
  .nx-first__img img{min-height:200px;aspect-ratio:16/9}
  .nx-pc{grid-template-columns:56px 1fr;padding:22px 20px;gap:14px}
  .nx-pc__icon img{width:56px;height:56px}
  .nx-vlist{columns:1}
  .nx-post{grid-template-columns:1fr;padding:30px 24px}
  .nx-course{gap:28px}
  .cp-idx ul{grid-template-columns:repeat(2,1fr)!important}
}
.nx-flow li{overflow:visible}
.nx-flow__img{overflow:hidden;border-radius:6px 10px 0 0}
.nx-box ul{list-style:disc}
.nx-themes li::after{width:90px;height:90px;right:-30px;top:-30px}
/* ===== v2: remove orange, more refined ===== */
.nx-first__tag{display:inline-flex;align-items:center;gap:12px;padding:0;border-radius:0;background:none;color:var(--g);font-size:12px;font-weight:700;letter-spacing:.24em}
.nx-first__tag::before{content:"";width:28px;height:1px;background:var(--g)}
.nx-first h3{margin-top:12px;font-size:23px;letter-spacing:.04em}
.nx-first__price{gap:14px;padding-top:22px;border-top:1px solid var(--line)}
.nx-first__price b{font-weight:500;font-size:48px;letter-spacing:.02em}
.nx-first__price b::first-letter{font-size:.55em;margin-right:2px}
.nx-first__price s{font-size:15px}
.nx-first ul li{padding:5px 12px;background:none;border:1px solid #CFE0D5;font-weight:500}
.nx-pc__row b{font-weight:500;letter-spacing:.02em}
.nx-course__p{font-weight:500;letter-spacing:.02em}
.nx-vc__star{color:var(--g);font-size:12px;letter-spacing:3px}
.nx-vc__tag{padding:3px 12px;background:none;border:1px solid #BCD6C5;color:var(--g);font-weight:500;letter-spacing:.04em}
.nx-faq p::before{background:#fff;border:1px solid var(--g);color:var(--g);font-weight:500}
.nx-faq b::before{font-weight:500}
.nx-pt{list-style:none;max-width:880px;margin:48px auto 0;padding:8px 36px;background:#fff;border-radius:12px;box-shadow:0 10px 26px rgba(24,48,34,.07)}
.nx-pt li{display:flex;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.nx-pt li:last-child{border-bottom:0}
.nx-pt__icon img{width:60px;height:60px;border-radius:50%}
.nx-pt__name b{display:block;font-size:18px;color:var(--ink)}
.nx-pt__name small{display:block;margin-top:2px;font-size:12.5px;color:#7FA98E}
.nx-pt__dots{flex:1;height:1px;border-top:1px dotted #C9D8CE}
.nx-pt__price{font-size:26px;font-weight:500;color:var(--g);font-family:"Helvetica Neue",Arial,sans-serif;white-space:nowrap}
.nx-pt__price small{font-size:12px;color:var(--sub);margin-left:4px;font-family:inherit}
@media(max-width:900px){.nx-pt{padding:4px 18px}.nx-pt li{gap:12px;flex-wrap:wrap}.nx-pt__icon img{width:46px;height:46px}.nx-pt__dots{display:none}.nx-pt__name{flex:1;min-width:0}.nx-pt__price{width:100%;text-align:right;font-size:22px}}
.nx-pt--2{max-width:960px}
.nx-pt__name b em{font-style:normal;display:inline-block;margin-left:10px;padding:2px 10px;border:1px solid #D7DFDA;border-radius:999px;font-size:12px;font-weight:500;color:#5A665F;vertical-align:2px}
.nx-pt__reg{font-size:14px;color:#8A948D;text-decoration:line-through;text-decoration-color:#B9C2BC;white-space:nowrap;font-family:"Helvetica Neue",Arial,sans-serif}
.nx-pt__reg small{margin-right:6px;font-size:11px;text-decoration:none;display:inline-block;font-family:"Noto Sans JP",sans-serif}
.nx-pt__lab{display:inline-block!important;margin:0 8px 0 0!important;padding:2px 8px;border-radius:4px;background:#2E6B4C;color:#fff!important;font-size:11px!important;vertical-align:4px;font-family:"Noto Sans JP",sans-serif}
.nx-pt--2 .nx-pt__price{min-width:150px;text-align:right}
.nx-ask{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;max-width:880px;margin:40px auto 0;padding:32px 40px;border:1px solid #E3E6E2;border-radius:8px}
.nx-ask p{margin:0;font-size:15.5px;line-height:2;color:#3D4A42}
@media(max-width:900px){.nx-pt--2 .nx-pt__price{min-width:0;width:auto;flex:1}.nx-pt__reg{width:auto;margin-left:58px}.nx-ask{padding:24px}}
@media(max-width:900px){
  .nx-pt--2 li{display:grid;grid-template-columns:46px minmax(0,1fr);grid-template-areas:"ic nm" "ic pr";column-gap:14px;row-gap:6px;align-items:center}
  .nx-pt--2 .nx-pt__icon{grid-area:ic;align-self:start}
  .nx-pt--2 .nx-pt__name{grid-area:nm}
  .nx-pt--2 .nx-pt__name b{font-size:16px}
  .nx-pt--2 .nx-pt__name b em{margin-left:6px}
  .nx-pt--2 .nx-pt__dots{display:none}
  .nx-pt--2 .nx-pt__reg{grid-area:pr;margin:0;justify-self:start;align-self:center}
  .nx-pt--2 .nx-pt__price{grid-area:pr;justify-self:end;text-align:right;font-size:22px;min-width:0;width:auto}
}
/* 料金表：真ん中の点線をなくす */
.nx-pt__dots{display:none}
.nx-pt__name{flex:1;min-width:0}
.nx-pt--2 .nx-pt__reg{margin-left:auto;margin-right:18px}
/* 整体ページ */
.sx-stance{padding:110px 0}
.sx-stance__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center}
.sx-stance__img img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 15%;border-radius:12px}
.sx-stance__motto{margin:26px 0 0;padding:22px 0 22px 24px;border-left:3px solid #2E6B4C;font-size:clamp(20px,2.2vw,28px);font-weight:700;line-height:1.6;color:#1F2A24}
.sx-stance__tx{margin:20px 0 0;font-size:15.5px;line-height:2.05;color:#3D4A42}
.sx-feats{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.sx-feat{background:#fff;border-radius:8px;overflow:hidden}
.sx-feat__img{position:relative;display:block;aspect-ratio:4/3}
.sx-feat__img img{width:100%;height:100%;object-fit:cover}
.sx-feat__img b{position:absolute;left:0;bottom:0;padding:10px 18px;background:#fff;border-radius:0 8px 0 0;font-family:"Helvetica Neue",Arial,sans-serif;font-weight:500;font-size:22px;color:#2E6B4C}
.sx-feat h3{margin:18px 24px 0;font-size:17px;line-height:1.65;color:#1F2A24}
.sx-feat p{margin:10px 24px 26px;font-size:14.5px;line-height:1.9;color:#3D4A42}
@media(max-width:900px){.sx-stance{padding:70px 0}.sx-stance__grid,.sx-feats{grid-template-columns:minmax(0,1fr)}.sx-stance__img{max-width:360px}}

.nx-first__tx{margin:16px 0 0;font-size:14.5px;line-height:1.9;color:#3D4A42}
.nx-acc__note{font-size:13px;color:var(--sub);margin:10px 0 0}
.nx-map{overflow:hidden}
.nx-map iframe{position:absolute;inset:0;width:100%!important;height:100%!important;border:0}
.nx-center{margin-top:28px;text-align:center}
.nx-gap{height:100px}
.cp-intro--nophoto{padding-bottom:100px}
.nx-vc__tx{margin:14px 0 0;font-size:15px;line-height:2;color:#3D4A42}
.nx-vc__name{margin:12px 0 0;font-size:12.5px;color:#8A948D}
.nx-vc__av .kp-card__icon{background:none;width:auto;height:auto}
.nx-post .k-more{white-space:nowrap}
.nx-pts .kp-card__icon,.nx-themes .kp-card__icon{margin:0 auto}
.nx-themes .kp-card__icon{margin:0}
.bl-pager{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:56px}
.bl-pager a,.bl-pager span{display:flex;align-items:center;justify-content:center;min-width:46px;height:46px;padding:0 14px;border-radius:999px;border:1px solid #D7DFDA;font-size:14px;color:#1F2A24;text-decoration:none}
.bl-pager .current{background:#1F2A24;border-color:#1F2A24;color:#fff}
@media(max-width:900px){.nx-gap{height:64px}.cp-intro--nophoto{padding-bottom:64px}}
.nx-sec > .bigen{right:-20px;top:40px}
.nx-pt-note{max-width:960px;margin:20px auto 0;text-align:center;font-size:14px;line-height:1.9;color:#5A665F}
.sx-iss__lead{margin:22px 0 0;font-size:15px;line-height:2;color:#3D4A42}
.sx-stance__tx + .sx-stance__tx{margin-top:14px}
.mp-posts{grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px;margin-left:auto;margin-right:auto}
@media(max-width:600px){.mp-posts{grid-template-columns:minmax(0,1fr)}}

/* メニュー別ページの関連コラム（ブログのカードと同じ） */
.bl-cat{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.08em;color:#2E6B4C}
.bl-card__meta{display:flex;align-items:center;gap:14px;font-size:12px;color:#8A948D}
.bl-card__meta time{font-family:"Helvetica Neue",Arial,sans-serif;letter-spacing:.06em}
.bl-card__meta .bl-cat::after{content:"";display:inline-block;width:1px;height:10px;margin-left:14px;background:#D5DBD7;vertical-align:-1px}
.bl-grid{list-style:none;margin:56px 0 0;padding:56px 0 0;border-top:1px solid #E3E6E2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 32px}
.bl-card{display:block;color:inherit;text-decoration:none}
.bl-card__img{display:block;overflow:hidden;border-radius:8px;aspect-ratio:16/10;background:#F1EEE7}
.bl-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.165,.84,.44,1)}
.bl-card .bl-card__meta{margin-top:16px}
.bl-card__t{display:block;margin-top:8px;font-size:16px;font-weight:700;line-height:1.75;color:#1F2A24;transition:color .3s}
.bl-card:hover .bl-card__t{color:#2E6B4C}
.bl-card__img img,.bl-feat__img img{display:block}
.bl-card__img,.bl-feat__img,.bl-art__eye{aspect-ratio:16/9 !important}
.bl-card__img img,.bl-feat__img img,.bl-art__eye img{width:100% !important;height:100% !important;max-width:none;object-fit:cover;display:block}
.bl-card__img img,.bl-feat__img img{display:block}
.bl-card__img,.bl-feat__img,.bl-art__eye{aspect-ratio:16/9 !important}
.bl-card__img img,.bl-feat__img img,.bl-art__eye img{width:100% !important;height:100% !important;max-width:none;object-fit:cover;display:block}
.mp-posts.bl-grid{margin-top:40px;padding-top:0;border-top:0}
/* 流れが4ステップのときは横4列 */
.nx-flow:has(> li:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
.nx-flow:has(> li:nth-child(4):last-child) > li::after{display:block}
.nx-flow:has(> li:nth-child(4):last-child) > li:last-child::after{display:none}
@media(max-width:900px){.nx-flow:has(> li:nth-child(4):last-child){grid-template-columns:minmax(0,1fr)}.nx-flow:has(> li:nth-child(4):last-child) > li::after{display:none}}
.nx-flow:has(> li:nth-child(4):last-child) > li:nth-child(3)::after{content:"";position:absolute;right:-19px;top:calc(31% - 7px);width:14px;height:14px;border-top:2px solid var(--a);border-right:2px solid var(--a);transform:rotate(45deg);z-index:2}
@media(max-width:900px){.nx-flow:has(> li:nth-child(4):last-child) > li:nth-child(3)::after{display:none}}
.sx-feat__img img[src*="feature-photo"],.nx-flow__img img[src*="feature-photo"],.cp-kv__img[src*="feature-photo"]{object-position:50% 22%}

/* v2.5.1 STEP番号を写真の外（本文の上）へ */
.nx-flow__body{position:relative;padding-top:20px}
.nx-flow__body .nx-flow__no{position:static;display:inline-flex;flex-direction:row;align-items:baseline;gap:6px;width:auto;height:auto;border-radius:0;background:none;color:var(--g);font-size:11px;font-weight:700;letter-spacing:.14em;line-height:1;margin:0 0 10px;padding:0 0 8px;border-bottom:2px solid var(--g)}
.nx-flow__body .nx-flow__no b{font-size:22px;letter-spacing:.02em;font-weight:700}

/* v2.5.2 写真なしの流れ */
.nx-flow--text li{border-top:3px solid var(--g);border-radius:4px}
.nx-flow--text .nx-flow__body{padding:26px 24px 28px}
.nx-flow--text .nx-flow__body .nx-flow__no{border-bottom:0;padding:0;margin-bottom:14px}
.nx-flow--text .nx-flow__body .nx-flow__no b{font-size:34px;line-height:1}
.nx-flow--text li::after,.nx-flow.nx-flow--text:has(> li:nth-child(4):last-child) > li::after{top:calc(50% - 7px)}
@media(max-width:900px){.nx-flow--text{gap:14px}.nx-flow--text .nx-flow__body{padding:20px 20px 22px}.nx-flow--text .nx-flow__body .nx-flow__no b{font-size:28px}}

/* v2.5.6 メイン写真の見せる位置（初めての方へ：椅子とテーブル／料金：ベッド） */
.cp-kv__img[src*="first-visit"]{object-position:50% 70%}
.cp-kv__img[src*="room"]{object-position:50% 82%}

/* v2.5.9 ページ内リンク（目次）を読みやすく */
.cp-idx ul{padding:8px;gap:0;border-radius:8px;box-shadow:0 14px 34px rgba(24,48,34,.12)}
.cp-idx li + li{border-left:1px solid #E3EAE5}
.cp-idx a{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;padding:16px 16px 16px 18px;text-align:left;font-size:15px;line-height:1.45;color:#1F2A24}
.cp-idx a > small{display:none}
.cp-idx a::after{flex-shrink:0;width:26px;height:26px;border:1px solid #CFE0D5;border-radius:50%;transform:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E6B4C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6v12M6.5 12.5 12 18l5.5-5.5'/%3E%3C/svg%3E") center/13px no-repeat;transition:background-color .3s ease,border-color .3s ease,transform .3s ease}
.cp-idx a:hover{background:#F1F6F2;color:#2E6B4C}
.cp-idx a:hover::after{transform:translateY(2px);border-color:#2E6B4C}
@media(max-width:767px){
  .cp-idx{margin-top:-28px;padding:0 16px}
  .cp-idx ul{grid-auto-flow:row!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:6px;gap:0}
  .cp-idx li + li{border-left:0}
  .cp-idx li{border-bottom:1px solid #E9EFEB}
  .cp-idx li:nth-child(odd){border-right:1px solid #E9EFEB}
  .cp-idx li:nth-last-child(-n+2):nth-child(odd),.cp-idx li:last-child{border-bottom:0}
  .cp-idx a{font-size:13.5px;padding:13px 10px 13px 12px;gap:6px}
  .cp-idx a::after{width:22px;height:22px;background-size:11px}
}

/* v2.5.9b 目次の文字が折り返さないように調整 */
.cp-idx a{font-size:14px;padding:14px 12px 14px 16px;gap:8px}
.cp-idx a::after{width:24px;height:24px;background-size:12px}
@media(max-width:767px){
  .cp-idx a{font-size:12.5px;padding:12px 8px 12px 12px;gap:4px;letter-spacing:0}
  .cp-idx a::after{width:20px;height:20px;background-size:10px}
}
/* v2.5.9 スマホ：院長写真を小さく、英字の飾りが写真に隠れないように */
@media(max-width:767px){
  .nx-msg__img,.sx-stance__img,.cp-rsn__photo{max-width:min(260px,68%) !important}
  .nx-msg__img::after{left:-12px;bottom:-12px}
  .nx-sec > .bigen,.sx-stance > .bigen{top:22px;font-size:64px}
  #message.nx-sec{padding-top:96px}
  .nx-msg{gap:32px}
}

/* v2.5.9 スマホ：「あわせてご覧ください」をコンパクトな横並びカードに */
@media(max-width:767px){
  .rel-list{gap:10px;margin-top:24px}
  .rc{display:grid;grid-template-columns:96px minmax(0,1fr) 28px;grid-template-rows:auto auto auto;column-gap:14px;align-items:center;padding:10px;background:#fff;border:1px solid #E3EAE5;border-radius:8px;position:relative}
  .rc__img{grid-row:1 / 4;grid-column:1;aspect-ratio:1;border-radius:6px}
  .rc__img{position:static}
  .rc__img img{border-radius:6px}
  .rc__arrow{position:absolute;right:12px;top:50%;bottom:auto;margin-top:-14px;width:28px;height:28px;background:#F1F6F2}
  .rc__arrow::before{width:12px;height:8px;background:#2E6B4C}
  .rc__en{grid-column:2;margin:0;font-size:10.5px;letter-spacing:.12em;align-self:end}
  .rc__jp{grid-column:2;margin:2px 0 0;font-size:15.5px;line-height:1.4}
  .rc__tx{grid-column:2;margin:2px 0 0;font-size:12px;line-height:1.6;color:#66736B;align-self:start}
  .cp-rel .bigen{font-size:64px;top:22px}
}

/* v2.5.11 スマホ：料金の行（通常価格と初回価格が重ならないように・全ページ共通） */
@media(max-width:767px){
  .nx-pt li{display:grid!important;grid-template-columns:46px minmax(0,1fr);grid-template-areas:"ic nm" "ic pr";column-gap:14px;row-gap:8px;align-items:center}
  .nx-pt .nx-pt__icon{grid-area:ic;align-self:start}
  .nx-pt .nx-pt__name{grid-area:nm}
  .nx-pt .nx-pt__name b{font-size:16px}
  .nx-pt .nx-pt__dots{display:none}
  .nx-pt .nx-pt__reg{grid-area:pr;margin:0!important;justify-self:start;align-self:center}
  .nx-pt .nx-pt__price{grid-area:pr;justify-self:end;text-align:right;font-size:22px;min-width:0!important;width:auto!important;flex:none}
}

/* v2.5.12 スマホ：予約の帯をコンパクトに・下の余白を詰める */
@media(max-width:767px){
  .cp-cta{padding:0 16px 48px}
  .cp-cta__box{padding:32px 20px 24px;gap:22px;border-radius:12px}
  .cp-cta h2{font-size:20px;line-height:1.55}
  .cp-cta p{margin-top:10px;font-size:13.5px;line-height:1.8}
  .cp-cta__btns{gap:10px}
  .cp-cta__btns a{min-height:54px;border-radius:8px}
  .cp-cta__mail{font-size:15px}
  .cp-cta__tel[data-tel-btn]{flex-direction:row!important;gap:10px!important;padding:0 12px!important;font-size:19px}
  .cp-cta__tel[data-tel-btn] small{font-size:11px}
  .cp-cta__tel span:last-child{font-size:19px!important}
  .cp-cta__circle{width:300px;left:-90px;bottom:-140px}
}

/* v2.5.13 院長写真：HTMLの高さ指定に引っぱられて縦長にならないように */
.nx-msg__img img,.sx-stance__img img{height:auto!important;display:block}
@media(max-width:767px){.nx-msg__img,.sx-stance__img{margin-left:auto;margin-right:auto}}
