/* ==========================================================================
   jand.jp 子テーマ（モック v4 を SWELL 向けに移植）
   クラス名 .jd-* はモックと同じ。見た目の正は mock/index.html
   ========================================================================== */

/* --------------------------------------------------------------------------
   ベース（SWELL 全体にトークンを効かせる。全称リセットは親を壊すのでしない）
   -------------------------------------------------------------------------- */
body {
  font-family: var(--jd-font-ja);
  font-size: var(--jd-fs-body);
  font-weight: var(--jd-fw-body);
  line-height: var(--jd-lh-body);
  letter-spacing: var(--jd-ls-body);
  color: var(--jd-text);
  background: var(--jd-bg);
  -webkit-font-smoothing: antialiased;
}

.jd-header,
.jd-header *,
.jd-header *::before,
.jd-header *::after,
.jd-hero,
.jd-hero *,
.jd-hero *::before,
.jd-hero *::after,
.jd-section,
.jd-section *,
.jd-section *::before,
.jd-section *::after,
.jd-footer,
.jd-footer *,
.jd-footer *::before,
.jd-footer *::after,
.jd-spbar,
.jd-spbar *,
.jd-main,
.jd-main * {
  box-sizing: border-box;
}

.jd-section img,
.jd-footer img {
  max-width: 100%;
  height: auto;
  display: block;
}

.jd-hero a:not(.jd-btn):not(.jd-more),
.jd-section a:not(.jd-btn):not(.jd-more),
.jd-footer a:not(.jd-btn):not(.jd-more),
.jd-header a:not(.jd-btn):not(.jd-more),
.jd-spbar a:not(.jd-btn),
.l-header a:not(.jd-btn):not(.jd-more) {
  color: inherit;
  text-decoration: none;
}

.jd-hero h1,
.jd-hero h2,
.jd-hero h3,
.jd-hero h4,
.jd-section h1,
.jd-section h2,
.jd-section h3,
.jd-section h4,
.jd-footer h1,
.jd-footer h2,
.jd-footer h3,
.jd-footer h4 {
  padding: 0;
  border: none;
  background: none;
  font-weight: var(--jd-fw-head);
  line-height: var(--jd-lh-head);
}

.jd-greet__body p { margin: 0 0 1.6em; }
.jd-greet__body p:last-child { margin-bottom: 0; }

.jd-section ul,
.jd-section ol,
.jd-footer ul,
.jd-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.jd-container {
  width: 100%;
  max-width: var(--jd-container);
  margin-inline: auto;
  padding-inline: var(--jd-gutter);
}

.jd-section { padding-block: var(--jd-section-y); }
.jd-section--tint { background: var(--jd-tint); }

.jd-en { font-family: var(--jd-font-en); }

/* --------------------------------------------------------------------------
   セクション見出し
   参照サイトの並びは
     私たちにできること   ← 和文・小・緑
     SERVICE              ← 英字・大・極細・字間 .18em
   -------------------------------------------------------------------------- */
.jd-head { margin-bottom: var(--jd-head-mb); }

.jd-head__sub {
  display: block;
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
  margin-bottom: 9px;   /* 参照と同値 */
}

.jd-head__en {
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-h2);
  font-weight: var(--jd-fw-head);
  letter-spacing: var(--jd-ls-head);
  line-height: var(--jd-lh-head);
  margin-left: -2px;    /* 参照と同値。字間ぶんの左の空きを詰める */
  text-transform: uppercase;
}

.jd-head__lead {
  margin-top: 24px;
  max-width: 680px;
  color: var(--jd-text-sub);
}

.jd-head--row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.jd-note { color: var(--jd-text-sub); margin: 0; }

/* --------------------------------------------------------------------------
   リンク・ボタン
   参照サイトのボタンは角丸 4px。ピルではない
   -------------------------------------------------------------------------- */
.jd-more {
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  line-height: 1.65;
  text-transform: uppercase;
}
.jd-more::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
  transition: width .3s;
}
.jd-more:hover::after { width: 44px; }

.jd-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 18px 39px;               /* 参照と同値 */
  border-radius: var(--jd-radius);
  font-size: var(--jd-fs-min);
  font-weight: var(--jd-fw-btn);
  letter-spacing: var(--jd-ls-label);
  line-height: 1.65;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color .25s, color .25s, border-color .25s;
}

/* CTA は専用色ではなくメインカラー。参照サイトと同じ考え方 */
.jd-btn--cta,
a.jd-btn--cta {
  background: var(--jd-cta);
  color: #fff;
  text-decoration: none;
  font-weight: 500;
  padding: 20px 44px;
  min-width: 240px;
  box-shadow: 0 8px 22px rgba(226, 74, 60, .32);
}
.jd-btn--cta:hover,
a.jd-btn--cta:hover {
  background: var(--jd-cta-dark);
  color: #fff;
  box-shadow: 0 10px 26px rgba(197, 61, 49, .4);
}

.jd-btn--quiet,
a.jd-btn--quiet {
  background: transparent;
  color: var(--jd-main);
  border-color: var(--jd-main);
  text-decoration: none;
}
.jd-btn--quiet:hover,
a.jd-btn--quiet:hover {
  background: var(--jd-main);
  color: #fff;
}

.jd-btn--sm { padding: 13px 27px; gap: 9px; }
.jd-btn--sm.jd-btn--cta {
  min-width: 0;
  padding: 12px 22px;
  box-shadow: 0 4px 14px rgba(226, 74, 60, .28);
}

/* ボタン内のアイコン。アイコンフォントは読み込みが増えるうえ
   ウェイトを揃えられないので、線画のインライン SVG にしている。
   stroke は currentColor なので、ボタンの文字色に自動で追従する */
.jd-btn__icon {
  width: 19px;
  height: 19px;
  flex-shrink: 0;
}
.jd-btn--sm .jd-btn__icon { width: 17px; height: 17px; }

/* 矢印は右側に置き、ホバーで少し進む */
.jd-btn__icon--arrow { transition: transform .25s; }
.jd-btn:hover .jd-btn__icon--arrow { transform: translateX(4px); }

/* --------------------------------------------------------------------------
   ヘッダー　電話番号は置かない
   -------------------------------------------------------------------------- */
.jd-header {
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(8px);
}
.jd-header__inner {
  height: var(--jd-header-h);
  display: flex;
  align-items: center;
  gap: 28px;
  max-width: none;
  padding-inline: clamp(21px, 3vw, 45px);
}

.jd-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--jd-font-en);
  font-size: 24px;
  font-weight: 300;
  letter-spacing: .1em;
  flex-shrink: 0;
}
.jd-logo__img {
  height: 48px;
  width: auto;
  display: block;
  max-width: 160px;
  object-fit: contain;
}
.jd-logo__ja {
  font-family: var(--jd-font-ja);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  color: var(--jd-text-sub);
  letter-spacing: var(--jd-ls-label);
  white-space: nowrap;
}

.jd-nav { margin-left: auto; }
.jd-nav__list { display: flex; gap: 27px; }
.jd-nav__list a {
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-body);
  white-space: nowrap;
}
.jd-nav__list a:hover { color: var(--jd-main); }

.jd-nav__cta { display: none; }

/* ハンバーガー。3本線を上下2本の回転と中央1本のフェードで✕にする。
   線は position:absolute で置き、top と rotate だけを動かす */
.jd-burger {
  display: none;
  position: relative;
  width: 45px;
  height: 45px;
  padding: 0;
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius);
  background: transparent;
  cursor: pointer;
}
.jd-burger span {
  position: absolute;
  left: 50%;
  width: 20px;
  height: 1px;
  background: var(--jd-text);
  transform: translateX(-50%);
  transition: top .3s ease, transform .3s ease, opacity .2s ease;
}
.jd-burger span:nth-child(1) { top: 15px; }
.jd-burger span:nth-child(2) { top: 22px; }
.jd-burger span:nth-child(3) { top: 29px; }

.jd-header.is-open .jd-burger span:nth-child(1) {
  top: 22px;
  transform: translateX(-50%) rotate(45deg);
}
.jd-header.is-open .jd-burger span:nth-child(2) { opacity: 0; }
.jd-header.is-open .jd-burger span:nth-child(3) {
  top: 22px;
  transform: translateX(-50%) rotate(-45deg);
}

/* --------------------------------------------------------------------------
   ヒーロー
   参照サイトの実構造:
     画像は右寄せ clamp(400px, 66vw, 1200px) / 比率 3:2
     コピーは position:absolute で画像の左に重ねる
     コピーは左からフェードイン、画像は少し遅れてフェードイン
   -------------------------------------------------------------------------- */
.jd-hero {
  position: relative;
  max-width: 1680px;
  margin-inline: auto;
  margin-bottom: clamp(48px, 6vw, 90px);
}

.jd-hero__copy {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: var(--jd-gutter);
  width: min(720px, 62%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: 0;
  padding-bottom: clamp(16px, 3vw, 40px);
  pointer-events: none; /* 重ねた下の画像を邪魔しない。リンクだけ通す */
}
.jd-hero__copy a { pointer-events: auto; }

/* 写真左の余白が白いので、グラデは薄く短くする */
.jd-hero__copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: calc(var(--jd-gutter) * -1);
  width: calc(100% + var(--jd-gutter) + 40px);
  background: linear-gradient(90deg, #fff 22%, rgba(255, 255, 255, .28) 58%, rgba(255, 255, 255, 0) 100%);
  pointer-events: none;
}

.jd-hero__catch {
  display: block;
  font-size: clamp(16px, 1.5vw, 18px);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
  margin-bottom: 21px;
}

.jd-hero__title {
  font-size: var(--jd-fs-hero);
  font-weight: var(--jd-fw-head);
  letter-spacing: var(--jd-ls-head);
  line-height: 1.5;
  margin-bottom: 28px;
  font-feature-settings: "palt";
}
.jd-hero__line { display: block; }

.jd-hero__lead {
  font-size: clamp(16px, 1.7vw, 20px);
  color: var(--jd-text-sub);
  margin-bottom: 22px;
  max-width: 34em;
}

.jd-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 15px;
}
.jd-hero__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.jd-hero__micro {
  margin: 0;
  font-size: var(--jd-fs-min);
  font-weight: 400;
  letter-spacing: .08em;
  line-height: 1.5;
  color: var(--jd-cta);
  text-align: center;
  pointer-events: none;
}
.jd-hero__micro em {
  font-style: normal;
  font-weight: 500;
}

.jd-hero__badges {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: clamp(4px, 1vw, 12px);
  width: 100%;
  margin-top: 28px;
  pointer-events: none;
}
.jd-hero__badges img {
  width: auto !important;
  height: clamp(120px, 16vw, 196px) !important;
  max-width: 33% !important;
  flex: 0 1 auto;
  object-fit: contain !important;
  object-position: center bottom;
  background: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.jd-hero__points {
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
  max-width: 34em;
}
.jd-hero__points li {
  position: relative;
  padding-left: 18px;
  margin: 0 0 8px;
  color: var(--jd-text-sub);
}
.jd-hero__points li:last-child { margin-bottom: 0; }
.jd-hero__points li::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  left: 0;
  top: .9em;
  width: 7px;
  height: 1px;
  background: var(--jd-main);
}
.jd-hero__fine {
  margin: 18px 0 0;
  color: var(--jd-text-faint);
  font-size: var(--jd-fs-min);
  letter-spacing: var(--jd-ls-body);
  pointer-events: none;
}

/* 画像は右寄せ。画面外へはみ出さないので見切れない */
.jd-hero__media {
  width: clamp(560px, 86vw, 1520px);
  margin-left: auto;
}
.jd-hero__media-inner {
  position: relative;
  overflow: hidden;
  border-radius: var(--jd-radius);
  aspect-ratio: 3 / 2;
}
.jd-hero__media-inner > img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  object-position: 88% center; /* 人物を右端に残し、左の白余白にコピーを重ねる */
  border-radius: 0;
}
/* 1680px 未満では右端まで抜く（参照サイトと同条件） */
@media (min-width: 841px) and (max-width: 1679px) {
  .jd-hero__media-inner {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
}

/* 画像が低くなる中間幅では、コピーがはみ出さないよう余白を詰める */
@media (min-width: 841px) and (max-width: 1180px) {
  .jd-hero__copy {
    width: min(620px, 70%);
    padding-bottom: 16px;
  }
  .jd-hero__media {
    width: 90vw;
  }
  .jd-hero__badges img { height: clamp(100px, 12vw, 136px) !important; }
}

/* ---- 登場アニメ（参照サイトの anime.js と同じ動きを CSS で再現） ----
   サブコピー: 左から 15px / 1.35s
   見出し各行: 同じ動きを 0.45s ずらして
   画像: 0.2s 後にフェードイン、中でわずかにズームアウト */
.jd-hero__catch,
.jd-hero__line,
.jd-hero__lead,
.jd-hero__points,
.jd-hero__actions,
.jd-hero__badges,
.jd-hero__fine {
  opacity: 0;
  transform: translateX(15px);
  animation: jd-hero-copy-in 1.35s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}
.jd-hero__catch { animation-delay: .3s; }
.jd-hero__line:nth-child(1) { animation-delay: .8s; }
.jd-hero__line:nth-child(2) { animation-delay: 1.25s; }
.jd-hero__lead { animation-delay: 1.55s; animation-duration: 1.2s; }
.jd-hero__points { animation-delay: 1.65s; animation-duration: 1.15s; }
.jd-hero__actions { animation-delay: 1.8s; animation-duration: 1.1s; }
.jd-hero__badges { animation-delay: 2s; animation-duration: 1.1s; }
.jd-hero__fine { animation-delay: 2.05s; animation-duration: 1.1s; }

.jd-hero__media {
  opacity: 0;
  animation: jd-hero-fade 1s ease-in .2s forwards;
}
.jd-hero__media-inner > img {
  animation: jd-hero-zoom 9s linear .2s forwards;
  transform: scale(1.08);
}

@keyframes jd-hero-copy-in {
  from { opacity: 0; transform: translateX(15px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes jd-hero-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes jd-hero-zoom {
  from { transform: scale(1.08); }
  to   { transform: scale(1); }
}

/* --------------------------------------------------------------------------
   お知らせ
   -------------------------------------------------------------------------- */
.jd-tabs {
  display: flex;
  gap: 9px;
  margin-bottom: 15px;
  flex-wrap: wrap;
  align-items: center;
}
button.jd-tab,
.jd-tab {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 6px 21px !important;
  border-radius: var(--jd-radius-pill) !important;
  border: 1px solid var(--jd-border) !important;
  background: #fff !important;
  color: var(--jd-text-sub) !important;
  font-family: inherit !important;
  font-size: var(--jd-fs-min) !important;
  font-weight: 300 !important;
  letter-spacing: var(--jd-ls-body);
  line-height: 1.65 !important;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none !important;
  margin: 0 !important;
  white-space: nowrap;
  text-align: center;
  text-decoration: none !important;
  background-image: none !important;
}
button.jd-tab[aria-selected="true"],
.jd-tab[aria-selected="true"] {
  background: var(--jd-main) !important;
  border-color: var(--jd-main) !important;
  color: #fff !important;
}

.jd-newslist {
  display: block;
  width: 100%;
}
.jd-newslist li { border-bottom: 1px solid var(--jd-border); }
.jd-newslist a {
  display: flex !important;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px 24px;
  padding: 24px 3px !important;
  width: 100%;
  box-sizing: border-box;
}
.jd-newslist a:hover { color: var(--jd-main); }
.jd-newslist__date {
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: .06em;
  color: var(--jd-text-faint);
  flex: 0 0 auto;
  white-space: nowrap;
}
.jd-newslist__cat {
  font-size: var(--jd-fs-min);
  font-weight: 300;
  color: var(--jd-main);
  border: 1px solid var(--jd-main);
  border-radius: var(--jd-radius-pill);
  padding: 3px 18px;
  line-height: 1.65;
  flex: 0 0 auto;
  white-space: nowrap;
}
.jd-newslist__title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
[hidden] { display: none !important; }

/* --------------------------------------------------------------------------
   お悩み　LP。元ヒーローの引用リストを、悩み→解決→CTA の流れにする
   -------------------------------------------------------------------------- */
.jd-worrylp {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(36px, 4.5vw, 60px);
  align-items: start;
}
.jd-worrylp__en {
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-head);
  color: var(--jd-main);
  text-transform: uppercase;
  margin-bottom: 12px;
}
.jd-worrylp__ja {
  font-size: clamp(30px, 4.2vw, 46px);
  font-weight: var(--jd-fw-head);
  letter-spacing: var(--jd-ls-head);
  line-height: 1.45;
  margin: 0 0 24px;
  font-feature-settings: "palt";
}
.jd-worrylp__lead {
  margin: 0;
  color: var(--jd-text-sub);
  max-width: 680px;
}
.jd-section ol.jd-worrylp__list {
  margin: 0;
  padding: 8px clamp(24px, 3.2vw, 36px) !important;
  background: #fff;
  border-radius: var(--jd-radius);
}
.jd-worrylp__list li {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 8px 28px;
  align-items: center;
  margin: 0;
  padding: 28px 0;
  border-bottom: 1px solid var(--jd-border);
}
.jd-worrylp__list li:last-child { border-bottom: none; }
.jd-worrylp__list li::before {
  content: none !important;
  display: none !important;
}
.jd-worrylp__no {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  padding: 0 0 0 .12em;
  border: 1px solid var(--jd-main);
  border-radius: 50%;
  font-family: var(--jd-font-en);
  font-size: 18px;
  font-weight: 100;
  letter-spacing: .14em;
  line-height: 1;
  color: var(--jd-text);
  box-sizing: border-box;
}
.jd-worrylp__label {
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  text-transform: uppercase;
  margin-bottom: 4px;
}
.jd-worrylp__quote {
  margin: 0 0 8px;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 400;
  letter-spacing: .08em;
  line-height: 1.7;
  color: var(--jd-text);
}
.jd-worrylp__body {
  margin: 0;
  color: var(--jd-text-sub);
}

.jd-worrylp__solve {
  margin-top: clamp(42px, 5vw, 72px);
  background: #fff;
  border-radius: var(--jd-radius);
  text-align: center;
  padding: clamp(36px, 5vw, 64px) clamp(24px, 4vw, 48px);
}
.jd-worrylp__solve-en {
  margin: 0 0 10px;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-head);
  color: var(--jd-main);
  text-transform: uppercase;
}
.jd-worrylp__solve-catch {
  margin: 0 0 16px;
  font-size: clamp(24px, 3vw, 33px);
  font-weight: var(--jd-fw-head);
  letter-spacing: var(--jd-ls-head);
  line-height: 1.5;
}
.jd-worrylp__solve-lead {
  margin: 0 auto 28px;
  max-width: 38em;
  color: var(--jd-text-sub);
  word-break: keep-all;
  line-break: strict;
  overflow-wrap: normal;
}
.jd-worrylp__solve-lead .jd-nowrap { white-space: nowrap; }
.jd-section ul.jd-worrylp__proof {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 8px;
  margin: 0 0 24px !important;
  padding: 0 !important;
}
.jd-worrylp__proof li {
  margin: 0;
  padding: 8px 18px;
  border: 1px solid var(--jd-main);
  border-radius: var(--jd-radius-pill);
  color: var(--jd-main);
  letter-spacing: .08em;
  line-height: 1.5;
}
.jd-worrylp__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
}

/* --------------------------------------------------------------------------
   強み　2×2。カードで囲わず、余白だけで区切る
   -------------------------------------------------------------------------- */
.jd-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(48px, 6vw, 90px) clamp(42px, 5vw, 72px);
}

/* アイコンは塗りの丸バッジをやめ、線画だけを主色で置く。
   参照サイトの「面を作らない」方針に合わせた */
.jd-point__icon {
  color: var(--jd-main);
  margin-bottom: 21px;
}
.jd-point__icon svg { width: 42px; height: 42px; display: block; }

.jd-point__label {
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
  margin-bottom: 6px;
  text-transform: uppercase;
}
.jd-point__title {
  font-size: var(--jd-fs-h3);
  letter-spacing: var(--jd-ls-label);
  margin-bottom: 18px;
}
.jd-point__body { color: var(--jd-text-sub); }
.jd-point__foot { margin-top: 21px; }

/* --------------------------------------------------------------------------
   サービス　左右交互
   参照サイトは各項目に番号ではなく英字サブタイトルを置いている
   -------------------------------------------------------------------------- */
.jd-zig { display: grid; gap: clamp(72px, 9vw, 120px); }

.jd-zig__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(42px, 5.4vw, 72px);
}
.jd-zig__row:nth-child(even) .jd-zig__media { order: -1; }

.jd-zig__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--jd-radius);
}

/* 以前ここに置いていた小さく太い「01」は廃止した */
.jd-zig__en {
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
  margin-bottom: 3px;
}
.jd-zig__title {
  font-size: var(--jd-fs-h3);
  letter-spacing: var(--jd-ls-label);
  margin-bottom: 21px;
}
.jd-zig__body { color: var(--jd-text-sub); }
.jd-zig__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 24px 0 30px;
}
.jd-zig__tags li {
  font-size: var(--jd-fs-min);
  font-weight: 300;
  color: var(--jd-text-sub);
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius-pill);
  padding: 3px 18px;
  line-height: 1.65;
}

/* --------------------------------------------------------------------------
   ご相談の流れ
   参照サイトの番号は 48px / weight 100。大きくて極細なのが要
   -------------------------------------------------------------------------- */
.jd-steps { max-width: 760px; }
.jd-steps__item {
  display: grid;
  grid-template-columns: clamp(60px, 7vw, 90px) 1fr;
  gap: clamp(21px, 3vw, 42px);
  padding-bottom: clamp(42px, 4.5vw, 60px);
}
.jd-steps__item:last-child { padding-bottom: 0; }

.jd-steps__num {
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-num);
  font-weight: var(--jd-fw-num);
  letter-spacing: .04em;
  line-height: 1;
  color: var(--jd-main);
}
.jd-steps__title {
  font-size: var(--jd-fs-h3);
  letter-spacing: var(--jd-ls-label);
  margin-bottom: 12px;
}
.jd-steps__body { color: var(--jd-text-sub); }

/* --------------------------------------------------------------------------
   代表挨拶
   -------------------------------------------------------------------------- */
.jd-greet {
  display: grid;
  grid-template-columns: clamp(240px, 30%, 340px) 1fr;
  gap: clamp(42px, 6vw, 90px);
  align-items: start;
}
.jd-greet__photo img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center 12%;
  border-radius: var(--jd-radius);
}
.jd-greet__caption {
  margin-top: 15px;
  color: var(--jd-text-sub);
  letter-spacing: var(--jd-ls-label);
}
.jd-greet__caption small {
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  color: var(--jd-text-faint);
}
.jd-greet__lead {
  font-size: var(--jd-fs-h2);
  font-family: var(--jd-font-ja);
  font-weight: var(--jd-fw-head);
  letter-spacing: var(--jd-ls-head);
  line-height: var(--jd-lh-head);
  margin-bottom: clamp(30px, 3.6vw, 48px);
}
.jd-greet__body { color: var(--jd-text-sub); }
.jd-greet__sign {
  margin-top: 30px;
  letter-spacing: var(--jd-ls-label);
}
.jd-greet__sign strong { font-weight: 300; font-size: var(--jd-fs-h3); margin-left: 15px; }

/* --------------------------------------------------------------------------
   実績
   -------------------------------------------------------------------------- */
.jd-works { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 2.4vw, 42px); }
.jd-works__thumb {
  aspect-ratio: 4 / 3;
  background: var(--jd-tint-deep);
  border-radius: var(--jd-radius);
  display: grid;
  place-items: center;
  color: var(--jd-text-faint);
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
}
.jd-works__cat {
  margin-top: 18px;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
}
.jd-works__title {
  margin-top: 6px;
  font-size: var(--jd-fs-min);
  letter-spacing: var(--jd-ls-label);
  line-height: 1.7;
}
.jd-works__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--jd-radius);
}
.jd-works__thumb--badge {
  aspect-ratio: 1 / 1;
  background: var(--jd-tint);
  padding: 18px;
}
.jd-works__thumb--badge img {
  object-fit: contain;
  border-radius: 0;
}
.jd-works__note { margin-top: clamp(42px, 4.5vw, 60px); color: var(--jd-text-sub); }

/* --------------------------------------------------------------------------
   お客様の声
   -------------------------------------------------------------------------- */
.jd-voice {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(32px, 4vw, 56px);
  margin: 0;
}
.jd-voice__item {
  margin: 0;
  padding: 0;
  border: none;
  quotes: none;
}
.jd-voice__photo {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--jd-radius);
  margin-bottom: 18px;
  background: var(--jd-tint);
}
.jd-voice__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  border-radius: var(--jd-radius);
}
.jd-voice__item:nth-child(2) .jd-voice__photo img { object-position: 70% 16%; }
.jd-voice__item:nth-child(3) .jd-voice__photo img { object-position: 40% 12%; }
.jd-voice__quote {
  font-size: var(--jd-fs-h3);
  font-weight: var(--jd-fw-head);
  letter-spacing: var(--jd-ls-label);
  line-height: 1.65;
  margin: 0 0 18px;
  color: var(--jd-text);
}
.jd-voice__quote::before {
  content: "“";
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-num);
  font-weight: var(--jd-fw-num);
  color: var(--jd-main);
  line-height: 1;
  margin-bottom: 12px;
}
.jd-voice__name {
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-text-sub);
}

/* --------------------------------------------------------------------------
   料金　写真付き3カラム
   -------------------------------------------------------------------------- */
.jd-plans__badge {
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-cta);
  line-height: 1.65;
  margin-bottom: 6px;
}
.jd-mikata__tax {
  margin: 28px 0 0;
  color: var(--jd-text-faint);
  text-align: center;
  letter-spacing: var(--jd-ls-body);
}
.jd-cases {
  margin-top: clamp(48px, 6vw, 90px);
}
.jd-plans { display: grid; grid-template-columns: repeat(3, 1fr); }
.jd-plans__item { padding: 0 clamp(21px, 2.4vw, 36px); border-left: 1px solid var(--jd-border); min-width: 0; }
.jd-plans__item:last-child { border-right: 1px solid var(--jd-border); }

.jd-plans__photo {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--jd-radius);
  margin-bottom: 21px;
  background: var(--jd-tint);
}
.jd-plans__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: var(--jd-radius);
}
.jd-plans__item:nth-child(1) .jd-plans__photo img { object-position: center 40%; }
.jd-plans__item:nth-child(2) .jd-plans__photo img { object-position: center 55%; }
.jd-plans__item:nth-child(3) .jd-plans__photo img { object-position: center 45%; }

.jd-plans__label {
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
  margin-bottom: 9px;
}
.jd-plans__name {
  font-size: var(--jd-fs-h3);
  letter-spacing: var(--jd-ls-label);
  margin-bottom: 21px;
}
.jd-plans__fee {
  font-size: var(--jd-fs-num);
  font-weight: var(--jd-fw-num);
  line-height: 1.2;
  letter-spacing: .02em;
}
.jd-plans__fee small { font-size: var(--jd-fs-lead); font-weight: 300; margin-left: 4px; }
.jd-plans__note {
  color: var(--jd-text-faint);
  margin-top: 12px;
  padding-bottom: 21px;
  border-bottom: 1px solid var(--jd-border);
  margin-bottom: 21px;
  line-height: 1.75;
}
.jd-plans__list { color: var(--jd-text-sub); }
.jd-plans__list li { padding-left: 18px; position: relative; margin-bottom: 9px; }
.jd-plans__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .9em;
  width: 7px;
  height: 1px;
  background: var(--jd-main);
}

/* --------------------------------------------------------------------------
   よくある質問
   -------------------------------------------------------------------------- */
.jd-faq { max-width: 860px; border-top: 1px solid var(--jd-border); }
.jd-faq__item { border-bottom: 1px solid var(--jd-border); }
.jd-faq__q {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px 3px;
  letter-spacing: var(--jd-ls-label);
  cursor: pointer;
  list-style: none;
}
.jd-faq__q::-webkit-details-marker { display: none; }
.jd-faq__q::before {
  content: "Q";
  font-family: var(--jd-font-en);
  font-weight: 300;
  color: var(--jd-main);
  flex-shrink: 0;
}
.jd-faq__q::after {
  content: "";
  margin-left: auto;
  flex-shrink: 0;
  width: 13px;
  height: 13px;
  border-right: 1px solid var(--jd-text-faint);
  border-bottom: 1px solid var(--jd-text-faint);
  transform: translateY(-4px) rotate(45deg);
  transition: transform .3s;
}
.jd-faq__item[open] .jd-faq__q::after { transform: translateY(2px) rotate(-135deg); }
.jd-faq__a {
  display: flex;
  gap: 18px;
  padding: 0 3px 27px;
  color: var(--jd-text-sub);
}
.jd-faq__a::before {
  content: "A";
  font-family: var(--jd-font-en);
  font-weight: 300;
  color: var(--jd-text-faint);
  flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   会社概要
   -------------------------------------------------------------------------- */
.jd-company {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(36px, 4.5vw, 60px);
  align-items: start;
}
.jd-dl { border-top: 1px solid var(--jd-border); }
.jd-dl__row {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 24px;
  padding: 18px 3px;
  border-bottom: 1px solid var(--jd-border);
}
.jd-dl__row dt { color: var(--jd-main); letter-spacing: var(--jd-ls-label); }
.jd-dl__row dd { margin: 0; }
.jd-company__photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  object-position: center;
  background: var(--jd-tint);
  border-radius: var(--jd-radius);
}

/* --------------------------------------------------------------------------
   お問い合わせ　他セクションと同じ見出し。白カード内に全幅の積み上げフォーム
   MW WP Form 本文の SWELL 緑帯は残さず、ラベルと余白だけサイトに合わせる
   -------------------------------------------------------------------------- */
.jd-contact {
  background: #fff;
  border-radius: var(--jd-radius);
  padding: clamp(42px, 6vw, 90px) clamp(24px, 4.5vw, 60px);
  text-align: center;
}
.jd-contact__title {
  font-size: var(--jd-fs-h3);
  letter-spacing: var(--jd-ls-head);
  margin-bottom: 18px;
}
.jd-contact__lead { color: var(--jd-text-sub); margin-bottom: clamp(30px, 3.6vw, 48px); }
.jd-contact__note { margin-top: 21px; color: var(--jd-text-faint); }

.jd-contact__form {
  max-width: 720px;
  margin-inline: auto;
  text-align: left;
}
.jd-contact__form table,
.jd-contact__form .mw_wp_form table,
.jd-contact__form tr,
.jd-contact__form th,
.jd-contact__form td {
  width: 100%;
  border: none !important;
  border-collapse: collapse;
  background: none !important;
  box-shadow: none !important;
}
.jd-contact__form th,
.jd-contact__form td {
  display: block;
  padding: 0;
  text-align: left;
  vertical-align: top;
}
.jd-contact__form th {
  color: var(--jd-main);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  padding-top: 16px;
  padding-bottom: 6px;
}
.jd-contact__form tr:first-child th { padding-top: 0; }

.jd-contact__form input[type="text"],
.jd-contact__form input[type="email"],
.jd-contact__form input[type="tel"],
.jd-contact__form input[type="url"],
.jd-contact__form select,
.jd-contact__form textarea,
.jd-contact__form .mwform-text-field,
.jd-contact__form .mwform-textarea-field {
  width: 100%;
  max-width: 100%;
  min-height: 52px;
  box-sizing: border-box;
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius);
  padding: 16px 18px;
  margin: 0;
  font-family: var(--jd-font-ja);
  font-size: 16px;
  font-weight: var(--jd-fw-body);
  letter-spacing: var(--jd-ls-body);
  color: var(--jd-text);
  background: #fff;
  box-shadow: none;
  appearance: none;
}
.jd-contact__form input[type="text"]:focus,
.jd-contact__form input[type="email"]:focus,
.jd-contact__form input[type="tel"]:focus,
.jd-contact__form input[type="url"]:focus,
.jd-contact__form select:focus,
.jd-contact__form textarea:focus {
  outline: none;
  border-color: var(--jd-main);
}
.jd-contact__form textarea {
  min-height: 160px;
  resize: vertical;
}
.jd-contact__form input[type="submit"],
.jd-contact__form .mwform-submit-button input,
.jd-contact__form .button_solid004 {
  display: flex;
  align-items: center;
  justify-content: center;
  position: static;
  width: 100%;
  max-width: 320px;
  min-height: 56px;
  padding: 18px 39px;
  margin: 12px auto 0;
  border: none;
  border-radius: var(--jd-radius);
  background: var(--jd-main);
  background-image: none;
  color: #fff !important;
  font-family: var(--jd-font-ja);
  font-size: var(--jd-fs-min);
  font-weight: var(--jd-fw-btn);
  letter-spacing: var(--jd-ls-label);
  line-height: 1.65;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(22, 101, 52, .22);
  overflow: visible;
  text-decoration: none;
}
.jd-contact__form input[type="submit"]:hover,
.jd-contact__form .button_solid004:hover {
  background: var(--jd-main-dark);
  color: #fff !important;
}

.jd-gifts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: clamp(48px, 6vw, 72px);
}
.jd-gift {
  padding: 0 clamp(21px, 2.4vw, 36px);
  border-left: 1px solid var(--jd-border);
}
.jd-gift:last-child { border-right: 1px solid var(--jd-border); }
.jd-gift__no {
  display: block;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
  margin-bottom: 6px;
  text-transform: uppercase;
}
.jd-gift__name {
  font-size: var(--jd-fs-h3);
  letter-spacing: var(--jd-ls-label);
  margin-bottom: 12px;
}
.jd-gift__body { color: var(--jd-text-sub); margin: 0; }

/* --------------------------------------------------------------------------
   フッター
   -------------------------------------------------------------------------- */
.jd-footer { background: var(--jd-tint); padding: clamp(60px, 7vw, 90px) 0 30px; }
.jd-footer__inner {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: clamp(30px, 4.5vw, 60px);
}
.jd-footer .jd-logo__img {
  height: 32px;
  width: auto;
  max-width: 110px;
}
.jd-footer__about { color: var(--jd-text-sub); margin-top: 18px; }
.jd-footer__col-title {
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
  margin-bottom: 18px;
  text-transform: uppercase;
}
.jd-footer__col li { margin-bottom: 12px; }
.jd-footer__col a:hover { color: var(--jd-main); }
.jd-footer__bottom {
  margin-top: clamp(42px, 4.5vw, 60px);
  padding-top: 24px;
  border-top: 1px solid rgba(38, 48, 45, .1);
  display: flex;
  justify-content: space-between;
  gap: 15px;
  flex-wrap: wrap;
  color: var(--jd-text-faint);
}

/* --------------------------------------------------------------------------
   スマホ固定バー　電話ボタンは置かないので1本
   -------------------------------------------------------------------------- */
.jd-spbar { display: none; }

/* --------------------------------------------------------------------------
   スクロール表示
   -------------------------------------------------------------------------- */
.jd-reveal {
  opacity: 0;
  transform: translateY(15px);
  transition: opacity .9s ease, transform .9s ease;
}
.jd-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .jd-reveal { opacity: 1; transform: none; transition: none; }
  .jd-hero__catch,
  .jd-hero__line,
  .jd-hero__lead,
  .jd-hero__points,
  .jd-hero__actions,
  .jd-hero__badges,
  .jd-hero__fine,
  .jd-hero__media,
  .jd-hero__media-inner > img {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================================
   レスポンシブ
   16px 下限を守るため、文字を縮めず要素を落として収める
   ========================================================================== */
@media (max-width: 1180px) {
  /* 横幅が足りなくなるので、まず社名のほうを落とす */
  .jd-logo__ja { display: none; }
}

@media (max-width: 1000px) {
  /* ヘッダーはロゴとハンバーガーだけにする。
     CTA は下部固定バーとドロワー内に置くのでヘッダーには不要 */
  .jd-header__cta { display: none; }
  .jd-burger { display: block; margin-left: auto; }

  /* SP は英字ロゴを隠し、社名をロゴとして見せる */
  .jd-logo__en { display: none; }
  .jd-logo__img {
    height: 36px;
    max-width: 120px;
  }
  .jd-logo__ja {
    display: inline;
    font-size: 16px;
    color: var(--jd-text);
    letter-spacing: .08em;
  }

  .jd-nav { display: none; }

  /* ドロワー。ヘッダーの下から画面いっぱいに開く。
     .jd-header に backdrop-filter がかかっているため、このヘッダー自身が
     position:fixed の基準（包含ブロック）になってしまう。fixed + bottom:0 だと
     ヘッダーの高さぶんしか開かないので、absolute にして高さを明示する */
  .jd-header.is-open .jd-nav {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: calc(100vh - var(--jd-header-h));
    height: calc(100dvh - var(--jd-header-h));  /* iOS のアドレスバー対策 */
    background: #fff;
    /* 下の余白は固定バー（66px）に隠れない量を取る */
    padding: 12px var(--jd-gutter) 96px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .jd-header.is-open .jd-nav__list { flex-direction: column; gap: 0; }
  .jd-header.is-open .jd-nav__list a {
    display: block;
    padding: 21px 3px;
    border-bottom: 1px solid var(--jd-border);
  }
  .jd-header.is-open .jd-nav__cta {
    display: flex;
    width: 100%;
    margin-top: 30px;
  }
}

/* 参照サイトのブレークポイントに合わせた（840px / 540px） */
@media (max-width: 840px) {
  /* SP は写真が先、コピーが後。重ねない。写真は画面幅いっぱいに抜く */
  .jd-hero { margin-bottom: 36px; }
  .jd-hero__copy {
    position: static;
    width: 100%;
    display: block;
    padding: 30px var(--jd-gutter) 0;
    pointer-events: auto;
  }
  .jd-hero__copy::before { display: none; }
  .jd-hero__media {
    width: 100%;
    order: -1;
  }
  .jd-hero__media-inner { border-radius: 0; }
  .jd-hero__media-inner > img { object-position: 70% center; }
  .jd-hero__badges {
    justify-content: flex-start;
    margin-top: 24px;
  }
  .jd-hero__badges img { height: clamp(96px, 28vw, 140px) !important; }
  .jd-hero__cta { flex: 1 1 100%; }
  .jd-hero__actions .jd-btn { flex: 1 1 100%; min-width: 0; width: 100%; }

  /* 並びを「写真 → コピー」にするため、flex に切り替える */
  .jd-hero { display: flex; flex-direction: column; }

  .jd-grid2 { grid-template-columns: 1fr; }
  .jd-worrylp__lead { max-width: none; }
  .jd-worrylp__actions .jd-btn { flex: 1 1 100%; min-width: 0; }

  .jd-zig__row { grid-template-columns: 1fr; }
  .jd-zig__row:nth-child(even) .jd-zig__media { order: 0; }

  .jd-greet { grid-template-columns: 1fr; }
  .jd-greet__photo { max-width: 260px; }

  .jd-works { grid-template-columns: 1fr 1fr; }
  .jd-voice { grid-template-columns: 1fr; }

  .jd-plans { grid-template-columns: 1fr; }
  .jd-plans__item {
    padding: 27px 0;
    border-left: none;
    border-top: 1px solid var(--jd-border);
  }
  .jd-plans__item:last-child { border-right: none; border-bottom: 1px solid var(--jd-border); }

  .jd-company { grid-template-columns: 1fr; }
  .jd-dl__row { grid-template-columns: 1fr; gap: 3px; }

  .jd-gifts { grid-template-columns: 1fr; }
  .jd-gift {
    padding: 27px 0;
    border-left: none;
    border-top: 1px solid var(--jd-border);
  }
  .jd-gift:last-child { border-right: none; border-bottom: 1px solid var(--jd-border); }
  .jd-footer__inner { grid-template-columns: 1fr 1fr; }

  .jd-newslist a { flex-wrap: wrap; gap: 6px 18px; }
  .jd-newslist__title {
    flex: 1 1 100%;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
  }

  /* スマホ下部固定バー。電話を載せないので CTA 1本 */
  body { padding-bottom: 66px; }
  .jd-spbar { display: block; position: fixed; inset: auto 0 0 0; z-index: 200; }
  .jd-spbar a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 66px;
    background: var(--jd-cta);
    color: #fff;
    font-size: var(--jd-fs-min);
    font-weight: var(--jd-fw-btn);
    letter-spacing: var(--jd-ls-label);
  }
}

@media (max-width: 540px) {
  .jd-works { grid-template-columns: 1fr; }
  .jd-footer__inner { grid-template-columns: 1fr; }
  .jd-steps__item { grid-template-columns: 1fr; gap: 9px; }
}

/* ==========================================================================
   SWELL 上書き（ヘッダー・フッター・トップの枠）
   ========================================================================== */

/* トップはコンテナを外し、各 .jd-container に任せる */
body.home {
  overflow-x: hidden;
  --article_size: 100%;
  --container_size: 100%;
}
body.single-post,
body.blog,
body.archive,
body.search {
  --article_size: 100%;
  --container_size: 100%;
}
body.home #content,
body.home #content.l-container,
body.home #content.l-content,
#content.jd-content,
body.home .l-mainContent__inner,
.jd-main,
.jd-main .l-mainContent__inner {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}
body.home #content {
  padding-top: 0 !important;
}
body.home .post_content,
.jd-main .post_content {
  width: 100%;
  max-width: none;
  padding: 0;
  margin: 0;
}
body.home .post_content > *,
.jd-main .post_content:not(.jd-page__body) > *,
body.home .wp-block-html,
.jd-main .wp-block-html,
body.home .wp-block-shortcode,
.jd-main .wp-block-shortcode {
  margin-top: 0;
  margin-bottom: 0;
  max-width: none;
}

body.home .p-breadcrumb,
body.home .c-pageTitle,
body.home .p-topTitle,
body.home .l-header__bar,
body.home .p-infoBar,
.c-infoBar,
.p-breadcrumb,
.c-pageTitle,
.p-topTitle,
.l-topTitleArea {
  display: none !important;
}

/* ヘッダーをモックに合わせる */
.l-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(8px);
  box-shadow: none !important;
  border: none !important;
}
.l-header__inner {
  height: var(--jd-header-h);
  display: flex;
  align-items: center;
  gap: 28px;
  max-width: none;
  width: 100%;
  padding-inline: clamp(21px, 3vw, 45px);
}
.l-header__logo {
  display: flex;
  align-items: baseline;
  gap: 9px;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
}
.c-headLogo {
  margin: 0;
  font-family: var(--jd-font-en);
  font-size: 24px;
  font-weight: 300;
  letter-spacing: .1em;
  line-height: 1;
}
.c-headLogo a,
.c-headLogo__link {
  color: inherit;
  text-decoration: none;
}
.c-headLogo.-img .c-headLogo__img {
  max-height: 48px;
  width: auto;
}
.jd-logo__ja {
  font-family: var(--jd-font-ja);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  color: var(--jd-text-sub);
  letter-spacing: var(--jd-ls-label);
  white-space: nowrap;
}
.c-catchphrase { display: none; }

.l-header__gnav { margin-left: auto; }
.c-gnav {
  display: flex;
  gap: 27px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-gnav > li > a {
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-body);
  white-space: nowrap;
  padding: 0 !important;
}
.c-gnav > li > a:hover { color: var(--jd-main); }
.c-gnav > li > a::after { display: none !important; }

.jd-header__cta { margin-left: 12px; flex-shrink: 0; white-space: nowrap; }

.l-header__customBtn { display: none !important; }

/* ハンバーガー。SWELL の開閉は html[data-spmenu] */
.jd-burger.c-iconBtn,
.jd-burger {
  display: none;
  position: relative;
  width: 45px;
  height: 45px;
  padding: 0;
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius);
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer;
}
.jd-burger span {
  position: absolute;
  left: 50%;
  width: 20px;
  height: 1px;
  background: var(--jd-text);
  transform: translateX(-50%);
  transition: top .3s ease, transform .3s ease, opacity .2s ease;
}
.jd-burger span:nth-child(1) { top: 15px; }
.jd-burger span:nth-child(2) { top: 22px; }
.jd-burger span:nth-child(3) { top: 29px; }

html[data-spmenu="opened"] .jd-burger span:nth-child(1) {
  top: 22px;
  transform: translateX(-50%) rotate(45deg);
}
html[data-spmenu="opened"] .jd-burger span:nth-child(2) { opacity: 0; }
html[data-spmenu="opened"] .jd-burger span:nth-child(3) {
  top: 22px;
  transform: translateX(-50%) rotate(-45deg);
}

@media (max-width: 1180px) {
  .jd-logo__ja { display: none; }
}

@media (max-width: 1000px) {
  .jd-header__cta { display: none; }
  .l-header__menuBtn {
    display: block !important;
    margin-left: auto;
  }
  .jd-burger { display: block; }
  .c-headLogo.-txt,
  .c-headLogo.-img { display: none; }
  .jd-logo__img {
    height: 36px;
    max-width: 120px;
  }
  .jd-logo__ja {
    display: inline;
    font-size: 16px;
    color: var(--jd-text);
    letter-spacing: .08em;
  }
  .l-header__gnav { display: none !important; }
}

/* SPメニュー内の CTA */
.p-spMenu {
  font-family: var(--jd-font-ja);
  font-weight: 300;
  letter-spacing: var(--jd-ls-body);
}
.p-spMenu__nav a {
  font-size: var(--jd-fs-min);
  font-weight: 300;
}

/* フッター（SWELL の枠を淡色に） */
.l-footer {
  background: var(--jd-tint);
  padding: 0;
  border: none;
}
.jd-footer {
  background: var(--jd-tint);
  padding: clamp(60px, 7vw, 90px) 0 30px;
  color: var(--jd-text);
}
.l-footer .copyright {
  color: var(--jd-text-faint);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-body);
}

/* SWELL の SP 固定フッターは使わず、.jd-spbar 1本にする */
#fix_bottom_menu { display: none !important; }
body.jd-mikata .p-fixBtnWrap,
body.jd-mikata .p-fixBtn,
body.jd-mikata .l-fixHeader {
  display: none !important;
}

@media (max-width: 840px) {
  .p-fixBtnWrap { bottom: 78px; }
}

/* エディタ内でもセクションが読めるように */
.editor-styles-wrapper {
  font-family: var(--jd-font-ja);
  font-size: var(--jd-fs-body);
  font-weight: var(--jd-fw-body);
  color: var(--jd-text);
}

/* ==========================================================================
   SWELL 打ち消し（カスタマイザーの見出し装飾・記事幅 900px が勝っていた）
   swell_custom-inline-css の .post_content h2/h3 より後・より強く当てる
   ========================================================================== */

body,
body #body_wrap,
.jd-main {
  font-family: var(--jd-font-ja) !important;
  font-size: var(--jd-fs-body) !important;
  font-weight: var(--jd-fw-body) !important;
  color: var(--jd-text) !important;
  background: var(--jd-bg) !important;
  letter-spacing: var(--jd-ls-body);
}

body.home #content,
body.home #content.l-container,
body.home #content.l-content,
#content.jd-content,
body.home .l-mainContent,
body.home .l-article,
.jd-main,
.jd-main.post_content,
body.home .post_content {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

body.home .l-fixHeader {
  display: none !important;
}

.l-header__inner {
  padding-block: 0 !important;
  height: var(--jd-header-h) !important;
}
.l-header__logo {
  order: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: left !important;
}
.c-headLogo {
  font-size: 24px !important;
  font-weight: 300 !important;
  letter-spacing: .1em !important;
}

/* 見出し：SWELL の塗り・白文字・上下線・グラデ下線を全部消す */
.jd-main .post_content h1,
.jd-main .post_content h2,
.jd-main .post_content h3,
.jd-main .post_content h4,
.jd-hero h1,
.jd-hero h2,
.jd-section h1,
.jd-section h2,
.jd-section h3,
.jd-section h4,
.jd-contact h3,
.jd-side__en {
  background: none !important;
  background-image: none !important;
  color: inherit !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  position: relative;
  font-weight: var(--jd-fw-head) !important;
  line-height: var(--jd-lh-head) !important;
}
.jd-main .post_content h1::before,
.jd-main .post_content h1::after,
.jd-main .post_content h2::before,
.jd-main .post_content h2::after,
.jd-main .post_content h3::before,
.jd-main .post_content h3::after,
.jd-main .post_content h4::before,
.jd-main .post_content h4::after,
.jd-section h2::before,
.jd-section h2::after,
.jd-section h3::before,
.jd-section h3::after,
.jd-section h4::before,
.jd-section h4::after,
.jd-hero h1::before,
.jd-hero h1::after,
.jd-side__en::before,
.jd-side__en::after {
  content: none !important;
  display: none !important;
  border: none !important;
  background: none !important;
}

.jd-worrylp__ja { color: var(--jd-text) !important; }
.jd-worrylp__quote,
.jd-worrylp__solve-catch {
  color: var(--jd-text) !important;
}
.jd-worrylp__quote {
  font-weight: 400 !important;
}
.jd-worrylp__ja {
  font-size: clamp(30px, 4.2vw, 46px) !important;
  letter-spacing: var(--jd-ls-head) !important;
  line-height: 1.45 !important;
}
.jd-head__en { color: var(--jd-text) !important; }
.jd-side__en { color: var(--jd-text) !important; }
.jd-hero__title { color: var(--jd-text) !important; }
.jd-head__en {
  font-size: var(--jd-fs-h2) !important;
  font-weight: var(--jd-fw-head) !important;
  letter-spacing: var(--jd-ls-head) !important;
}
.jd-hero__title {
  font-size: var(--jd-fs-hero) !important;
  font-weight: var(--jd-fw-head) !important;
  letter-spacing: var(--jd-ls-head) !important;
}
.jd-point__title,
.jd-zig__title,
.jd-steps__title,
.jd-plans__name,
.jd-contact__title,
.jd-greet__lead,
.jd-works__title,
.jd-voice__quote {
  color: var(--jd-text) !important;
}

.jd-main .post_content:not(.jd-page__body) ul,
.jd-main .post_content:not(.jd-page__body) ol,
.jd-section ul,
.jd-section ol,
.jd-footer ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
.jd-worrylp__no { color: var(--jd-text) !important; }
.jd-worrylp__proof li { color: var(--jd-main) !important; }
.jd-newslist li::before,
.jd-zig__tags li::before,
.jd-footer li::before,
.jd-gifts li::before,
.jd-side li::before {
  content: none !important;
  display: none !important;
}

.jd-main .post_content img,
.jd-section img {
  box-shadow: none !important;
  border-radius: var(--jd-radius);
}
.jd-hero img {
  box-shadow: none !important;
  border-radius: 0 !important;
}

#sp_menu,
.p-spMenu,
.l-fixHeader {
  display: none !important;
}

.jd-faq__q {
  background: none !important;
  color: inherit !important;
  font-weight: var(--jd-fw-head) !important;
}

/* SWELL の a { color } が CTA の白文字を黒に上書きするのを防ぐ */
.jd-btn--cta,
a.jd-btn--cta,
.jd-hero a.jd-btn--cta,
.jd-header a.jd-btn--cta,
.jd-section a.jd-btn--cta,
.jd-nav a.jd-btn--cta {
  color: #fff !important;
  background: var(--jd-cta) !important;
}
.jd-btn--cta:hover,
a.jd-btn--cta:hover,
.jd-hero a.jd-btn--cta:hover,
.jd-header a.jd-btn--cta:hover,
.jd-section a.jd-btn--cta:hover {
  color: #fff !important;
  background: var(--jd-cta-dark) !important;
}
.jd-spbar a {
  color: #fff !important;
  background: var(--jd-cta) !important;
}
.jd-btn--quiet:hover,
a.jd-btn--quiet:hover,
.jd-tab[aria-selected="true"] {
  color: #fff !important;
}

a.jd-btn--quiet {
  color: var(--jd-main) !important;
}

/* モックの文字色・余白を SWELL より優先する */
.jd-worrylp__en,
.jd-worrylp__solve-en,
.jd-worrylp__label,
.jd-more,
.jd-head__sub,
.jd-hero__catch,
.jd-point__label,
.jd-point__icon,
.jd-zig__en,
.jd-steps__num,
.jd-plans__label,
.jd-works__cat,
.jd-gift__no,
.jd-newslist__cat,
.jd-side__sub,
.jd-dl__row dt,
.jd-footer__col-title,
.jd-faq__q::before,
.jd-voice__quote::before {
  color: var(--jd-main) !important;
}

.jd-hero__lead,
.jd-hero__points,
.jd-worrylp__lead,
.jd-worrylp__body,
.jd-worrylp__solve-lead,
.jd-head__lead,
.jd-point__body,
.jd-zig__body,
.jd-zig__tags li,
.jd-steps__body,
.jd-greet__caption,
.jd-greet__body,
.jd-plans__list,
.jd-faq__a,
.jd-contact__lead,
.jd-gift__body,
.jd-footer__about,
.jd-works__note,
.jd-voice__name,
.jd-note,
.jd-tab {
  color: var(--jd-text-sub) !important;
}

.jd-tab[aria-selected="true"] {
  color: #fff !important;
  background: var(--jd-main) !important;
  border-color: var(--jd-main) !important;
}

.jd-newslist__date,
.jd-side__date,
.jd-side__pv,
.jd-plans__note,
.jd-contact__note,
.jd-faq__a::before,
.jd-footer__bottom,
.jd-greet__caption small {
  color: var(--jd-text-faint) !important;
}

.jd-hero__title { margin-bottom: 28px !important; }
.jd-hero__catch { margin-bottom: 21px !important; }
.jd-hero__lead {
  margin-bottom: 22px !important;
  font-size: clamp(16px, 1.7vw, 20px) !important;
}
.jd-hero__micro,
.jd-hero__micro em,
.jd-plans__badge {
  color: var(--jd-cta) !important;
}
.jd-head { margin-bottom: var(--jd-head-mb) !important; }
.jd-head__sub { margin-bottom: 9px !important; }
.jd-head__lead { margin-top: 24px !important; }
.jd-point__title { margin-bottom: 18px !important; }
.jd-zig__title { margin-bottom: 21px !important; }
.jd-steps__title { margin-bottom: 12px !important; }
.jd-plans__name { margin-bottom: 21px !important; }
.jd-contact__title { margin-bottom: 18px !important; }
.jd-contact__lead { margin-bottom: clamp(30px, 3.6vw, 48px) !important; }
.jd-greet__lead { margin-bottom: clamp(30px, 3.6vw, 48px) !important; }
.jd-newslist a:hover { color: var(--jd-main) !important; }
.jd-faq__q { padding: 24px 3px !important; }
.jd-dl__row { padding: 18px 3px !important; }
.jd-section { padding-block: var(--jd-section-y) !important; }
.jd-container { padding-inline: var(--jd-gutter) !important; }

/* ==========================================================================
   下層ページ（トップと同じトークン・余白・見出し）
   ========================================================================== */
.jd-pagehead {
  background: var(--jd-tint);
  padding: clamp(42px, 6vw, 90px) 0 clamp(36px, 5vw, 72px);
}
.jd-pagehead .jd-head__sub { margin-bottom: 9px; }
.jd-pagehead .jd-head__en,
.jd-pagehead__title {
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-h2);
  font-weight: var(--jd-fw-head);
  letter-spacing: var(--jd-ls-head);
  line-height: var(--jd-lh-head);
  margin: 0;
  color: var(--jd-text);
}
.jd-pagehead__title {
  font-family: var(--jd-font-ja);
  letter-spacing: var(--jd-ls-label);
  max-width: 860px;
}
.jd-pagehead__meta {
  margin: 18px 0 0;
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: .06em;
  color: var(--jd-text-faint);
}

.jd-bc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 28px;
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-body);
  color: var(--jd-text-faint);
}
.jd-bc a:hover { color: var(--jd-main); }
.jd-bc__sep { opacity: .5; }

.jd-page {
  padding-block: var(--jd-section-y);
}
.jd-page__narrow { max-width: 760px; }
.jd-container.jd-blog {
  max-width: 1280px !important;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 48px;
  align-items: start;
}
.jd-blog__main {
  min-width: 0;
}
.jd-blog__main .post_content,
.jd-blog__main .post_content > * {
  max-width: none !important;
  width: 100%;
}
.jd-blog__main .post_content > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.jd-side {
  min-width: 0;
  position: sticky;
  top: calc(var(--jd-header-h) + 24px);
  max-height: calc(100vh - var(--jd-header-h) - 48px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: auto;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
.jd-side:hover,
.jd-side:focus-within {
  scrollbar-color: rgba(38, 48, 45, .28) transparent;
}
.jd-side::-webkit-scrollbar {
  width: 6px;
}
.jd-side::-webkit-scrollbar-track {
  background: transparent;
}
.jd-side::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 6px;
}
.jd-side:hover::-webkit-scrollbar-thumb,
.jd-side:focus-within::-webkit-scrollbar-thumb {
  background: rgba(38, 48, 45, .28);
}
.jd-side__block + .jd-side__block {
  margin-top: clamp(28px, 3.6vw, 42px);
}
.jd-side__sub {
  display: block;
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-main);
  line-height: 1.65;
  margin-bottom: 6px;
}
.jd-side__en {
  font-family: var(--jd-font-en);
  font-size: clamp(20px, 2vw, 24px);
  font-weight: var(--jd-fw-head);
  letter-spacing: var(--jd-ls-head);
  line-height: var(--jd-lh-head);
  margin: 0 0 18px;
  text-transform: uppercase;
}
.jd-side__list,
.jd-side ul.jd-side__list {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border-top: 1px solid var(--jd-border);
}
.jd-side__list li { margin: 0; padding: 0; }
.jd-side__item {
  display: grid !important;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 14px 0 !important;
  border-bottom: 1px solid var(--jd-border);
}
.jd-side__item:hover .jd-side__title { color: var(--jd-main); }
.jd-side__media {
  position: relative;
  display: block;
  width: 140px;
  height: 96px;
  border-radius: var(--jd-radius);
  overflow: hidden;
  background: var(--jd-tint-deep);
  flex-shrink: 0;
}
.jd-side__img,
.jd-side__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
}
.jd-side__ph {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--jd-tint-deep);
}
.jd-side__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.jd-side__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
}
.jd-side__date,
.jd-side__pv {
  font-family: var(--jd-font-en);
  font-size: 12px;
  font-weight: 300;
  letter-spacing: .06em;
  color: var(--jd-text-faint);
  white-space: nowrap;
}
.jd-side__rank {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  min-width: 28px;
  padding: 2px 6px;
  background: var(--jd-main);
  color: #fff !important;
  font-family: var(--jd-font-en);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .08em;
  line-height: 1.4;
}
.jd-side__title {
  font-weight: 300;
  letter-spacing: var(--jd-ls-body);
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 1000px) {
  .jd-container.jd-blog {
    max-width: var(--jd-container) !important;
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .jd-side {
    position: static;
    max-height: none;
    overflow: visible;
  }
}
.jd-page__thumb {
  margin: 0 0 clamp(30px, 4vw, 48px);
}
.jd-page__thumb img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--jd-radius);
}
.jd-page__back { margin-top: clamp(42px, 5vw, 72px); }

.jd-page__body {
  font-size: var(--jd-fs-body);
  font-weight: var(--jd-fw-body);
  line-height: var(--jd-lh-body);
  letter-spacing: var(--jd-ls-body);
  color: var(--jd-text);
}
.jd-main .jd-page__body p,
.jd-page__body p {
  margin: 0 0 1.6em !important;
  color: var(--jd-text-sub);
}
.jd-main .jd-page__body p:last-child,
.jd-page__body p:last-child { margin-bottom: 0 !important; }
.jd-page__body h2,
.jd-page__body h3,
.jd-page__body h4,
.jd-page .post_content h2,
.jd-page .post_content h3,
.jd-page .post_content h4 {
  background: none !important;
  background-image: none !important;
  color: var(--jd-text) !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  font-weight: var(--jd-fw-head) !important;
  line-height: var(--jd-lh-head) !important;
  letter-spacing: var(--jd-ls-label);
  margin: 2.4em 0 0.8em !important;
}
.jd-page__body h2,
.jd-page .post_content h2 {
  font-size: var(--jd-fs-h3) !important;
}
.jd-page__body h2:first-child,
.jd-page__body h3:first-child,
.jd-page .post_content h2:first-child {
  margin-top: 0 !important;
}
.jd-page__body h2::before,
.jd-page__body h2::after,
.jd-page__body h3::before,
.jd-page__body h3::after,
.jd-page .post_content h2::before,
.jd-page .post_content h2::after,
.jd-page .post_content h3::before,
.jd-page .post_content h3::after {
  content: none !important;
  display: none !important;
}

/* ブログ記事：見出しの階層が本文と区別できるようにする（太字は使わない） */
.jd-main .jd-article .post_content h2,
.jd-article .jd-page__body h2 {
  font-size: clamp(22px, 2.4vw, 28px) !important;
  font-weight: 300 !important;
  color: var(--jd-text) !important;
  letter-spacing: var(--jd-ls-label);
  line-height: 1.55 !important;
  margin: 3.6em 0 1.35em !important;
  padding: 2px 0 18px 18px !important;
  border: none !important;
  border-bottom: 1px solid var(--jd-border) !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  position: relative;
}
.jd-main .jd-article .post_content h3,
.jd-article .jd-page__body h3 {
  font-size: clamp(18px, 2vw, 21px) !important;
  font-weight: 300 !important;
  color: var(--jd-main) !important;
  letter-spacing: var(--jd-ls-label);
  line-height: 1.65 !important;
  margin: 3em 0 1.15em !important;
  padding: 0 0 0 14px !important;
  border: none !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  position: relative;
}
.jd-main .jd-article .post_content h4,
.jd-article .jd-page__body h4 {
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--jd-text) !important;
  letter-spacing: var(--jd-ls-label);
  line-height: 1.7 !important;
  margin: 2.4em 0 1em !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}
.jd-main .jd-article .post_content h2:first-child,
.jd-main .jd-article .post_content h3:first-child,
.jd-article .jd-page__body h2:first-child,
.jd-article .jd-page__body h3:first-child {
  margin-top: 0 !important;
}
.jd-main .jd-article .post_content h2::before,
.jd-article .jd-page__body h2::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 18px;
  width: 3px;
  background: var(--jd-main) !important;
  background-image: none !important;
  border: none !important;
  border-radius: var(--jd-radius);
}
.jd-main .jd-article .post_content h3::before,
.jd-article .jd-page__body h3::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  left: 0;
  top: 0.15em;
  bottom: 0.15em;
  width: 2px;
  background: var(--jd-main) !important;
  background-image: none !important;
  border: none !important;
  border-radius: var(--jd-radius);
  opacity: .45;
}
.jd-main .jd-article .post_content h2::after,
.jd-main .jd-article .post_content h3::after,
.jd-main .jd-article .post_content h4::after,
.jd-article .jd-page__body h2::after,
.jd-article .jd-page__body h3::after,
.jd-article .jd-page__body h4::after {
  content: none !important;
  display: none !important;
}

/* ブログ本文：見出しに合わせて行間・段落・図表の余白を広げる */
.jd-main .jd-article .jd-page__body {
  line-height: 2;
}
.jd-main .jd-article .jd-page__body p {
  margin: 0 0 2em !important;
  line-height: 2;
}
.jd-main .jd-article .jd-page__body li p,
.jd-main .jd-article .jd-page__body blockquote p,
.jd-main .jd-article .jd-page__body td p,
.jd-main .jd-article .jd-page__body th p {
  margin: 0 0 0.6em !important;
  line-height: 1.9;
}
.jd-main .jd-article .jd-page__body li p:last-child,
.jd-main .jd-article .jd-page__body blockquote p:last-child,
.jd-main .jd-article .jd-page__body td p:last-child {
  margin-bottom: 0 !important;
}
.jd-main .jd-article .jd-page__body ul,
.jd-main .jd-article .jd-page__body ol,
.jd-main .jd-article .jd-page__body .wp-block-list {
  margin: 0 0 2em !important;
  padding-left: 1.55em !important;
  line-height: 2;
}
.jd-main .jd-article .jd-page__body li {
  margin-bottom: 0.55em;
}
.jd-main .jd-article .jd-page__body p:has(> img),
.jd-main .jd-article .jd-page__body p:has(> a > img) {
  margin: 2.6em 0 !important;
}
.jd-main .jd-article .jd-page__body .wp-block-image,
.jd-main .jd-article .jd-page__body .wp-block-gallery,
.jd-main .jd-article .jd-page__body .wp-block-embed,
.jd-main .jd-article .jd-page__body .wp-block-video,
.jd-main .jd-article .jd-page__body .wp-block-media-text,
.jd-main .jd-article .jd-page__body figure:not(.jd-page__thumb) {
  margin: 2.6em 0 !important;
}
.jd-main .jd-article .jd-page__body .wp-block-image img,
.jd-main .jd-article .jd-page__body figure img {
  margin: 0;
  display: block;
}
.jd-main .jd-article .jd-page__body figcaption {
  margin: 12px 0 0;
  line-height: 1.7;
}
.jd-main .jd-article .jd-page__body .p-toc + h2,
.jd-main .jd-article .jd-page__body .swell-block-toc + h2,
.jd-main .jd-article .jd-page__body .wp-block-image + h2,
.jd-main .jd-article .jd-page__body .wp-block-table + h2,
.jd-main .jd-article .jd-page__body figure + h2 {
  margin-top: 2.4em !important;
}

.jd-page__body ul,
.jd-page__body ol {
  list-style: disc !important;
  padding-left: 1.4em !important;
  margin: 0 0 1.6em !important;
  color: var(--jd-text-sub);
}
.jd-page__body ol { list-style: decimal !important; }
.jd-page__body li { margin-bottom: 8px; }
.jd-page__body li::before { content: none !important; display: none !important; }
.jd-page__body a:not(.jd-btn):not(.jd-more):not(.swell-block-button__link):not(.wp-block-button__link):not(.c-btn):not([class*="button_solid"]):not([class*="btn_"]) {
  color: var(--jd-main);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* カード型バナー（親が a で中に div）は本文リンクの下線を付けない */
.jd-page__body a[style*="background"],
.jd-page__body a[style*="display"],
.jd-page__body a:has(div),
.jd-page__body a:has(img) {
  color: inherit !important;
  text-decoration: none !important;
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}
.jd-page__body a[style*="background"] *,
.jd-page__body a[style*="display"] *,
.jd-page__body a:has(div) *,
.jd-page__body a:has(img) *,
.jd-page__body [style*="font-weight:900"],
.jd-page__body [style*="font-weight:900"] *,
.jd-page__body [style*="font-weight: 900"],
.jd-page__body [style*="font-weight: 900"] * {
  text-decoration: none !important;
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

/* 緑バナー等の中では本文リンクの下線・見出しの飾り線を出さない */
.jd-page__body .wp-block-cover a:not(.jd-btn):not(.swell-block-button__link):not(.wp-block-button__link):not(.c-btn):not([class*="button_solid"]):not([class*="btn_"]),
.jd-page__body .wp-block-media-text a:not(.jd-btn):not(.swell-block-button__link):not(.wp-block-button__link):not(.c-btn):not([class*="button_solid"]):not([class*="btn_"]),
.jd-page__body .has-background a:not(.jd-btn):not(.swell-block-button__link):not(.wp-block-button__link):not(.c-btn):not([class*="button_solid"]):not([class*="btn_"]),
.jd-page__body [style*="background"] a:not(.jd-btn):not(.swell-block-button__link):not(.wp-block-button__link):not(.c-btn):not([class*="button_solid"]):not([class*="btn_"]),
.jd-page__body [class*="fullWide"] a:not(.jd-btn):not(.swell-block-button__link):not(.wp-block-button__link):not(.c-btn):not([class*="button_solid"]):not([class*="btn_"]),
.jd-page__body [class*="fullwide"] a:not(.jd-btn):not(.swell-block-button__link):not(.wp-block-button__link):not(.c-btn):not([class*="button_solid"]):not([class*="btn_"]),
.jd-page__body [class*="banner"] a:not(.jd-btn):not(.swell-block-button__link):not(.wp-block-button__link):not(.c-btn):not([class*="button_solid"]):not([class*="btn_"]),
.jd-page__body .is-style-check_list a,
.jd-page__body [class*="check_list"] a {
  color: inherit !important;
  text-decoration: none !important;
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  background-image: none !important;
}
.jd-page__body .wp-block-cover u,
.jd-page__body .wp-block-media-text u,
.jd-page__body .has-background u,
.jd-page__body [style*="background"] u,
.jd-page__body .is-style-check_list u {
  text-decoration: none !important;
}
.jd-page__body .wp-block-cover h2,
.jd-page__body .wp-block-cover h3,
.jd-page__body .wp-block-media-text h2,
.jd-page__body .wp-block-media-text h3,
.jd-page__body .has-background h2,
.jd-page__body .has-background h3,
.jd-page__body [style*="background"] h2,
.jd-page__body [style*="background"] h3 {
  padding: 0 !important;
  border: none !important;
  color: inherit !important;
}
.jd-page__body .wp-block-cover h2::before,
.jd-page__body .wp-block-cover h3::before,
.jd-page__body .wp-block-media-text h2::before,
.jd-page__body .wp-block-media-text h3::before,
.jd-page__body .has-background h2::before,
.jd-page__body .has-background h3::before,
.jd-page__body [style*="background"] h2::before,
.jd-page__body [style*="background"] h3::before,
.jd-page__body .wp-block-cover h2::after,
.jd-page__body .wp-block-cover h3::after,
.jd-page__body .wp-block-media-text h2::after,
.jd-page__body .wp-block-media-text h3::after,
.jd-page__body .has-background h2::after,
.jd-page__body .has-background h3::after {
  content: none !important;
  display: none !important;
}
.jd-page__body .wp-block-cover ul,
.jd-page__body .wp-block-media-text ul,
.jd-page__body .has-background ul,
.jd-page__body [style*="background"] ul,
.jd-page__body .is-style-check_list,
.jd-page__body [class*="check_list"] {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0 0 1em !important;
  color: inherit !important;
}
.jd-page__body .wp-block-cover li,
.jd-page__body .wp-block-media-text li,
.jd-page__body .has-background li,
.jd-page__body [style*="background"] li,
.jd-page__body .is-style-check_list li,
.jd-page__body [class*="check_list"] li {
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  color: inherit !important;
}

/* --------------------------------------------------------------------------
   記事・固定ページに残る SWELL 部品（立体ボタン・目次・帯・囲み）
   -------------------------------------------------------------------------- */
.swell-block-button a::before,
.swell-block-button a::after,
.swell-block-button__link::before,
.swell-block-button__link::after,
.wp-block-button__link::before,
.wp-block-button__link::after,
a.c-btn::before,
a.c-btn::after,
[class*="button_solid"]::before,
[class*="button_solid"]::after,
[class*="btn_solid"]::before,
[class*="btn_solid"]::after {
  content: none !important;
  display: none !important;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
}

.jd-main .swell-block-button,
.jd-main .wp-block-buttons,
.jd-page__body .wp-block-button {
  margin: 2em 0 !important;
  text-align: center;
}

.jd-main a.swell-block-button__link,
.jd-main .swell-block-button a,
.jd-main a.wp-block-button__link,
.jd-main a.c-btn,
.jd-main a[class*="button_solid"],
.jd-main a[class*="btn_solid"],
.jd-main [class*="button_solid"] > a,
.jd-main .swell-block-button__link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 240px;
  min-height: 56px;
  padding: 18px 39px !important;
  margin: 0 auto;
  border: none !important;
  border-radius: var(--jd-radius) !important;
  background: var(--jd-cta) !important;
  background-image: none !important;
  box-shadow: 0 8px 22px rgba(226, 74, 60, .32) !important;
  color: #fff !important;
  font-family: var(--jd-font-ja) !important;
  font-size: var(--jd-fs-min) !important;
  font-weight: var(--jd-fw-btn) !important;
  letter-spacing: var(--jd-ls-label) !important;
  line-height: 1.65 !important;
  text-decoration: none !important;
  text-shadow: none !important;
  position: static !important;
  top: auto !important;
  transform: none !important;
  overflow: visible !important;
  transition: background-color .25s, box-shadow .25s;
}
.jd-main a.swell-block-button__link:hover,
.jd-main .swell-block-button a:hover,
.jd-main a.wp-block-button__link:hover,
.jd-main a.c-btn:hover,
.jd-main a[class*="button_solid"]:hover,
.jd-main a[class*="btn_solid"]:hover,
.jd-main [class*="button_solid"] > a:hover {
  background: var(--jd-cta-dark) !important;
  color: #fff !important;
  text-decoration: none !important;
  box-shadow: 0 10px 26px rgba(197, 61, 49, .4) !important;
  top: auto !important;
  transform: none !important;
}
.jd-main a.swell-block-button__link i,
.jd-main .swell-block-button a i,
.jd-main a.wp-block-button__link i,
.jd-main a.c-btn i,
.jd-main a[class*="button_solid"] i,
.jd-main [class*="button_solid"] > a i,
.jd-main a.swell-block-button__link svg,
.jd-main .swell-block-button a svg {
  color: #fff !important;
  fill: currentColor !important;
  stroke: currentColor;
}

.jd-page input[type="submit"],
.jd-page .wpcf7-submit,
.jd-page .mwform-submit-button input,
.jd-page input[type="submit"][class*="button_"],
.jd-page input[type="submit"][class*="btn_"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 240px;
  min-height: 56px;
  padding: 18px 39px !important;
  margin: 12px auto 0 !important;
  border: none !important;
  border-radius: var(--jd-radius) !important;
  background: var(--jd-cta) !important;
  background-image: none !important;
  color: #fff !important;
  font-family: var(--jd-font-ja) !important;
  font-size: var(--jd-fs-min) !important;
  font-weight: var(--jd-fw-btn) !important;
  letter-spacing: var(--jd-ls-label) !important;
  line-height: 1.65 !important;
  text-shadow: none !important;
  box-shadow: 0 8px 22px rgba(226, 74, 60, .32) !important;
  cursor: pointer;
}
.jd-page input[type="submit"]:hover,
.jd-page .wpcf7-submit:hover,
.jd-page .mwform-submit-button input:hover {
  background: var(--jd-cta-dark) !important;
  color: #fff !important;
}

.jd-page__body .p-toc,
.jd-page__body .swell-block-toc,
.jd-article .p-toc {
  background: var(--jd-tint) !important;
  border: 1px solid var(--jd-border) !important;
  border-radius: var(--jd-radius) !important;
  box-shadow: none !important;
  padding: 24px 28px !important;
  margin: 0 0 2em !important;
}
.jd-article .jd-page__body .p-toc,
.jd-article .jd-page__body .swell-block-toc,
.jd-article .p-toc {
  padding: 32px 36px !important;
  margin: 0 0 3em !important;
}
.jd-page__body .p-toc__ttl,
.jd-page__body .swell-block-toc__ttl,
.jd-article .p-toc__ttl {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--jd-main) !important;
  font-family: var(--jd-font-ja) !important;
  font-size: var(--jd-fs-min) !important;
  font-weight: 300 !important;
  letter-spacing: var(--jd-ls-label) !important;
  padding: 0 0 12px !important;
  margin: 0 0 8px !important;
}
.jd-page__body .p-toc__ttl::before,
.jd-page__body .p-toc__ttl::after,
.jd-article .p-toc__ttl::before,
.jd-article .p-toc__ttl::after {
  content: none !important;
  display: none !important;
}
.jd-page__body .p-toc a,
.jd-article .p-toc a {
  color: var(--jd-text) !important;
  text-decoration: none !important;
  font-weight: 300;
}
.jd-page__body .p-toc a:hover,
.jd-article .p-toc a:hover {
  color: var(--jd-main) !important;
}

.jd-page__body .is-style-bg_main,
.jd-page__body [class*="is-style-bg"],
.jd-page__body .c-capbox,
.jd-page__body .swell-block-capbox,
.jd-page__body .c-pointBox {
  background: var(--jd-tint) !important;
  background-image: none !important;
  color: var(--jd-text) !important;
  border: 1px solid var(--jd-border) !important;
  border-radius: var(--jd-radius) !important;
  box-shadow: none !important;
  padding: 1.2em 1.4em !important;
}
.jd-article .jd-page__body .c-capbox,
.jd-article .jd-page__body .swell-block-capbox,
.jd-article .jd-page__body .c-pointBox,
.jd-article .jd-page__body .is-style-bg_main,
.jd-article .jd-page__body [class*="is-style-bg"] {
  margin: 2.4em 0 !important;
  padding: 1.6em 1.7em !important;
}
.jd-page__body .c-capbox__ttl,
.jd-page__body .swell-block-capbox__ttl {
  background: none !important;
  color: var(--jd-main) !important;
  font-weight: 300 !important;
  letter-spacing: var(--jd-ls-label);
  border: none !important;
}
.jd-page__body .swell-block-balloon,
.jd-page__body .c-balloon {
  background: none !important;
  box-shadow: none !important;
}
.jd-page__body .swell-block-balloon__text,
.jd-page__body .c-balloon__text {
  background: var(--jd-tint) !important;
  border: 1px solid var(--jd-border) !important;
  border-radius: var(--jd-radius) !important;
  box-shadow: none !important;
  color: var(--jd-text) !important;
}
.jd-page__body table,
.jd-page__body .wp-block-table table,
.jd-article .post_content table {
  width: 100% !important;
  max-width: 100% !important;
  border-collapse: collapse !important;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  margin: 0 0 1.6em;
}
.jd-article .jd-page__body table,
.jd-article .jd-page__body .wp-block-table table,
.jd-article .post_content table {
  margin: 2.4em 0 !important;
}
.jd-page__body .wp-block-table,
.jd-article figure.wp-block-table {
  margin: 0 0 1.6em !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  overflow-x: auto;
}
.jd-article .jd-page__body .wp-block-table,
.jd-article figure.wp-block-table {
  margin: 2.4em 0 !important;
}
.jd-page__body th,
.jd-page__body td,
.jd-article .post_content th,
.jd-article .post_content td {
  background: none !important;
  background-image: none !important;
  color: var(--jd-text) !important;
  border: none !important;
  border-bottom: 1px solid var(--jd-border) !important;
  padding: 12px 10px !important;
  text-align: left !important;
  font-weight: 300 !important;
  font-size: var(--jd-fs-body) !important;
  letter-spacing: var(--jd-ls-body);
  vertical-align: top;
}
.jd-article .jd-page__body th,
.jd-article .jd-page__body td,
.jd-article .post_content th,
.jd-article .post_content td {
  padding: 16px 14px !important;
  line-height: 1.85;
}
.jd-page__body thead th,
.jd-page__body th,
.jd-article .post_content thead th,
.jd-article .post_content th {
  color: var(--jd-main) !important;
  font-weight: 300 !important;
  letter-spacing: var(--jd-ls-label) !important;
  border-bottom: 1px solid var(--jd-main) !important;
}
.jd-page__body tr:nth-child(even) td,
.jd-page__body tr:nth-child(odd) td,
.jd-article .post_content tr:nth-child(even) td,
.jd-article .post_content tr:nth-child(odd) td {
  background: none !important;
}
.jd-page__body blockquote,
.jd-article .wp-block-quote {
  margin: 0 0 1.6em !important;
  padding: 4px 0 4px 20px !important;
  background: none !important;
  border: none !important;
  border-left: 2px solid var(--jd-main) !important;
  box-shadow: none !important;
  color: var(--jd-text-sub) !important;
}
.jd-article .jd-page__body blockquote,
.jd-article .wp-block-quote {
  margin: 2.4em 0 !important;
  padding: 8px 0 8px 24px !important;
  line-height: 2;
}
.jd-page__body blockquote::before,
.jd-page__body blockquote::after,
.jd-article .wp-block-quote::before,
.jd-article .wp-block-quote::after {
  content: none !important;
  display: none !important;
}
.jd-page__body hr,
.jd-article .wp-block-separator {
  border: none !important;
  border-top: 1px solid var(--jd-border) !important;
  background: none !important;
  height: 0 !important;
  margin: 2.4em 0 !important;
}
.jd-article .jd-page__body hr,
.jd-article .wp-block-separator {
  margin: 3.2em 0 !important;
}
.jd-page__body figcaption,
.jd-article figcaption {
  margin: 8px 0 0;
  color: var(--jd-text-faint);
  font-size: 13px;
  font-weight: 300;
  letter-spacing: var(--jd-ls-body);
  text-align: left;
}
.jd-article .jd-page__body figcaption {
  margin: 12px 0 0;
  line-height: 1.7;
}
.jd-article .jd-page__body .swell-block-balloon,
.jd-article .jd-page__body .c-balloon,
.jd-article .jd-page__body .wp-block-buttons {
  margin: 2.4em 0 !important;
}

/* 問い合わせフォーム */
.jd-page__body--form .jd-contact__title { margin-bottom: 18px !important; }
.jd-page__body--form .jd-contact__lead { margin-bottom: clamp(30px, 3.6vw, 48px) !important; }
.jd-page__body--form,
.jd-page .wpcf7,
.jd-page .mw_wp_form,
.jd-page:not(.jd-article) .swell-block {
  max-width: 760px;
}
.jd-page input[type="text"],
.jd-page input[type="email"],
.jd-page input[type="tel"],
.jd-page input[type="url"],
.jd-page input[type="number"],
.jd-page input[type="search"],
.jd-page select,
.jd-page textarea,
.jd-page .wpcf7-form-control,
.jd-page .mwform-text-field,
.jd-page .mwform-textarea-field {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius);
  padding: 14px 16px;
  margin: 0 0 18px;
  font-family: var(--jd-font-ja);
  font-size: var(--jd-fs-body);
  font-weight: var(--jd-fw-body);
  letter-spacing: var(--jd-ls-body);
  color: var(--jd-text);
  background: #fff;
  box-shadow: none;
  appearance: none;
}
.jd-page textarea,
.jd-page .wpcf7-textarea {
  min-height: 160px;
  resize: vertical;
}
.jd-page label,
.jd-page .wpcf7-form p,
.jd-page .mw_wp_form th,
.jd-page .mw_wp_form td {
  font-weight: 300;
  letter-spacing: var(--jd-ls-body);
  color: var(--jd-text);
}

/* トップお問い合わせ：MW WP Form 内の SWELL 見出し帯・余白・ボタンを打ち消す */
#contact .jd-contact__form .mw_wp_form p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0;
  line-height: 0;
}
#contact .jd-contact__form .mw_wp_form p:has([type="submit"]) {
  text-align: center !important;
}
#contact .jd-contact__form .mw_wp_form p > * {
  font-size: var(--jd-fs-body);
  line-height: var(--jd-lh-body);
}
#contact .jd-contact__form .mw_wp_form h3 {
  margin: 36px 0 16px !important;
  padding: 0 0 10px !important;
  border: none !important;
  border-bottom: 1px solid var(--jd-border) !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  color: var(--jd-main) !important;
  font-family: var(--jd-font-ja) !important;
  font-size: var(--jd-fs-min) !important;
  font-weight: 300 !important;
  letter-spacing: var(--jd-ls-label) !important;
  line-height: 1.65 !important;
}
#contact .jd-contact__form .mw_wp_form h3:first-child {
  margin-top: 0 !important;
}
#contact .jd-contact__form .mw_wp_form h3 + .is-style-bg_main,
#contact .jd-contact__form .mw_wp_form h3 + [class*="is-style-bg"] {
  padding-top: 12px !important;
}
#contact .jd-contact__form .mw_wp_form h3::before,
#contact .jd-contact__form .mw_wp_form h3::after,
#contact .jd-contact__form .mw_wp_form h4::before,
#contact .jd-contact__form .mw_wp_form h4::after,
#contact .jd-contact__form input[type="submit"]::before,
#contact .jd-contact__form input[type="submit"]::after,
#contact .jd-contact__form .button_solid004::before,
#contact .jd-contact__form .button_solid004::after {
  content: none !important;
  display: none !important;
}
#contact .jd-contact__form .is-style-bg_main,
#contact .jd-contact__form [class*="is-style-bg"] {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  color: inherit !important;
  padding: 28px 0 10px !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
#contact .jd-contact__form .mw_wp_form h4,
#contact .jd-contact__form .mw_wp_form h4 span,
#contact .jd-contact__form .mw_wp_form h4 strong,
#contact .jd-contact__form .mw_wp_form h4 b {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--jd-main) !important;
  font-family: var(--jd-font-ja) !important;
  font-size: var(--jd-fs-min) !important;
  font-weight: 300 !important;
  letter-spacing: var(--jd-ls-label) !important;
  line-height: 1.65 !important;
}
#contact .jd-contact__form .mw_wp_form h4 span[style*="color"] {
  color: var(--jd-cta) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: .08em !important;
}
#contact .mwform-checkbox-field,
#contact .mwform-radio-field {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  margin: 0 10px 12px 0 !important;
  padding: 10px 18px !important;
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius-pill);
  background: var(--jd-tint);
  color: var(--jd-main);
  font-size: var(--jd-fs-min) !important;
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  line-height: 1.65;
  cursor: pointer;
}
#contact .mwform-checkbox-field label,
#contact .mwform-radio-field label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  cursor: pointer;
}
#contact .mwform-checkbox-field-text,
#contact .mwform-radio-field-text {
  font-size: var(--jd-fs-min) !important;
  line-height: 1.65 !important;
  color: inherit;
}
#contact .mwform-checkbox-field input,
#contact .mwform-radio-field input {
  width: auto;
  margin: 0;
  accent-color: var(--jd-main);
}
#contact .mwform-checkbox-field:has(input:checked),
#contact .mwform-radio-field:has(input:checked) {
  background: var(--jd-main);
  border-color: var(--jd-main);
  color: #fff;
}
#contact .jd-contact__form input[type="submit"],
#contact .jd-contact__form .button_solid004 {
  width: 100% !important;
  max-width: 320px !important;
  min-width: 0 !important;
  min-height: 56px !important;
  height: auto !important;
  display: flex !important;
  padding: 18px 39px !important;
  margin: 12px auto 0 !important;
  border: none !important;
  border-radius: var(--jd-radius) !important;
  background: var(--jd-main) !important;
  background-image: none !important;
  color: #fff !important;
  font-size: var(--jd-fs-min) !important;
  font-weight: var(--jd-fw-btn) !important;
  letter-spacing: var(--jd-ls-label) !important;
  line-height: 1.65 !important;
  box-shadow: 0 8px 22px rgba(22, 101, 52, .22) !important;
}
#contact .jd-contact__form input[type="submit"]:hover,
#contact .jd-contact__form .button_solid004:hover {
  background: var(--jd-main-dark) !important;
  color: #fff !important;
}

.jd-pager {
  margin-top: clamp(42px, 5vw, 72px);
}
.jd-pager ul {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.jd-pager a,
.jd-pager span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 45px;
  height: 45px;
  padding: 0 12px;
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius);
  font-family: var(--jd-font-en);
  font-size: var(--jd-fs-min);
  font-weight: 300;
  letter-spacing: var(--jd-ls-label);
  color: var(--jd-text-sub);
}
.jd-pager .current {
  background: var(--jd-main);
  border-color: var(--jd-main);
  color: #fff;
}
.jd-pager a:hover { color: var(--jd-main); }

.jd-search {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 30px 0;
}
.jd-search input[type="search"] {
  flex: 1 1 240px;
  margin: 0;
}
.jd-search .jd-btn { margin: 0; }

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* サービス（私たちにできること）：SWELL の h2/p/ul 余白をモック値で上書き */
#service.jd-section {
  padding-block: var(--jd-section-y) !important;
  padding-inline: 0 !important;
  margin: 0 !important;
}
#service .jd-container {
  padding-inline: var(--jd-gutter) !important;
}
#service .jd-head {
  margin: 0 0 var(--jd-head-mb) !important;
  padding: 0 !important;
}
#service .jd-head__sub {
  margin: 0 0 9px !important;
  padding: 0 !important;
}
#service .jd-head__en {
  margin: 0 0 0 -2px !important;
  padding: 0 !important;
}
#service p.jd-head__lead {
  margin: 24px 0 0 !important;
  padding: 0 !important;
}
#service .jd-zig {
  gap: clamp(72px, 9vw, 120px) !important;
  margin: 0 !important;
  padding: 0 !important;
}
#service .jd-zig__row {
  gap: clamp(42px, 5.4vw, 72px) !important;
  margin: 0 !important;
  padding: 0 !important;
}
#service .jd-zig__en {
  margin: 0 0 3px !important;
  padding: 0 !important;
}
#service h3.jd-zig__title {
  margin: 0 0 21px !important;
  padding: 0 !important;
}
#service p.jd-zig__body {
  margin: 0 !important;
  padding: 0 !important;
}
#service ul.jd-zig__tags {
  display: flex !important;
  margin: 24px 0 30px !important;
  padding: 0 !important;
  gap: 9px;
}
#service .jd-zig__tags li {
  margin: 0 !important;
  padding: 3px 18px !important;
}
#service .jd-more {
  margin: 0 !important;
  padding: 0 !important;
}
