@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
*/

/* =========================================================
   TOP 業務紹介セクション：ナンバリング型カラム
   ========================================================= */
.l-content .wp-block-columns h3.wp-block-heading {
  border: none !important;
  padding: 0 !important;
  background: none !important;
}
.l-content .wp-block-columns h3.wp-block-heading::before,
.l-content .wp-block-columns h3.wp-block-heading::after {
  content: none !important;
  display: none !important;
}
.l-content .wp-block-columns .wp-block-column > p:first-child {
  margin-block-end: 0 !important;
  margin-bottom: 0 !important;
}
.l-content .wp-block-columns h3.wp-block-heading {
  margin-block-start: 18px !important;
  margin-top: 18px !important;
  margin-block-end: 14px !important;
  margin-bottom: 14px !important;
}
.l-content .wp-block-columns .wp-block-column a {
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  transition: color 0.2s ease;
}
.l-content .wp-block-columns .wp-block-column a:hover {
  color: #1e5b45;
}

/* =========================================================
   フローティングCTA
   - .ns-mobile-cta : TOPのSP下部固定ボタン
   - .ns-page-cta   : 人事部/顧問制度の PC/SP共通 下部固定バー
   ========================================================= */
.ns-mobile-cta {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9990;
  padding: 12px 16px calc(env(safe-area-inset-bottom, 0px) + 12px);
  background: transparent;
  pointer-events: none;
  opacity: 0;
  transform: translateY(100%);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.ns-mobile-cta.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.ns-mobile-cta.is-visible .ns-mobile-cta__btn { pointer-events: auto; }
@media (min-width: 769px) {
  .ns-mobile-cta { display: none; }
}
.ns-mobile-cta__btn {
  display: block;
  padding: 14px 16px;
  background: #1e5b45;
  color: #fff !important;
  text-align: center;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 15px;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(30,91,69,0.3);
}
@media (max-width: 768px) {
  .home { padding-bottom: 84px; }
}

.ns-page-cta {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9990;
  background: transparent;
  padding: 12px 16px calc(env(safe-area-inset-bottom, 0px) + 12px);
  pointer-events: none;
}
.ns-page-cta__btn { pointer-events: auto; }
.ns-page-cta__btn {
  display: block;
  max-width: 480px;
  margin: 0 auto;
  background: #1e5b45;
  color: #fff !important;
  text-align: center;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 16px;
  padding: 16px;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(30,91,69,0.3);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ns-page-cta__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(30,91,69,0.4);
}
.page-id-1151,
.page-id-1150 { padding-bottom: 88px; }
/* 固定CTAがあるページではSWELLのページトップボタンを非表示 */
.page-id-1151 #pagetop,
.page-id-1150 #pagetop,
.home #pagetop { display: none !important; }
@media (max-width: 768px) {
  .ns-page-cta__btn { font-size: 15px; padding: 14px; }
  .page-id-1151,
  .page-id-1150 { padding-bottom: 76px; }
}

/* =========================================================
   お問い合わせフォーム (.wpcf7) 装飾オーバーライド
   ========================================================= */
.post_content .wpcf7 {
  background-color: #ecf3f0 !important;
}
.wpcf7 .required,
.wpcf7 .any {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-left: 6px !important;
  display: inline !important;
  color: inherit;
}
.wpcf7 .required { color: #d04848 !important; }
.wpcf7 .any { color: #1e5b45 !important; }
.wpcf7 .any::before { content: "任意"; }

/* input 全種をtextareaと同じ幅(100%)に揃える、ラベルとの間に余白 */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 textarea {
  width: 100% !important;
  box-sizing: border-box;
  margin-top: 8px !important;
}

/* 送信ボタン: SWELL .is-style-btn_solid と統一 */
.wpcf7 .send-button { text-align: center; }
.wpcf7 input[type="submit"],
.wpcf7-submit {
  display: inline-block;
  background: var(--color_main, #1e5b45) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 80px !important;
  padding: 16px 56px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(30, 91, 69, 0.3) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
  -webkit-appearance: none;
  appearance: none;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(30, 91, 69, 0.4) !important;
}

/* =========================================================
   人事部立ち上げサービスページ (.nsj)
   ========================================================= */
.nsj {
  --nsj-bg: #fff;
  --nsj-bg-gray: #fafaf7;
  --nsj-border: #e6e6e6;
  --nsj-border-light: #f0f0f0;
  --nsj-text: #1a1a1a;
  --nsj-text-muted: #666;
  --nsj-text-subtle: #999;
  --nsj-accent: #1e5b45;
  --nsj-accent-light: #ecf3f0;
  --nsj-dark: #163d2f;

  color: var(--nsj-text);
  line-height: 1.7;
  font-size: 16px;
}
.nsj * { box-sizing: border-box; }
.nsj p { margin: 0; }
.nsj ul { list-style: none; padding: 0; margin: 0; }

/* 長い英単語等のはみ出し防止のみ。日本語の折返しはブラウザのdefault判定に任せる */
.nsj p,
.nsj li,
.nsj h1, .nsj h2, .nsj h3, .nsj h4,
.nsj dt, .nsj dd,
.nsj-faq__qtext,
.nsj-cta__h, .nsj-cta__lead,
.nsj__h2, .nsj__lead {
  overflow-wrap: anywhere;
}

/* 人事部ページ(post-id 1151): SWELLの投稿wrapperの幅制限・余白を解除 */
.page-id-1151 #content.l-container,
.page-id-1151 #main_content,
.page-id-1151 .l-mainContent,
.page-id-1151 .l-mainContent__inner,
.page-id-1151 .post_content {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.page-id-1151 .post_content > *,
.page-id-1151 .post_content .nsj *,
.page-id-1151 .post_content .nsj p,
.page-id-1151 .post_content .nsj ul,
.page-id-1151 .post_content .nsj li,
.page-id-1151 .post_content .nsj div,
.page-id-1151 .post_content .nsj section,
.page-id-1151 .post_content .nsj h1,
.page-id-1151 .post_content .nsj h2,
.page-id-1151 .post_content .nsj h3,
.page-id-1151 .post_content .nsj h4 { max-width: none !important; }

/* widthを明示してる要素は max-width:100% に戻す */
.page-id-1151 .nsj-pricing__card { max-width: 100% !important; }

/* .nsj は親幅に従う。各セクションは .swell-block-fullWide.alignfull が全幅化を担当 */
.page-id-1151 .post_content .nsj {
  max-width: none !important;
  width: auto !important;
}

/* ベージュ地から脱出して 白セクションを真っ白に */
.page-id-1151 .post_content,
.page-id-1151 .post_content .nsj,
.page-id-1151 .swell-block-fullWide { background-color: #fff; }
/* inline style (style="background-color:...") は specificity 1,0,0,0 で勝つので、
   グレー/薄緑指定セクションはそのまま反映される */

/* セクション間の余白を詰める (.nsj 内の各レベルでmargin/padding を 0 化) */
.nsj,
.nsj > *,
.nsj .nsj__section {
  margin: 0 !important;
}
.nsj .swell-block-fullWide {
  margin: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.page-id-1151 .post_content {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.nsj__section {
  padding: 120px max(20px, calc((100% - 1120px) / 2));
}
/* セクション背景色は .swell-block-fullWide の inline style 側で指定 */
.nsj__section--header {
  padding-top: 80px;
  padding-bottom: 80px;
  background: var(--nsj-bg-gray);
}

.nsj__eyebrow {
  font-size: 12px;
  font-weight: 600;
  color: var(--nsj-accent);
  letter-spacing: 0.12em;
  margin: 0 0 12px;
}
/* SWELLの.post_content h2/h3/h4 のデフォ装飾(緑帯/marginなど)を完全打ち消し */
.post_content .nsj h2,
.post_content .nsj h3,
.post_content .nsj h4,
.nsj h2.nsj__h2,
.nsj .nsj-cta__h {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  border: none !important;
  border-left: none !important;
  padding: 0 !important;
  margin: 0 !important;
  color: var(--nsj-text) !important;
  line-height: 1.4 !important;
}
.post_content .nsj h2::before,
.post_content .nsj h2::after,
.post_content .nsj h3::before,
.post_content .nsj h3::after,
.post_content .nsj h4::before,
.post_content .nsj h4::after,
.nsj h2.nsj__h2::before,
.nsj h2.nsj__h2::after,
.nsj .nsj-cta__h::before,
.nsj .nsj-cta__h::after {
  display: none !important;
  content: none !important;
  border: none !important;
  background: none !important;
  background-image: none !important;
}
.nsj h2.nsj__h2 {
  font-size: 32px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  margin: 0 0 24px !important;
  letter-spacing: 0 !important;
}
.nsj .nsj-cta__h {
  font-size: 32px !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 0 0 12px !important;
}
.nsj__lead {
  font-size: 16px;
  color: var(--nsj-text-muted);
  line-height: 1.875;
  margin: 0 0 40px;
  max-width: 1120px;
}

.nsj__swell-note {
  display: inline-block;
  margin-top: 16px;
  padding: 6px 12px;
  border: 1px solid var(--nsj-border);
  border-radius: 4px;
  background: #fff;
  font-size: 11px;
  color: var(--nsj-text-subtle);
}

/* === Header === */
.nsj-header__title-row {
  display: flex;
  gap: 16px;
  align-items: stretch;
  margin-top: 20px;
}
.nsj-header__bar {
  width: 4px;
  background: var(--nsj-accent);
  border-radius: 2px;
  flex-shrink: 0;
}
.nsj-header__title-col {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.nsj-header__title {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0;
}
.nsj-header__catch {
  font-size: 18px;
  font-weight: 500;
  color: var(--nsj-accent);
  margin: 0;
}
.nsj-header__lead {
  font-size: 15px;
  color: var(--nsj-text-muted);
  margin: 24px 0 0;
  line-height: 1.875;
}
.nsj-header__breadcrumb {
  font-size: 12px;
  color: var(--nsj-text-subtle);
  margin: 0 0 0;
}
.nsj-header__breadcrumb strong { color: var(--nsj-text); font-weight: 500; }

/* === Pain === */
.nsj-pain__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 24px;
}
.nsj-pain__item {
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  padding: 22px 32px;
  display: flex;
  gap: 20px;
  align-items: center;
  font-size: 16px;
  font-weight: 500;
  color: var(--nsj-text);
}
.nsj-pain__icon {
  width: 36px; height: 36px;
  background: var(--nsj-accent-light);
  color: var(--nsj-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 18px;
  flex-shrink: 0;
}

/* === Target === */
.nsj-target__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 16px;
}
.nsj-target__card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  padding: 36px;
}
.nsj-target__caption {
  font-size: 13px;
  font-weight: 500;
  color: var(--nsj-text-muted);
  margin: 0 0 20px;
}
.nsj-target__cond-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.nsj-target__cond {
  display: flex;
  gap: 14px;
  align-items: center;
  font-size: 17px;
  color: var(--nsj-text);
}
.nsj-target__check {
  width: 22px; height: 22px;
  background: var(--nsj-accent);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
}
.nsj-target__inds {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.nsj-target__ind-tile {
  background: var(--nsj-accent-light);
  border-radius: 8px;
  padding: 16px 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
  justify-content: center;
  min-height: 96px;
}
.nsj-target__ind-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--nsj-accent);
}
.nsj-target__ind-sub {
  font-size: 11px;
  color: var(--nsj-text-muted);
}

/* === Before / After === */
.nsj-ba__row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 24px;
  align-items: center;
  margin-top: 32px;
}
.nsj-ba__box {
  border-radius: 12px;
  padding: 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 340px;
}
.nsj-ba__before {
  background: #fff;
  border: 1px solid var(--nsj-border);
}
.nsj-ba__after {
  background: var(--nsj-accent);
  color: #fff;
  box-shadow: 0 12px 32px rgba(30, 91, 69, 0.2);
}
.nsj-ba__label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.nsj-ba__before .nsj-ba__label { color: var(--nsj-text-muted); }
.nsj-ba__after .nsj-ba__label { color: rgba(255,255,255,0.9); }
.nsj-ba__list { display: flex; flex-direction: column; gap: 10px; }
.nsj-ba__item {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 16px;
}
.nsj-ba__after .nsj-ba__item { color: #fff; }
.nsj-ba__mark--x {
  color: var(--nsj-text-subtle);
  font-weight: 700;
  width: 18px;
  text-align: center;
}
.nsj-ba__mark--check {
  width: 22px; height: 22px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
}
.nsj-ba__arrow {
  font-size: 32px;
  color: var(--nsj-accent);
  font-weight: 700;
  text-align: center;
}
.nsj-ba__support {
  background: var(--nsj-bg-gray);
  border-radius: 8px;
  padding: 24px 32px;
  margin-top: 24px;
}
.nsj-ba__support-cap {
  font-size: 12px;
  font-weight: 500;
  color: var(--nsj-text-muted);
  margin: 0 0 8px;
}
.nsj-ba__support-list {
  font-size: 15px;
  font-weight: 500;
  margin: 0;
}

/* === Curriculum === */
.nsj-cur__table {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  margin-top: 24px;
}
.nsj-cur__row {
  display: grid;
  grid-template-columns: 140px 1fr 360px;
  align-items: center;
  border-bottom: 1px solid var(--nsj-border-light);
}
.nsj-cur__row:last-child { border-bottom: none; }
.nsj-cur__row--header {
  background: var(--nsj-dark);
  color: #fff;
  font-size: 13px;
  font-weight: 500;
}
.nsj-cur__row--header .nsj-cur__cell { padding: 16px 24px; }
.nsj-cur__row--alt { background: var(--nsj-bg-gray); }
.nsj-cur__cell {
  padding: 22px 24px;
  font-size: 14px;
}
.nsj-cur__num {
  font-size: 15px;
  font-weight: 500;
  color: var(--nsj-accent);
}
.nsj-cur__goods {
  font-size: 13px;
  color: var(--nsj-text-muted);
}
.nsj-cur__meta {
  display: flex;
  gap: 48px;
  margin-top: 24px;
}
.nsj-cur__meta-item { display: flex; flex-direction: column; gap: 4px; }
.nsj-cur__meta-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--nsj-text-subtle);
}
.nsj-cur__meta-value { font-size: 14px; font-weight: 500; }

/* === Pricing + Bonus === */
.nsj-pricing__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 16px;
}
.nsj-pricing__card {
  background: #fff;
  border: 2px solid var(--nsj-text);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  padding: 56px 48px;
  width: 720px;
  max-width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.nsj-pricing__limit {
  background: var(--nsj-accent);
  color: #fff;
  border-radius: 100px;
  padding: 6px 16px;
  font-size: 12px;
  font-weight: 500;
  margin-bottom: 12px;
}
.nsj-pricing__name {
  font-size: 14px;
  font-weight: 500;
  color: var(--nsj-text-muted);
}
.nsj-pricing__orig {
  font-size: 14px;
  color: var(--nsj-text-subtle);
  text-decoration: line-through;
}
.nsj-pricing__price-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 8px;
}
.nsj-pricing__num {
  font-size: 64px;
  font-weight: 700;
  line-height: 1;
}
.nsj-pricing__yen { font-size: 22px; font-weight: 500; }
.nsj-pricing__tax { font-size: 13px; color: var(--nsj-text-muted); }
.nsj-pricing__pay {
  margin-top: 16px;
  font-size: 13px;
  display: flex;
  gap: 8px;
}
.nsj-pricing__pay-label {
  color: var(--nsj-text-subtle);
  font-weight: 500;
  font-size: 12px;
}

.nsj-bonus { margin-top: 64px; text-align: center; }
.nsj-bonus__title-row {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}
.nsj h3.nsj-bonus__title { font-size: 24px !important; font-weight: 700 !important; }
.nsj-bonus__pill {
  background: var(--nsj-accent);
  color: #fff;
  border-radius: 100px;
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 500;
}
.nsj-bonus__lead {
  color: var(--nsj-text-muted);
  font-size: 14px;
  margin: 0 0 24px;
}
.nsj-bonus__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  text-align: left;
}
.nsj-bonus__card {
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.nsj-bonus__card-pill {
  background: var(--nsj-accent);
  color: #fff;
  border-radius: 100px;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 500;
  align-self: flex-start;
}
.nsj h4.nsj-bonus__card-title { font-size: 17px !important; font-weight: 700 !important; }
.nsj-bonus__card-desc {
  font-size: 13px;
  color: var(--nsj-text-muted);
  line-height: 1.7;
  margin: 0;
}

/* === FAQ (details/summary アコーディオン) === */
.nsj-faq__list { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.nsj-faq__item {
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.03);
  overflow: hidden;
}
.nsj-faq__item summary.nsj-faq__q {
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 22px 28px;
  cursor: pointer;
  list-style: none;
  margin: 0;
}
.nsj-faq__item summary.nsj-faq__q::-webkit-details-marker { display: none; }
.nsj-faq__item summary.nsj-faq__q::marker { content: ""; }
.nsj-faq__qmark {
  width: 28px; height: 28px;
  background: var(--nsj-accent-light);
  color: var(--nsj-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  flex-shrink: 0;
}
.nsj-faq__qtext {
  flex: 1;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.625;
}
.nsj-faq__plus {
  color: var(--nsj-text-subtle);
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  display: inline-block;
}
.nsj-faq__item[open] .nsj-faq__plus {
  transform: rotate(45deg);
}
/* 外側: heightだけアニメ、内側のpはpadding持つ */
.nsj-faq__a {
  margin: 0;
  padding: 0;
  height: 0;
  overflow: hidden;
  border-top: 1px solid var(--nsj-border-light);
  transition: height 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
.nsj-faq__a > p {
  margin: 0;
  padding: 16px 28px 22px 72px;
  font-size: 14px;
  color: var(--nsj-text-muted);
  line-height: 1.7;
}

/* === Message (会社概要: 代表挨拶 写真+本文) === */
.nsj-message__row {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 48px;
  margin-top: 32px;
  align-items: flex-start;
}
.nsj-message__photo {
  background: transparent;
  border-radius: 12px;
  aspect-ratio: 3/4;
  overflow: hidden;
}
.nsj-message__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  mix-blend-mode: multiply;
}

/* 代表写真(070-edited)はTOP・aboutで白背景を透過させる */
img[src*="260202_PF296551_070-edited"],
img[data-src*="260202_PF296551_070-edited"] {
  mix-blend-mode: multiply;
}
.nsj-message__body p {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.95;
  color: var(--nsj-text);
}
.nsj-message__sign {
  margin-top: 24px !important;
  text-align: right;
  font-weight: 700;
  font-size: 16px !important;
}

/* === Profile (会社概要: 代表プロフィールカード) === */
.nsj-profile__card {
  background: #fff;
  border-radius: 12px;
  padding: 40px 36px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  margin-top: 32px;
}
.nsj-profile__head {
  border-bottom: 1px solid var(--nsj-border-light);
  padding-bottom: 20px;
  margin-bottom: 20px;
}
.nsj-profile__name {
  font-size: 28px;
  font-weight: 700;
  margin: 0 !important;
  color: var(--nsj-text);
  background: none !important;
  padding: 0 !important;
}
.nsj-profile__name::before, .nsj-profile__name::after { display: none !important; content: none !important; }
.nsj-profile__furi {
  font-size: 13px;
  color: var(--nsj-text-muted);
  margin: 4px 0 14px !important;
}
.nsj-profile__tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.nsj-profile__tag {
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 100px;
  border: 1px solid var(--nsj-text);
  color: var(--nsj-text);
}
.nsj-profile__tag--solid {
  background: var(--nsj-accent);
  color: #fff;
  border-color: var(--nsj-accent);
}
.nsj-profile__body p {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  color: var(--nsj-text);
}

/* === Profile meta (会社概要: 経歴の上の属性データ) === */
.nsj-profile__meta {
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--nsj-border-light);
}
.nsj-profile__meta-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  border-bottom: 1px solid var(--nsj-border-light);
  align-items: center;
}
.nsj-profile__meta-row dt {
  font-size: 12px;
  font-weight: 700;
  color: var(--nsj-text-muted);
  padding: 14px 0;
  margin: 0;
}
.nsj-profile__meta-row dd {
  font-size: 14px;
  color: var(--nsj-text);
  padding: 14px 0;
  margin: 0;
}

/* === Stats (会社概要: 実績数値) === */
.nsj-stats__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 32px;
}
.nsj-stats__card {
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 12px;
  padding: 36px 28px;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
.nsj-stats__num {
  font-size: 48px;
  font-weight: 700;
  color: var(--nsj-accent);
  line-height: 1;
  margin: 0 0 12px;
}
.nsj-stats__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  background: var(--nsj-accent-light);
  color: var(--nsj-accent);
  border-radius: 50%;
  font-size: 30px;
  font-weight: 700;
  margin: 0 auto 16px;
  line-height: 1;
}
.nsj-stats__card--icon { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.nsj-stats__unit {
  font-size: 18px;
  font-weight: 600;
  color: var(--nsj-text);
  margin-left: 4px;
}
.nsj-stats__label {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--nsj-text);
}
.nsj-stats__note {
  font-size: 12px;
  color: var(--nsj-text-muted);
  margin: 0;
  line-height: 1.6;
}

/* === Specialties (会社概要: 専門領域) === */
.nsj-spec__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 32px;
}
.nsj-spec__card {
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 12px;
  padding: 28px 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.nsj-spec__title {
  font-size: 17px !important;
  font-weight: 700 !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  color: var(--nsj-accent) !important;
}
.nsj-spec__title::before, .nsj-spec__title::after { display: none !important; content: none !important; }
.nsj-spec__desc {
  font-size: 13px;
  line-height: 1.85;
  margin: 0;
  color: var(--nsj-text-muted);
}

/* === Company (会社概要: 事務所概要 dl) === */
.nsj-company__list {
  margin: 32px 0 0;
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.nsj-company__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  border-bottom: 1px solid var(--nsj-border-light);
}
.nsj-company__row:last-child { border-bottom: none; }
.nsj-company__term {
  background: var(--nsj-bg-gray);
  padding: 18px 24px;
  font-size: 14px;
  font-weight: 700;
  margin: 0;
  color: var(--nsj-text);
}
.nsj-company__desc {
  padding: 18px 24px;
  font-size: 15px;
  margin: 0;
  color: var(--nsj-text);
  line-height: 1.7;
}

/* === Area (会社概要: 対応地域・地図) === */
.nsj-area__map {
  margin-top: 32px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
.nsj-area__map iframe {
  display: block;
  width: 100%;
  height: 400px;
  border: 0;
}

/* === Scope (顧問制度: 含む/別途 2カラム比較) === */
.nsj-scope__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 32px;
}

/* === About (顧問制度: シンプルなリード+チェックリスト) === */
.nsj-about__lead {
  font-size: 16px;
  line-height: 1.85;
  color: var(--nsj-text);
  margin: 0 0 32px;
}
.nsj-about__caption {
  font-size: 13px;
  font-weight: 600;
  color: var(--nsj-text-muted);
  margin: 0 0 12px;
}
.nsj-about__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.nsj-about__item {
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 8px;
  padding: 16px 20px;
  font-size: 15px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.03);
}
.nsj-about__icon {
  width: 26px;
  height: 26px;
  background: var(--nsj-accent-light);
  color: var(--nsj-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13px;
  flex-shrink: 0;
}

/* === Plan (顧問制度: 個人/法人 2カラムプランカード) === */
.nsj-plan__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 24px;
}
.nsj-plan__card {
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 12px;
  padding: 40px 32px;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
.nsj-plan__type {
  font-size: 14px;
  font-weight: 600;
  color: var(--nsj-text-muted);
  margin: 0 0 12px;
}
.nsj-plan__price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin: 8px 0;
}
.nsj-plan__price-num {
  font-size: 56px;
  font-weight: 700;
  line-height: 1;
  color: var(--nsj-text);
}
.nsj-plan__price-yen {
  font-size: 20px;
  font-weight: 600;
  color: var(--nsj-text);
}
.nsj-plan__price-unit {
  font-size: 14px;
  color: var(--nsj-text-muted);
  margin-left: 6px;
}
.nsj-plan__note {
  font-size: 12px;
  color: var(--nsj-text-subtle);
  margin: 0;
}
.nsj-plan__caveat {
  font-size: 13px;
  color: var(--nsj-text-muted);
  margin: 24px 0 0;
}

/* === Flow (顧問制度: 5ステップカード) === */
.nsj-flow__list {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.nsj-flow__item {
  display: flex;
  align-items: center;
  gap: 24px;
  background: #fff;
  border: 1px solid var(--nsj-border-light);
  border-radius: 12px;
  padding: 20px 28px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.nsj-flow__num {
  width: 48px;
  height: 48px;
  background: var(--nsj-accent);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 20px;
  flex-shrink: 0;
}
.nsj-flow__body { flex: 1; }
.nsj-flow__title {
  font-size: 16px;
  font-weight: 700;
  margin: 0;
  color: var(--nsj-text);
}
.nsj-flow__desc {
  font-size: 13px;
  color: var(--nsj-text-muted);
  margin: 4px 0 0;
}

/* === CTA Band (薄緑背景・緑ボタン) === */
.nsj-cta { text-align: center; }
.nsj .nsj-cta__eyebrow {
  font-size: 12px;
  font-weight: 600;
  color: var(--nsj-accent) !important;
  letter-spacing: 0.12em;
  margin: 0 0 8px;
}
.nsj h2.nsj-cta__h,
.post_content .nsj .nsj-cta__h {
  font-size: 32px !important;
  font-weight: 700 !important;
  color: var(--nsj-text) !important;
  margin: 0 0 12px !important;
  border: none !important;
  padding: 0 !important;
  background: transparent !important;
}
.nsj h2.nsj-cta__h::before, .nsj h2.nsj-cta__h::after { display: none !important; content: none !important; border: none !important; background: none !important; }
.post_content .nsj .nsj-cta__lead {
  color: var(--nsj-text-muted) !important;
  font-size: 15px;
  margin: 0 0 28px !important;
  line-height: 1.7;
}
/* CTA帯のSWELLボタンを中央寄せ＆余白 */
.nsj-cta .swell-block-button {
  display: flex;
  justify-content: center;
  margin: 0 0 0;
}
.nsj-cta__phone {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  gap: 12px;
  align-items: baseline;
  color: var(--nsj-text-muted);
  font-size: 12px;
  flex-wrap: wrap;
}
.post_content .nsj .nsj-cta__phone,
.post_content .nsj .nsj-cta__phone span { color: var(--nsj-text-muted) !important; }
.nsj-cta__phone-num,
.post_content .nsj .nsj-cta__phone-num {
  color: var(--nsj-text) !important;
  font-size: 14px;
  font-weight: 700;
}

/* ===== Responsive (SP) ===== */
/* SP TOPメインビジュアル: テキストを画面中央〜やや下に寄せて画像下半分も活用 */
@media (max-width: 768px) {
  .p-mainVisual__inner {
    justify-content: center !important;
  }
  .p-mainVisual__slideText,
  .p-mainVisual__textLayer {
    padding-top: 8vh;
    padding-bottom: 0;
  }
}

@media (max-width: 768px) {
  .nsj__section { padding: 64px 20px; }
  .nsj__section--header { padding: 40px 20px; }
  .nsj__h2 { font-size: 24px; }
  .nsj__lead { font-size: 13px; line-height: 1.85; margin-bottom: 24px; }

  .nsj-header__title { font-size: 24px; }
  .nsj-header__catch { font-size: 14px; }
  .nsj-header__bar { width: 3px; }
  .nsj-header__title-row { gap: 12px; }
  .nsj-header__lead { font-size: 13px; margin-top: 16px; }

  .nsj-pain__item { padding: 16px; gap: 12px; font-size: 14px; }
  .nsj-pain__icon { width: 28px; height: 28px; font-size: 14px; }

  .nsj-target__cols { grid-template-columns: 1fr; gap: 16px; }
  .nsj-target__card { padding: 24px 20px; }
  .nsj-target__cond { font-size: 14px; }
  .nsj-target__inds { grid-template-columns: 1fr 1fr; }
  .nsj-target__ind-name { font-size: 15px; }

  .nsj-ba__row { grid-template-columns: 1fr; gap: 12px; }
  .nsj-ba__box { padding: 24px; min-height: auto; }
  .nsj-ba__item { font-size: 14px; }
  .nsj-ba__arrow { transform: rotate(90deg); padding: 4px 0; }
  .nsj-ba__support { padding: 16px 20px; }
  .nsj-ba__support-list { font-size: 13px; }

  /* Curriculum: テーブル → カード */
  .nsj-cur__table { background: transparent; box-shadow: none; }
  .nsj-cur__row {
    grid-template-columns: 1fr;
    background: #fff;
    border: 1px solid var(--nsj-border-light);
    border-radius: 10px;
    margin-bottom: 8px;
    padding: 16px 20px;
  }
  .nsj-cur__row--alt { background: #fff; }
  .nsj-cur__row--header { display: none; }
  .nsj-cur__cell { padding: 4px 0; font-size: 13px; }
  .nsj-cur__num {
    display: inline-block;
    padding: 3px 12px;
    background: var(--nsj-accent);
    color: #fff;
    border-radius: 100px;
    font-size: 11px;
    margin-bottom: 4px;
  }
  .nsj-cur__goods { font-size: 12px; }
  .nsj-cur__goods::before {
    content: "成果物 / ";
    font-weight: 500;
    color: var(--nsj-text-subtle);
  }
  .nsj-cur__meta { gap: 12px 32px; flex-wrap: wrap; margin-top: 16px; padding: 16px 20px; background: #fff; border-radius: 8px; }

  .nsj-pricing__card { padding: 32px 24px; width: 100%; }
  .nsj-pricing__num { font-size: 44px; }
  .nsj-pricing__yen { font-size: 16px; }
  .nsj-pricing__pay { flex-direction: column; gap: 4px; align-items: center; font-size: 12px; }

  .nsj-bonus { margin-top: 40px; }
  .nsj-bonus__cards { grid-template-columns: 1fr; }
  .nsj-bonus__card { padding: 20px; }
  .nsj-bonus__title { font-size: 18px; }
  .nsj-bonus__lead { font-size: 12px; }

  .nsj-faq__item summary.nsj-faq__q { padding: 16px 18px; gap: 12px; }
  .nsj-faq__qtext { font-size: 14px; }
  .nsj-faq__qmark { width: 24px; height: 24px; font-size: 12px; }
  .nsj-faq__a > p { padding: 14px 18px 18px 18px; font-size: 13px; line-height: 1.75; }

  .nsj-stats__grid { grid-template-columns: 1fr; gap: 12px; }
  .nsj-stats__card { padding: 24px 20px; }
  .nsj-stats__num { font-size: 40px; }
  .nsj-spec__grid { grid-template-columns: 1fr; }
  .nsj-spec__card { padding: 20px; }
  .nsj-profile__meta-row { grid-template-columns: 110px 1fr; }
  .nsj-profile__meta-row dd { font-size: 13px; }
  .nsj-message__row { grid-template-columns: 1fr; gap: 24px; }
  .nsj-message__photo { aspect-ratio: 3/4; max-width: 260px; margin: 0 auto; }
  .nsj-message__body p { font-size: 14px; }
  .nsj-profile__card { padding: 24px 20px; }
  .nsj-profile__name { font-size: 22px; }
  .nsj-company__row { grid-template-columns: 1fr; }
  .nsj-company__term { padding: 12px 16px; }
  .nsj-company__desc { padding: 12px 16px 16px; font-size: 14px; }
  .nsj-area__map iframe { height: 280px; }
  .nsj-scope__row { grid-template-columns: 1fr; gap: 12px; }
  .nsj-about__list { grid-template-columns: 1fr; }
  .nsj-about__item { font-size: 14px; padding: 14px 16px; }
  .nsj-plan__cards { grid-template-columns: 1fr; gap: 16px; }
  .nsj-plan__card { padding: 28px 20px; }
  .nsj-plan__price-num { font-size: 44px; }
  .nsj-flow__item { padding: 16px 20px; gap: 16px; }
  .nsj-flow__num { width: 40px; height: 40px; font-size: 16px; }
  .nsj-flow__title { font-size: 15px; }

  .nsj-cta { padding: 56px 20px !important; }
  .nsj-cta__h { font-size: 22px; }
  .nsj-cta__lead { font-size: 13px; }
  .nsj-cta__btn { width: 100%; padding: 16px; justify-content: center; }
  .nsj-cta__phone { flex-direction: column; gap: 2px; align-items: center; }
}
