@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ========== 共通：変数 ========== */
/* =========================================================
   01. デザイントークン
   ========================================================= */

:root {
  /* colors */
  --nd-c-bg: #fffdfb;
  --nd-c-bg-gray: #eaf6fc;
  --nd-c-sky: #d4edf8;

  --nd-c-main: #2c6c8a;
  --nd-c-main-dark: #24586f;
  --nd-c-main-light: #9fd3ea;

  --nd-c-accent: #f29bb0;
  --nd-c-accent-dark: #d97c94;
  --nd-c-accent-light: #ffc9d6;
  --nd-c-accent-soft: #fdeef2;

  --nd-c-text: #3b3540;
  --nd-c-text-sub: #655e6a;
  --nd-c-text-on-dark: #f7fbfd;
  --nd-c-line: #e7e1e6;

  /* fonts */
  --nd-font-head: "M PLUS Rounded 1c", "Noto Sans JP", sans-serif;

  /* font sizes */
  --nd-fs-note: 0.8125rem;
  --nd-fs-small: 0.9375rem;
  --nd-fs-body: 1rem;
  --nd-fs-h3: 1.125rem;
  --nd-fs-h2: 1.75rem;
  --nd-fs-h1: 2.375rem;

  /* spacing */
  --nd-sp-xs: 0.5rem;
  --nd-sp-s: 1rem;
  --nd-sp-m: 2rem;
  --nd-sp-l: 3rem;

  --nd-sec-y: 4.5rem;
  --nd-gutter: 1.25rem;
  --nd-container: 70rem;

  /* shape */
  --nd-radius: 1.25rem;
  --nd-border: 0 solid transparent;
  --nd-shadow: 0 10px 30px rgb(59 53 64 / 0.08);

  --nd-ease: 0.2s ease;
}

@media (min-width: 768px) {
  :root {
    --nd-fs-h2: 2.125rem;
    --nd-fs-h1: 3.25rem;

    --nd-sec-y: 6rem;
    --nd-gutter: 2.5rem;
  }
}

@media (min-width: 1024px) {
  :root {
    --nd-fs-h3: 1.25rem;
    --nd-fs-h2: 2.5rem;
    --nd-fs-h1: 4.25rem;

    --nd-sec-y: 7.5rem;
  }
}


/* =========================================================
   02. 共通レイアウト
   ========================================================= */



/* =========================================================
   03. 共通見出し
   ========================================================= */

/* SWELLの .post_content h2 / h3 より優先する */
.post_content .nd-h2,
.post_content .nd-head h2,
.post_content .nd-story__panel h2,
.post_content .nd-reason h2,
.post_content .nd-faq h2,
.post_content .nd-cta h2 {
  margin: 0;
  font-family: var(--nd-font-head);
  font-size: var(--nd-fs-h2);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
  word-break: auto-phrase;
}

.post_content .nd-h3,
.post_content .nd-service h3,
.post_content .nd-case h3,
.post_content .nd-reason h3,
.post_content .nd-staff h3,
.post_content .nd-price h3 {
  margin: 0;
  font-family: var(--nd-font-head);
  font-size: var(--nd-fs-h3);
  font-weight: 700;
  line-height: 1.5;
  word-break: auto-phrase;
}

/* FVは別サイズなので共通では太さだけ */
.nd-fv__title {
  font-family: var(--nd-font-head);
  font-weight: 700;
  word-break: auto-phrase;
}


/* =========================================================
   04. 小見出し
   ========================================================= */

.nd-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--nd-c-main);
}

.nd-label::before {
  content: "";
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 3px;
  background: var(--nd-c-accent);
}


/* =========================================================
   05. SWELLボタン用アダプター
   ========================================================= */

/* SWELLボタンのブロック側に nd-btn を付ける */
.nd-btn .swell-block-button__link {
  color: #4F4049;
  background: var(--nd-c-accent);
  box-shadow: 0 4px 0 var(--nd-c-accent-dark);
  transition:
    transform var(--nd-ease),
    box-shadow var(--nd-ease);
}

.nd-btn .swell-block-button__link:hover {
  transform: translateY(2px);
  box-shadow: 0 2px 0 var(--nd-c-accent-dark);
}

.nd-btn--sub .swell-block-button__link {
  color: var(--nd-c-main);
  background: #fff;
  box-shadow: inset 0 0 0 2px var(--nd-c-main-light);
}

/* ヘッダーCTAの文字色を本文CTAと揃える */
.nd-header-cta .swell-block-button__link {
  color: #4f4049;
}

/* ========== ヘッダー・グローバルナビ ========== */

/* 通常メニューのホバー線 */
.c-gnav > li:not(.nd-header-cta) > a::after {
  height: 2px !important;
  background: var(--nd-c-accent) !important;
}

/* ========== ファーストビュー ========== */

/* 写真を丸めた枠に入れる */
.nd-fv-wrap {
  padding: 0.75rem 0.75rem 0;
}

.nd-fv {
  max-width: 80rem;
  margin-inline: auto;
  overflow: hidden;
  border-radius: 2.5rem / 2rem;
}

.nd-fv__body {
  width: 100%;
}


/* PC用：写真左側に白いもや */
.nd-fv .wp-block-cover__background {
  background: linear-gradient(
    90deg,
    rgb(255 253 251 / .5) 0%,
    rgb(255 253 251 / .3) 28%,
    rgb(255 253 251 / 0) 46%
  ) !important;
  opacity: 1;
}


/* スマホ・タブレット：
   写真を上、文章を下にする */
@media (max-width: 767px) {
	.nd-fv {
		display: block;
		min-height: 0;
		overflow: visible;
		border-radius: 0;
		background: none;
	}

  .nd-fv .wp-block-cover__background {
    display: none;
  }
	
	.nd-fv .wp-block-cover__image-background {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3.2;
		object-fit: cover;
		object-position: 70% 30%;
		border-radius: 3.5rem 3.5rem 2.5rem 2.5rem;
	}

  .nd-fv .wp-block-cover__inner-container {
    margin-top: clamp(-8rem, -18vw, -4.5rem);
    padding: 0 0.5rem 3rem;
  }
}


/* タブレット：PCと同じく写真上にコンテンツを重ねる */
@media (min-width: 768px) and (max-width: 1023px) {

  .nd-fv-wrap {
    padding: 1rem 1.25rem 1.25rem;
  }

  .nd-fv {
    min-height: clamp(32rem, 68vw, 38rem);
    border-radius: 4rem / 3rem;
  }

  .nd-fv .wp-block-cover__image-background {
    object-position: 60% 30%;
  }

  .nd-fv .wp-block-cover__inner-container {
    margin-top: 0;
    padding: 2.5rem 2rem;
  }

  .nd-fv__body {
    max-width: 28rem;
  }

  .nd-fv__lead {
    font-size: 0.9375rem;
  }
}

/* エリアラベル */
.nd-fv__area {
  display: inline-block;
  position: relative;
  z-index: 1;
  margin: 0 0 0.25rem;
  padding: 0.3rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #fff;
  background: var(--nd-c-main);
  border-radius: 0.5rem;
}


/* キャッチコピーの白い吹き出し */
.post_content h1.nd-fv__title {
  position: relative;
  display: grid;
  justify-items: start;
  width: fit-content;
  padding: 0.5em 0.8em 0.55em;
  font-size: min(2.375rem, 7.4vw);
  line-height: 1.4;
  letter-spacing: 0.02em;
  background: #fff;
  border-radius: 1.5rem;
  box-shadow: var(--nd-shadow);
}

.nd-fv__title span {
  white-space: nowrap;
}


/* リード文 */
.nd-fv__lead {
  max-width: 30em;
  margin-block: 1.25rem 2rem;
  word-break: auto-phrase;
}


/* ボタン：SPは縦並び */
.nd-fv .nd-btns {
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}

/* 丸バッジ */
.nd-fv__badges {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 2.25rem;

  /* SWELLのリスト標準装飾を打ち消す */
  padding-left: 0;
  list-style: none;
}

.nd-fv__badges li {
  position: relative;
  display: grid;
  place-content: center;
  width: 6.5rem;
  aspect-ratio: 1;
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  color: var(--nd-c-text);
  background: var(--nd-c-main-light);
  border-radius: 50%;
  box-shadow:
    0 0 0 0.25rem #fff,
    0 0.75rem 1.5rem rgb(59 53 64 / 0.22);
}

.nd-fv__badges li::before {
  content: "";
  position: absolute;
  inset: 0.375rem;
  border: 2px dashed rgb(59 53 64 / 0.35);
  border-radius: 50%;
}

.nd-fv__badges small {
  font-size: 0.625rem;
}

.nd-fv__badges strong {
  display: block;
  font-family: var(--nd-font-head);
  font-size: 1.125rem;
  font-weight: 800;
  line-height: 1.15;
}

.nd-fv__badges li:nth-child(1) {
  background: #f9cbd6;
}

.nd-fv__badges li:nth-child(2) {
  background: #cceaf5;
}

.nd-fv__badges li:nth-child(3) {
  color: var(--nd-c-main);
  background: #fff;
  box-shadow:
    0 0 0 0.25rem var(--nd-c-accent),
    0 0.75rem 1.5rem rgb(59 53 64 / 0.22);
}

.nd-fv__badges li:nth-child(3)::before {
  border-color: rgb(44 108 138 / 0.4);
}

/* PC */
@media (min-width: 1024px) {

  .nd-fv-wrap {
    padding: 1.25rem 1.5rem 1.5rem;
  }

  .nd-fv {
    min-height: min(46rem, calc(100svh - 7rem));
    border-radius: 9% / 16%;
  }

  .nd-fv .wp-block-cover__inner-container {
    padding: 4rem 3.5rem;
  }

  .nd-fv__area,
  .nd-fv__title,
  .nd-fv__lead,
  .nd-fv .nd-btns {
    max-width: min(34rem, 42vw);
  }
	
	.post_content h1.nd-fv__title {
		font-size: min(3.25rem, 3.4vw);
	}

  .nd-fv .nd-btns {
    flex-direction: row;
    align-items: center;
  }

  .nd-fv__lead {
    font-size: 1.0625rem;
    margin-block: 1.5rem 2.25rem;
  }

  .nd-fv__badges {
    justify-content: flex-start;
    gap: 1.25rem;
    padding-left: 0.25rem;
  }
	
	.nd-fv__badges li {
		width: 7rem;
	}
	
	.nd-fv__badges strong {
		font-size: 1.25rem;
	}
}

/* ========== 街並みの帯 ========== */

.nd-town {
  padding-top: 1.5rem;
  text-align: center;
}

.nd-town__caption {
  margin-bottom: 0.75rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--nd-c-text-sub);
  letter-spacing: 0.08em;
}

.nd-town__line {
  max-width: 80rem;
  height: 3.5rem;
  margin-inline: auto;
  background:
    url("https://sample8.natch-dsgn.com/wp-content/uploads/2026/10/town.png")
    repeat-x center bottom / auto 100%;
}

/* ========== お悩み：チェックリスト ========== */

.nd-check {
  display: grid;
  gap: 0.625rem;
}

.nd-check li {
  position: relative;
  padding: 0.875rem 1rem 0.875rem 3.25rem;
  font-weight: 700;
  line-height: 1.65;
  background: var(--nd-c-bg-gray);
  border: var(--nd-border);
  border-radius: 0.75rem;
}

.nd-check li::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: 1rem;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: var(--nd-c-accent);
}

.nd-check li::after {
  content: "";
  position: absolute;
  left: 1.4rem;
  top: 1.4rem;
  width: 0.7rem;
  height: 0.4rem;
  border-left: 2.5px solid var(--nd-c-text);
  border-bottom: 2.5px solid var(--nd-c-text);
  transform: rotate(-45deg);
}


/* ========== お悩みセクション ========== */

.nd-worry {
  display: grid;
}

.nd-bridge {
  position: relative;
  margin-top: 3.5rem;
  padding: 2.5rem 1.25rem 2rem;
  background: var(--nd-c-accent-soft);
  border: var(--nd-border);
  border-radius: var(--nd-radius);
}

.nd-bridge::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -2.25rem;
  width: 1.75rem;
  height: 1.75rem;
  border-right: 4px solid var(--nd-c-main-light);
  border-bottom: 4px solid var(--nd-c-main-light);
  transform: translateX(-50%) rotate(45deg);
}

.nd-bridge__catch {
  font-family: var(--nd-font-head);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.55;
}

.nd-bridge__text {
  max-width: 36em;
  margin-top: 1rem;
  word-break: auto-phrase;
}

@media (min-width: 1024px) {

  .nd-worry {
    grid-template-columns: 5fr 6fr;
  }

  .nd-bridge {
    text-align: center;
    margin-top: 5rem;
    padding: 3.5rem 3rem 3rem;
  }

  .nd-bridge__catch {
    font-size: 2.125rem;
  }

  .nd-bridge__text {
    margin-inline: auto;
  }
}

	/* =========================================================
   06. 共通：セクション見出し補助
   ========================================================= */

/* セクション冒頭の「見出し＋リード」 */
.nd-head {
  margin-bottom: var(--nd-sp-l);
}

.nd-head__lead,
.nd-head > p:last-child {
  max-width: 36em;
  margin-top: 1.25rem;
}

@media (min-width: 1024px) {
  .nd-head--split {
    display: grid;
    grid-template-columns: 5fr 6fr;
    align-items: end;
  }

  .nd-head--split .nd-head__lead {
    margin-top: 0;
  }
}

/* 注釈 */
.nd-note {
  margin-top: 1.5rem;
  font-size: var(--nd-fs-note);
  color: var(--nd-c-text-sub);
}


/* =========================================================
   07. 03 サービス内容
   ========================================================= */

.nd-service h3 {
  font-family: var(--nd-font-head);
  font-size: var(--nd-fs-h3);
  font-weight: 700;
  line-height: 1.5;
}

/* SWELLでカラムが縦積みになる幅では、
   各項目を「小さい画像＋文章」に組み替える */
@media (max-width: 1023px) {
  .nd-service > .wp-block-column {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    gap: 0.375rem 1rem;
    align-items: start;
  }

  .nd-service > .wp-block-column > figure {
    grid-row: span 2;
    margin: 0;
  }
}

/* サービス画像の白い札 */
.nd-service figure {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  overflow: hidden;
  background: #fff;
  border-radius: var(--nd-radius);
}

.nd-service figure img {
  width: 115%;
  max-width: none;
}

.nd-service p {
  font-size: max(0.9375rem, 15px);
  line-height: 1.75;
}

/* タブレットだけ少し横長 */
@media (min-width: 768px) and (max-width: 1023px) {
  .nd-service figure {
    aspect-ratio: 4 / 3;
  }
}

/* PC：タイトル左、項目右 */
@media (min-width: 1024px) {
  .nd-notbox {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 2.5rem;
    padding: 1.5rem 2rem;
  }

  .nd-notbox .cap_box_ttl {
    padding: 0 2.5rem 0 0;
    border-right: 1px solid var(--nd-c-line);
  }

  .nd-notbox .cap_box_content {
    padding: 0;
  }

  .nd-notbox .cap_box_content ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.5rem;
  }
}


/* =========================================================
   08. 04 ご利用例
   ========================================================= */

.nd-case > .wp-block-column {
  display: flex;
  flex-direction: column;
  padding: 2rem 1.75rem;
  background: var(--nd-c-bg-gray);
  border-radius: var(--nd-radius);
  overflow: hidden;
  box-shadow: none;
}

.nd-case__family {
  align-self: flex-start;
  padding: 0.25rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--nd-c-main);
  background: #fff;
  border-radius: 100vmax;
}

.nd-case__after {
  margin-top: auto;
  padding: 1rem 1.125rem;
  font-weight: 700;
  line-height: 1.7;
  background: var(--nd-c-accent-soft);
  border-radius: 0.75rem;
}

/* 見出し列は必要な幅だけ取り、説明列へ残りを渡す */
.nd-case .wp-block-table th {
  width: 1%;
  white-space: nowrap;
}

@media (min-width: 1024px) {
  .nd-case__after {
    min-height: 8rem;
  }
}

/* 3列のカードが窮屈になる幅だけ内側余白を縮める */
@media (min-width: 1024px) and (max-width: 1279px) {
  .nd-case > .wp-block-column {
    padding: 1.5rem 1rem;
  }

  .nd-case .wp-block-table th,
  .nd-case .wp-block-table td {
    padding-inline: 0.375rem;
  }
}

/* =========================================================
   09. 04-2 途中CTA
   ========================================================= */

.nd-midcta__inner {
  align-items: center;
  text-align: center;
}

.nd-midcta__title {
  font-family: var(--nd-font-head);
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.4;
}

.nd-midcta__price {
  font-weight: 700;
  white-space: nowrap;
}

/* 8,800だけ大きく */
.nd-midcta__price strong {
  display: inline-block;
  margin-inline: 0.4rem 0.15rem;
  padding-inline: 0.08em;

  font-family: var(--nd-font-head);
  font-size: 3rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--nd-c-text);

  background: none;
  border: 0;
  border-radius: 0;
}

/* PC：3列を均等割りせず、内容幅で中央に並べる */
@media (min-width: 1024px) {
  .nd-midcta__inner {
    display: grid;
    grid-template-columns: auto auto auto;
    justify-content: center;
    align-items: center;
    gap: 3rem;
  }

  .nd-midcta__inner > .wp-block-column {
    flex-basis: auto !important;
    width: auto;
    margin: 0;
  }

  .nd-midcta__title {
    font-size: 1.625rem;
    white-space: nowrap;
  }
}


/* =========================================================
   10. 05 見せ場（暮らしの一枚）
   ========================================================= */

.nd-story__panel {
  padding: 2.25rem 1.5rem;
  background: #fff;
  border-radius: var(--nd-radius);
  box-shadow: var(--nd-shadow);
}

.post_content .nd-story__panel h2 {
  margin-bottom: 1.25rem;
  font-family: var(--nd-font-head);
  font-size: var(--nd-fs-h2);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

/* SP・タブレット：
   Coverの画像を通常の流れに戻し、
   写真の下へ白パネルを置く */
@media (max-width: 1023px) {
  .nd-story {
    display: block;
    min-height: 0;
    margin-block: 3rem;
    padding: 0;
    overflow: visible;
    background: var(--nd-c-bg-gray);
  }

  .nd-story .wp-block-cover__background {
    display: none;
  }

  .nd-story .wp-block-cover__image-background {
    position: static;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
    object-fit: cover;
  }
	
	.nd-story .wp-block-cover__inner-container {
		width: calc(100% - 2.5rem);
		margin: -2.5rem auto 0;
		padding-bottom: 3rem;
	}
}

/* PC：
   FVと同じ最大1280px。
   写真右下に白パネルを重ねる */
@media (min-width: 1024px) {
  .nd-story {
    position: relative;
    left: 50%;
    width: min(80rem, calc(100vw - 3rem));
    max-width: none;
    min-height: 36rem;
    margin: var(--nd-sec-y) 0;
    transform: translateX(-50%);
    padding: 3rem;
    overflow: hidden;
    border-radius: 4rem / 3rem;
    align-items: flex-end;
    justify-content: flex-end;
  }

  /* エディター側で「右下」を指定していないのでCSSで補う */
  .nd-story .wp-block-cover__inner-container {
    display: flex;
    width: 100%;
    justify-content: flex-end;
    align-items: flex-end;
  }

  .nd-story .wp-block-cover__image-background {
    object-fit: cover;
    object-position: 30% center;
  }

.nd-story .wp-block-cover__background {
  opacity: 0 !important;
}

  .nd-story__panel {
    width: 30rem;
    padding: 3rem;
  }
	
	.post_content .nd-story__panel h2 {
		font-size: 2rem;
	}
}

/* 1024〜1279pxではパネルを少し小さく */
@media (min-width: 1024px) and (max-width: 1279px) {
  .nd-story__panel {
    width: 26rem;
    padding: 2.5rem;
  }
}

/* =========================================================
   11. 06 安心の理由
   ========================================================= */

.nd-reason {
  align-items: start;
}

/* 左の写真 */
.nd-reason__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--nd-radius);
}

/* 見出しと4項目の間 */
.nd-reason__body h2 {
  margin-bottom: 2rem;
}

/* 4つの安心ポイント */
.nd-reason__item {
  padding-block: 1.5rem;
  border-top: 1px solid var(--nd-c-line);
}

.nd-reason__item:last-child {
  border-bottom: 1px solid var(--nd-c-line);
}

/* H3頭のピンク四角 */
.nd-reason__item h3 {
  position: relative;
  padding-left: 1.625rem;
}

.nd-reason__item h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.38em;
  width: 0.875rem;
  height: 0.875rem;
  background: var(--nd-c-accent);
  border-radius: 3px;
}

/* 説明文 */
.nd-reason__item p {
  margin-top: 0.5rem;
  padding-left: 1.625rem;
  font-size: var(--nd-fs-small);
  color: var(--nd-c-text-sub);
}


/* PC */
@media (min-width: 1024px) {
  .nd-reason {
    align-items: start;
  }

  .nd-reason__media {
    position: sticky;
    top: 7rem;
  }

  .nd-reason__media img {
    aspect-ratio: 4 / 5;
  }
}

/* =========================================================
   12. 07 スタッフ紹介
   ========================================================= */

/* 写真 */
.nd-staff img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--nd-radius);
}

/* 名前 */
.nd-staff__name {
  margin-top: 1.25rem;
  font-family: var(--nd-font-head);
  font-size: 1.125rem;
  line-height: 1.5;
}

/* コメントを白い吹き出しに */
.nd-staff__comment {
  position: relative;
  margin-top: 1rem;
  padding: 0.875rem 1rem;
  font-size: max(0.9375rem, 15px);
  line-height: 1.75;
  background: #fff;
  border-radius: 0.75rem;
}

/* PCの縦組みでは上向きのしっぽ */
@media (min-width: 1024px) {
  .nd-staff__comment::before {
    content: "";
    position: absolute;
    left: 1.5rem;
    top: -0.5rem;
    border: 0.5rem solid transparent;
    border-top: 0;
    border-bottom-color: #fff;
  }
}

/* SP・タブレットは「小さい写真＋文章」の横組み */
@media (max-width: 1023px) {
  .nd-staff > .wp-block-column {
    display: grid;
    grid-template-columns: 6.5rem 1fr;
    grid-template-rows: auto 1fr;
    gap: 0.5rem 1.25rem;
    align-items: start;
  }

  .nd-staff > .wp-block-column > figure {
    grid-row: span 2;
    margin: 0;
  }

  .nd-staff__name,
  .nd-staff__comment {
    margin-top: 0;
  }

  .nd-staff__comment::before {
    display: none;
  }
}

/* =========================================================
   13. 08 料金
   ========================================================= */

/* 08 料金：白カードの角丸 */
.nd-price > .wp-block-column {
  border-radius: var(--nd-radius);
  overflow: hidden;
}

/* 08 料金：左カードの内側余白 */
.nd-price > .wp-block-column.nd-price__trial {
  padding: 2.5rem;
}

@media (max-width: 767px) {
  .nd-price > .wp-block-column.nd-price__trial {
    padding: 2rem 1.5rem;
  }
}

/* 初回お試し */
.nd-price__trial-label {
  font-family: var(--nd-font-head);
  font-size: 1.25rem;
  font-weight: 700;
}

/* 3時間 8,800円 */
.nd-price__trial-price {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
  margin-top: 0.5rem;

  font-family: var(--nd-font-head);
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.1;
}

/* 税込・1家庭1回まで */
.nd-price__trial-note {
  margin-top: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: max(var(--nd-fs-note), 13px);
  color: var(--nd-c-text-sub);
}

/* 料金表 */
.nd-table table {
  width: 100%;
  font-size: max(1rem, 14px);
}

.nd-table th,
.nd-table td {
  padding: 0.875rem 0.375rem;
  border: 0;
  border-bottom: 1px solid var(--nd-c-line);
  text-align: right;
  white-space: nowrap;
  background: none;
}

.nd-table th:first-child,
.nd-table td:first-child {
  text-align: left;
  font-weight: 700;
}

.nd-table thead th {
  font-size: max(0.8125rem, 13px);
  color: var(--nd-c-main);
  background: var(--nd-c-sky);
}

/* 注意事項 */
.nd-price__notes {
  margin-top: 1.5rem;
  font-size: max(var(--nd-fs-note), 13px);
  color: var(--nd-c-text-sub);
}

/* =========================================================
   14. 09 ご利用の流れ
   ========================================================= */

/* 十分な幅がある場合だけ横4列にする */
@media (min-width: 1280px) {
  .nd-step {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2rem;
  }

  .nd-step > .swell-block-step__item {
    margin: 0;
    padding: 0;
  }

  /* 番号を上へ置き、本文の横幅を確保する */
  .nd-step .swell-block-step__number {
    position: static;
    margin-bottom: 1rem;
  }

  /* 横並びでは標準の縦のつなぎ線を使わない */
  .nd-step > .swell-block-step__item::before {
    display: none;
  }
}

/* =========================================================
   15. 10 よくある質問
   ========================================================= */

@media (min-width: 1024px) {
  .nd-faq__head {
    position: sticky;
    top: 7rem;
  }
}

/* =========================================================
   16. 11 お知らせ＋対応エリア
   ========================================================= */

.nd-info {
  display: grid;
}

.nd-info__title {
  margin-bottom: 1rem;
}

@media (min-width: 1024px) {
  .nd-info {
    grid-template-columns: 1fr 1fr;
  }
}

/* =========================================================
   17. 12 最終CTA
   ========================================================= */

.nd-cta__media {
  width: min(16rem, 70%);
  margin-inline: auto;
  padding: 1.5rem;
  background: #fff;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: var(--nd-shadow);
}

.nd-cta__media img {
  width: 100%;
}

@media (min-width: 1024px) {
  .nd-cta__inner {
    align-items: center;
  }

  .nd-cta__media {
    width: 20rem;
    padding: 2.25rem;
  }
}

/* 最終CTA：PCは横並び */
.nd-cta__body .nd-btns {
  align-items: center;
  gap: 1rem 2rem;
}

/* スマホではボタンと補助リンクを縦に並べる */
@media (max-width: 767px) {
  .nd-cta__body .nd-btns {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }

  .nd-cta__body .nd-textlink {
    text-align: center;
  }
}

/* =========================================================
   18. フッターメニュー
   ========================================================= */

/* SP・タブレット：2列 */
footer .widget_nav_menu .menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 1.5rem;
  margin: 0;
}

footer .widget_nav_menu .menu > li {
  width: auto;
  border: 0;
}

footer .widget_nav_menu .menu > li > a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0.625rem 0;
  border: 0;
}

/* SWELL標準の「>」を消す */
footer .widget_nav_menu .menu > li > a::before {
  display: none;
}

/* 固定メニューの帯の内側までリンク領域を広げる */
#fix_bottom_menu .menu_list > .menu-item > a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 48px;
}

/* メニュー開閉項目はリンクではなくliが操作対象 */
#fix_bottom_menu .menu_list > .menu_btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 48px;
}

/* PC：右側で横並び＋折り返し */
@media (min-width: 1024px) {
  footer .widget_nav_menu .menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem 2rem;
    max-width: 34rem;
    margin-left: auto;
  }
}

@media (min-width: 1024px) {
  footer .w-footer {
    flex-wrap: wrap;
  }

  footer .w-footer__box:nth-child(3) {
    flex: 0 0 100%;
    width: 100%;
    max-width: none;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgb(59 53 64 / 0.15);
  }
}

/* =========================================================
   19. 下層ページ：お問い合わせ・プライバシーポリシー
   ========================================================= */

/* 標準カラムを、カンプと同じ1024pxで切り替える */
.post_content .wp-block-columns.nd-contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  --wp-column-gap: 3rem;
  align-items: start;
}

.post_content .nd-contact > .wp-block-column {
  min-width: 0;
}

.post_content .nd-contact__side {
  display: grid;
  gap: 1.25rem;
  align-content: start;
}

.post_content .nd-contact__box {
  margin: 0;
  padding: 1.75rem 1.5rem;
  background: var(--nd-c-bg-gray);
  border-radius: var(--nd-radius);
}

.post_content .nd-contact__box--yellow {
  background: var(--nd-c-accent-soft);
}

.post_content .nd-contact__box > * + * {
  margin-top: 0.75rem;
}

.post_content .nd-contact__box p,
.post_content .nd-contact__box ol {
  font-size: var(--nd-fs-small);
}

/* CF7のフォームテンプレート内にあるnd-formだけを対象にする */
.post_content .nd-form .nd-form__row {
  min-width: 0;
  margin: 0;
  padding: 1.25rem 0;
  border: 0;
  border-bottom: 1px solid var(--nd-c-line);
}

.post_content .nd-form .nd-form__row:first-child {
  padding-top: 0;
}

.post_content .nd-form__label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.625rem;
  padding: 0;
  font-weight: 700;
}

.post_content .nd-form legend {
  float: left;
  width: 100%;
}

.post_content .nd-form legend + * {
  clear: both;
}

.post_content .nd-form__req,
.post_content .nd-form__opt {
  padding: 0.0625rem 0.5rem;
  font-size: max(0.75rem, 12px);
  border-radius: 3px;
}

.post_content .nd-form__req {
  color: #fff;
  background: var(--nd-c-main);
}

.post_content .nd-form__opt {
  color: var(--nd-c-text-sub);
  background: var(--nd-c-bg-gray);
}

.post_content .nd-form input[type="text"],
.post_content .nd-form input[type="email"],
.post_content .nd-form input[type="tel"],
.post_content .nd-form select,
.post_content .nd-form textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  padding: 0.75rem 1rem;
  font: inherit;
  font-size: max(1rem, 16px);
  color: var(--nd-c-text);
  background: #fff;
  border: 1px solid #b9bec5;
  border-radius: 6px;
}

.post_content .nd-form textarea {
  min-height: 144px;
  resize: vertical;
}

.post_content .nd-form input:focus-visible,
.post_content .nd-form select:focus-visible,
.post_content .nd-form textarea:focus-visible {
  outline: 3px solid var(--nd-c-main);
  outline-offset: 2px;
}

.post_content .nd-form__hint,
.post_content .nd-form__demo {
  margin-top: 0.5rem;
  font-size: max(var(--nd-fs-note), 13px);
  color: var(--nd-c-text-sub);
}

/* CF7のチェックボックス出力に合わせた並び */
.post_content .nd-form__choices .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.post_content .nd-form .wpcf7-list-item {
  margin: 0;
}

.post_content .nd-form__choices label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.25rem 0.75rem;
  border: 1px solid var(--nd-c-line);
  border-radius: 6px;
  cursor: pointer;
}

.post_content .nd-form input[type="checkbox"] {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--nd-c-main);
}

.post_content .nd-form__agree,
.post_content .nd-form__submit {
  margin-top: 2rem;
}

.post_content .nd-form__agree .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  min-height: 44px;
  padding-block: 0.5rem;
}

.post_content .nd-form__agree input[type="checkbox"] {
  margin-top: 0.25rem;
}

.post_content .nd-form__button {
  width: 100%;
  max-width: 100%;
  min-height: 52px;
  padding: 1rem 1.5rem;
  border: 0;
  border-radius: 999px;
  font: inherit;
  font-weight: 700;
  color: var(--nd-c-text);
  background: var(--nd-c-accent);
  opacity: 0.6;
  cursor: not-allowed;
}

/* 法律文面の見本は行の長さを抑える */
.post_content .nd-prose {
  max-width: 45em;
}

.post_content .nd-prose h2.nd-h3 {
  margin-block: 2.5rem 1rem;
}

@media (min-width: 768px) {
  .post_content .nd-form__button {
    width: auto;
    min-width: min(20rem, 100%);
  }
}

@media (min-width: 1024px) {
  .post_content .wp-block-columns.nd-contact {
    grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
    --wp-column-gap: clamp(3rem, 5vw, 5rem);
  }

  .post_content .nd-contact > .nd-contact__side {
    position: sticky;
    top: 7rem;
  }
}