/*
Theme Name: Salient Child Theme
Description: This is a custom child theme for Salient
Theme URI:   https://themeforest.net/item/salient-responsive-multipurpose-theme/4363266
Author: ThemeNectar
Author URI:  https://themeforest.net/user/themenectar
Template: salient
Version: 4.2
*/

/* =================================================================
   n-denka.co.jp REDESIGN v4.1 (raw HTML 構造版)
   themenectar.com/salient 公式 Corporate3 / Harbor / Architect /
   Business3 / SaaS を徹底調査して抽出したデザイントークン準拠。
   - 日本語サイト最適化(欧文の 0.55-0.7 倍にサイズ縮小)
   - WCAG AA(コントラスト比 4.5:1)厳守
   - アニメーション全無効
   - 白基調 + navy アクセント1色 + 軽い灰
   - home は raw HTML(.ndk-* class)で構築 → CSS が確実に効く
   ================================================================= */

/* ---------- 1. デザイントークン ---------- */
:root {
  --brand: #1945a5;
  --brand-dark: #0d2d6e;
  --brand-soft: #e8eef9;
  --ink: #1a1a1a;
  --ink-soft: #4a4a4a;
  --ink-mute: #6b6b6b;
  --line: #e5e7eb;
  --bg: #ffffff;
  --bg-soft: #f7f8fa;
  --bg-dark: #0d2d6e;

  --fs-hero: clamp(1.85rem, 4.5vw, 3rem);
  --fs-section: clamp(1.4rem, 2.6vw, 2rem);
  --fs-sub: clamp(1.1rem, 1.6vw, 1.35rem);
  --fs-card: clamp(1.05rem, 1.3vw, 1.2rem);
  --fs-body: 1rem;
  --fs-caption: 0.78rem;
  --fs-small: 0.88rem;

  --lh-tight: 1.25;
  --lh-snug: 1.45;
  --lh-normal: 1.75;
  --lh-relaxed: 1.95;
  --sp-section: clamp(3.5rem, 7vw, 6rem);
  --sp-block: clamp(1.5rem, 3vw, 2.5rem);
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 18px;

  --container-w: 1180px;
}

/* ---------- 2-pre-U. img の hover-zoom (scale 1.05) を停止 ---------- */
/* Salient は img に hover で scale 1.05 を当てる(画像 hover-zoom)。
   ユーザーは「動く」と感じるため停止。 */
body .container.main-content img,
body .container.main-content img.attachment-full,
body .container.main-content img.size-full,
body .ndk-content-wrap img,
body .container-wrap img:not(#logo img):not(.slider-video) {
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  transition: none !important;
  -webkit-transition: none !important;
}

/* ---------- 2-pre-V. Google Maps マーカーパルス停止 (Salient nectar-map) ---------- */
/* .signal / .signal2 は Salient/Nectar の Google Maps マーカーに付くパルス効果。
   transform で scale 0.45 → 0.68 → 1.0 と無限ループする「動く」要素のため非表示にする。 */
body .signal,
body .signal2,
body [class*="map"] .signal,
body [class*="map"] .signal2,
body .nectar-google-map .signal,
body .nectar-google-map .signal2 {
  animation: none !important;
  -webkit-animation: none !important;
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  transform: none !important;
}

/* ---------- 2-pre-W. Salient flip-box の 3D 回転を停止 + flat card に変換 ---------- */
/* .flip-box / .nectar-flip-box は hover で front/back が flip する 3D 装飾。
   ユーザーには「中途半端な scale」状態で見えるため、 flat card に再構築する */
body .flip-box,
body .nectar-flip-box,
body .nectar-flip-box-wrap,
body [class*="flip-box"] {
  perspective: none !important;
  -webkit-perspective: none !important;
  transform-style: flat !important;
  -webkit-transform-style: flat !important;
  height: auto !important;
  position: static !important;
  overflow: visible !important;
}
body .flip-box .inner,
body .nectar-flip-box .inner,
body .flip-box-front,
body .flip-box-back,
body .nectar-flip-box .flip-box-front,
body .nectar-flip-box .flip-box-back,
body [class*="flip-box"] .inner {
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  transition: none !important;
  -webkit-transition: none !important;
  perspective: none !important;
  -webkit-perspective: none !important;
  transform-style: flat !important;
  -webkit-transform-style: flat !important;
  opacity: 1 !important;
  visibility: visible !important;
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  display: block !important;
  backface-visibility: visible !important;
  -webkit-backface-visibility: visible !important;
}

/* front / back を縦並び card 構成に */
body .flip-box-front,
body .nectar-flip-box .flip-box-front {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-md) !important;
  padding: 1.6em 1.5em !important;
  margin-bottom: 0.6em !important;
  box-sizing: border-box;
}
body .flip-box-back,
body .nectar-flip-box .flip-box-back {
  background: var(--bg-soft) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-md) !important;
  padding: 1.6em 1.5em !important;
  margin-bottom: 1.6em !important;
  box-sizing: border-box;
  color: var(--ink-soft) !important;
}
body .flip-box-back *,
body .nectar-flip-box .flip-box-back * {
  color: var(--ink-soft) !important;
  background-color: transparent !important;
}
body .flip-box-back h2,
body .flip-box-back h3,
body .flip-box-back h4,
body .nectar-flip-box .flip-box-back h2,
body .nectar-flip-box .flip-box-back h3,
body .nectar-flip-box .flip-box-back h4 {
  color: var(--brand) !important;
  margin-top: 0 !important;
}

/* jQuery UI tabbed_section の非active タブは明示的に hidden を保つ (CSS opacity:1 強制から除外) */
body .wpb_tab.wpb_ui-tabs-hide,
body .wpb_tab.ui-tabs-panel.wpb_ui-tabs-hide,
body .wpb_tab[aria-hidden="true"],
body .ui-tabs-panel[aria-hidden="true"] {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

/* ---------- 2-pre-X. Salient page-title / Off-Canvas widget の完全消去 ---------- */

/* Salient の section-title ブロック(<h2> + breadcrumb) は ndk-page-hero と重複するため
   home/contact 以外で全ページ非表示にする。 */
body:not(.home):not(.page-id-11) #page-header-bg.no-pretty-title,
body:not(.home):not(.page-id-11) #page-header-wrap,
body:not(.home):not(.page-id-11) .container > .row > .col.span_12.section-title,
body:not(.home):not(.page-id-11) .container.main-content > .row > .col.span_12.section-title,
body:not(.home):not(.page-id-11) .col.span_12.section-title,
body:not(.home):not(.page-id-11) header.entry-header {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Salient Off-Canvas Navigation widget area (右上「×」+ navy 縦バー)を完全非表示 */
/* 本番に倣って tabbed_section の全タブを縦並びで常時表示(jQuery UI tabs は使わない) */
body .wpb_tab,
body .wpb_tab.wpb_ui-tabs-hide,
body .ui-tabs-panel.wpb_ui-tabs-hide,
body .wpb_tab[aria-hidden="true"] {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  height: auto !important;
}

/* /company/(page-id-13): 各 row 余白を適度に(35px → 約 12px の row 間 + 上下少々のセル padding) */
body.page-id-13 .wpb_tab .vc_row.inner_row,
body.page-id-13 .wpb_tab > .vc_row {
  margin-bottom: 0.75em !important;  /* ~12px */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.page-id-13 .wpb_tab .vc_row.inner_row .vc_col-sm-6,
body.page-id-13 .wpb_tab .vc_row.inner_row .vc_col-sm-12,
body.page-id-13 .wpb_tab .vc_row.inner_row .vc_col-sm-3,
body.page-id-13 .wpb_tab .vc_row.inner_row .vc_col-sm-9,
body.page-id-13 .wpb_tab .vc_row.inner_row .wpb_column {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
/* column-inner の上下 padding を 0.6em (~10px) に */
body.page-id-13 .wpb_tab .vc_column-inner,
body.page-id-13 .wpb_tab .vc_row.inner_row .vc_column-inner {
  padding-top: 0.6em !important;
  padding-bottom: 0.6em !important;
}
body.page-id-13 .wpb_tab .wpb_text_column,
body.page-id-13 .wpb_tab .vc_column_text,
body.page-id-13 .wpb_tab .wpb_wrapper {
  margin-bottom: 0 !important;
  margin-top: 0 !important;
}
body.page-id-13 .wpb_tab .wpb_text_column p,
body.page-id-13 .wpb_tab .vc_column_text p,
body.page-id-13 .wpb_tab .wpb_wrapper p,
body.page-id-13 .wpb_tab p {
  margin-bottom: 0.3em !important;  /* p の自然な行間 */
  margin-top: 0 !important;
}

/* ============================================================
   ⚠️ デスクトップ(>=1000px)では Salient のスライドアウトメニュー
   を完全に無効化(通常のヘッダーメニュー使用)。
   モバイル(<1000px)では Salient 標準のオフキャンバスメニューが
   ハンバーガーボタンと連動するため、 必ず動作させる。
   ============================================================ */
@media (min-width: 1000px) {
  /* デスクトップでは ハンバーガー toggle のみ確実に消す
     slide-out-widget-area 本体は Salient 標準で display:none なので触らない */
  body #slide-out-widget-area-toggle {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
body.no-scroll,
body.no-scroll-x {
  overflow: auto !important;
}
/* デスクトップ で 余計な close 線非表示 */
@media (min-width: 1000px) {
  body .slide_out_area_close,
  body span.close-line {
    display: none !important;
  }
}

/* ---------- 2-pre-Z. NUCLEAR: 全 li / 全 .wpb_text_column / fancy-ul の opacity を 1 強制 ---------- */
/* Salient + fancy-ul shortcode は li ごとに JS で opacity 0→1 fade-in する仕組み。
   スクロール毎にトリガーされるとテキストが「動いて見える」ため、 全 li を opacity:1 強制 */
body .ndk-content-wrap li,
body .ndk-content-wrap ul li,
body .ndk-content-wrap ol li,
body .ndk-content-wrap .fancy-ul li,
body .ndk-content-wrap ul.fancy-ul li,
body .container.main-content li,
body .container.main-content ul li,
body .container.main-content ol li,
body .container.main-content .fancy-ul li,
body .container.main-content ul.fancy-ul li,
body .container.main-content .wpb_text_column li,
body .container.main-content .vc_column_text li,
body .container-wrap li {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  transition: none !important;
  -webkit-transition: none !important;
  filter: none !important;
}

/* fancy-ul の icon (<i>) と span ラッパも opacity 強制 */
body .ndk-content-wrap li i,
body .ndk-content-wrap li span,
body .ndk-content-wrap li a,
body .container.main-content li i,
body .container.main-content li span,
body .container.main-content li a,
body .container.main-content .fancy-ul li *,
body .ndk-content-wrap .fancy-ul li * {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
}

/* p / wpb_text_column / vc_column_text の中身全部 opacity 1 強制(scroll fade-in 防止) */
body .ndk-content-wrap p,
body .ndk-content-wrap .wpb_text_column,
body .ndk-content-wrap .wpb_text_column *,
body .ndk-content-wrap .vc_column_text,
body .ndk-content-wrap .vc_column_text *,
body .container.main-content p,
body .container.main-content .wpb_text_column,
body .container.main-content .wpb_text_column *,
body .container.main-content .vc_column_text,
body .container.main-content .vc_column_text * {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
}

/* IntersectionObserver で opacity を 0 から 1 にする系統 JS をすべて骨抜きに
   ⚠️ ただし Salient オフキャンバスメニュー (slide-out-widget-area / slide-out-from-right 等)
      は transform: translateX(100%) で画面外に隠す設計のため、 ここで transform: none を
      強制すると メニューが常に画面内に居座って閉じられなくなる致命バグになる。
      そのため [class*="slide-out"] / #slide-out-widget-area* / slide_out_area_close は除外。 */
body [data-animation],
body [data-animate],
body [data-delay],
body [data-anim-type],
body [class*="animate"]:not([class*="slide-out"]),
body [class*="fade"]:not([class*="slide-out"]),
body [class*="slide"]:not([class*="slide-out"]):not(.slide_out_area_close),
body [class*="zoom"]:not([class*="slide-out"]) {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
}
/* slide-out 自体は除外して Salient 標準の挙動に任せる(明示的に再宣言なし) */
#slide-out-widget-area,
#slide-out-widget-area-bg,
#slide-out-widget-area-toggle {
  /* 何もしない: Salient 親テーマの positioning/transform を尊重 */
}

/* ---------- 2-pre-A. hover-wrap / hover-zoom 等の VC スケール動作完全停止 ---------- */
body .hover-wrap,
body div.hover-wrap,
body [class*="hover-wrap"],
body .hover_zoom,
body .hover_zoom *,
body .hover-zoom,
body .hover-zoom *,
body .vc_single_image-wrapper.hover-wrap,
body .image_with_hover_effect,
body .nectar-cta.hover-zoom {
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  transition: none !important;
  -webkit-transition: none !important;
  opacity: 1 !important;
}

/* ndk-content-wrap 内の section 間の灰色透け対策 (row 間に隙間を作らない) */
body:not(.home) .ndk-content-wrap {
  background-color: #ffffff !important;
}
body:not(.home) .ndk-content-wrap > .vc_row,
body:not(.home) .ndk-content-wrap > .wpb_row,
body:not(.home) .ndk-content-wrap > .vc_row > .row-bg-wrap,
body:not(.home) .ndk-content-wrap > .wpb_row > .row-bg-wrap {
  background-color: #ffffff;
}
body:not(.home) .ndk-content-wrap > .vc_row + .vc_row,
body:not(.home) .ndk-content-wrap > .wpb_row + .wpb_row {
  margin-top: 0 !important;
}

/* ---------- 2-pre. Salient 装飾アニメ (frame border + animated-title) 完全停止 ---------- */
/* Salient の box-frame 装飾(.border-top / .border-right / .border-bottom / .border-left)は
   transform で一辺ずつ伸びるアニメ要素。 中途半端な transform で線が残るため完全に非表示 */
body span.border-top,
body span.border-right,
body span.border-bottom,
body span.border-left,
body .border-top[style*="matrix"],
body .border-right[style*="matrix"],
body .border-bottom[style*="matrix"],
body .border-left[style*="matrix"] {
  display: none !important;
  transform: none !important;
  -webkit-transform: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

/* nectar-animated-title: 文字が flip-in / fade-in する 3D アニメを完全停止 */
body .nectar-animated-title,
body .nectar-animated-title *,
body .nectar-animated-title-inner,
body .nectar-animated-title-inner *,
body [class*="nectar-animated"],
body [class*="nectar-animated"] * {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  transition: none !important;
  -webkit-transition: none !important;
  perspective: none !important;
  -webkit-perspective: none !important;
  transform-style: flat !important;
  -webkit-transform-style: flat !important;
}

/* fancy-box / nectar-cta / project-info 等のフレーム動作も全停止 */
body .nectar-cta,
body .nectar-cta *,
body .nectar-fancy-box,
body .nectar-fancy-box *,
body .nectar_cascading_images,
body .nectar_cascading_images *,
body .project-info,
body .project-info * {
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  transition: opacity .2s ease, color .2s ease, background-color .2s ease, border-color .2s ease !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* img-with-animation 含む img の transform / animation を強制停止 */
body img.img-with-animation,
body .img-with-animation,
body .img-with-animation img,
body img.skip-lazy[class*="animation"] {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  transition: none !important;
  filter: none !important;
  -webkit-filter: none !important;
}

/* ---------- 2. アニメーション全無効化 ---------- */
.img-with-animation,
.img-with-animation.animated-in,
[class*="img-with-animation"],
.wpb_animate_when_almost_visible,
.wpb_animate_when_almost_visible.wpb_start_animation,
.wpb_animate_when_almost_visible.wpb_fadeIn,
.wpb_animate_when_almost_visible.wpb_fadeInDown,
.wpb_animate_when_almost_visible.wpb_fadeInLeft,
.wpb_animate_when_almost_visible.wpb_fadeInRight,
.wpb_animate_when_almost_visible.wpb_fadeInUp,
.wpb_animate_when_almost_visible.wpb_appear,
.fadeIn, .fadeInDown, .fadeInLeft, .fadeInRight, .fadeInUp,
.fadeInDownBig, .fadeInLeftBig, .fadeInRightBig, .fadeInUpBig,
.zoomIn, .zoomInDown, .zoomInLeft, .zoomInRight, .zoomInUp,
.slideInDown, .slideInLeft, .slideInRight, .slideInUp,
.bounceIn, .bounceInDown, .bounceInLeft, .bounceInRight, .bounceInUp,
.flipInX, .flipInY, .rotateIn,
.animated,
[data-style="reveal-from-bottom"],
[data-style="fade-in-from-bottom"],
[data-style="fade-in"],
[data-style="grow-in"],
.nectar-fancy-box,
.nectar-cta * {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  animation-duration: 0s !important;
  animation-delay: 0s !important;
}

/* ---------- 3. body / heading ベース ---------- */
body,
body .container.main-content {
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Yu Gothic Medium", "游ゴシック Medium", "Meiryo", sans-serif;
  color: var(--ink-soft);
  font-size: var(--fs-body);
  line-height: var(--lh-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body .container-wrap h1,
body .container-wrap h2,
body .container-wrap h3,
body .container-wrap h4,
body .container-wrap h5,
body .container-wrap h6 {
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W6", "Yu Gothic", "Meiryo", sans-serif;
  color: var(--ink);
  letter-spacing: 0.01em;
  margin: 0 0 0.6em;
}
body .container.main-content p {
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  color: var(--ink-soft);
  margin: 0 0 1em;
}

/* ---------- 4. リンク基本 ---------- */
body .container.main-content a:not(.ndk-btn):not(.nectar-button):not(.tab-title):not([class*="vc_"]):not([id*="logo"]):not([class*="nectar_"]):not(.ndk-card-link):not(.nectar_cta) {
  color: var(--brand);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, color .2s ease;
}
body .container.main-content a:not(.ndk-btn):not(.nectar-button):not(.tab-title):not([class*="vc_"]):not([id*="logo"]):not([class*="nectar_"]):not(.ndk-card-link):hover {
  border-bottom-color: var(--brand);
  color: var(--brand-dark);
}

/* =================================================================
   HOME: ndk-* raw HTML 構造の専用 CSS
   ================================================================= */

/* ---------- container ---------- */
body.home .container.main-content {
  padding: 0 !important;
}
body.home .container.main-content > .row {
  padding: 0 !important;
}
body.home .container.main-content .ndk-container {
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 0 28px;
}

/* ---------- セクション基本 ---------- */
body.home .ndk-hero,
body.home .ndk-section,
body.home .ndk-cta-dark {
  width: 100%;
  display: block;
  box-sizing: border-box;
}
body.home .ndk-section {
  padding: var(--sp-section) 0;
  background: var(--bg);
}
body.home .ndk-bg-white {
  background-color: var(--bg) !important;
}
body.home .ndk-bg-soft {
  background-color: var(--bg-soft) !important;
}
body.home .ndk-cta-dark {
  background-color: var(--brand) !important;
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}
body.home .ndk-hero {
  background-color: var(--bg-dark) !important;
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}

/* ---------- キャプション ---------- */
body.home .ndk-caption {
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
  font-size: var(--fs-caption) !important;
  font-weight: 700 !important;
  letter-spacing: 0.32em !important;
  text-transform: uppercase !important;
  margin: 0 0 1.5em !important;
  line-height: 1 !important;
  display: block;
}
body.home .ndk-caption-brand {
  color: var(--brand) !important;
}
body.home .ndk-hero .ndk-caption {
  color: rgba(255, 255, 255, 0.7) !important;
}
body.home .ndk-caption-onbrand {
  color: rgba(255, 255, 255, 0.7) !important;
}

/* ---------- 0. VIDEO HERO (動画 hero、 home の最上部) ---------- */
/* 60vh は iOS Safari で URL バー変動 → 揺れ の原因。 60dvh (dynamic) を優先。 */
body.home .ndk-video-hero {
  position: relative;
  width: 100%;
  min-height: clamp(380px, 60vh, 640px);
  min-height: clamp(380px, 60dvh, 640px);
  background-color: #0d2d6e;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
body.home .ndk-video-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
body.home .ndk-video-hero-media .ndk-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
body.home .ndk-video-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(13, 45, 110, 0.55) 0%, rgba(13, 45, 110, 0.35) 50%, rgba(13, 45, 110, 0.65) 100%);
  z-index: 1;
}
body.home .ndk-video-hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 4rem 0;
}
body.home .ndk-video-hero-content .ndk-container {
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 0 28px;
}
body.home .ndk-video-hero-content .ndk-caption {
  color: rgba(255, 255, 255, 0.85) !important;
  margin: 0 0 1.4em !important;
}
body.home .ndk-video-hero-title {
  font-size: clamp(2rem, 5vw, 3.4rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #ffffff !important;
  margin: 0 0 0.5em !important;
  letter-spacing: 0.03em !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}
body.home .ndk-video-hero-sub {
  font-size: clamp(1.1rem, 1.8vw, 1.5rem) !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.92) !important;
  margin: 0 !important;
  letter-spacing: 0.04em !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
}
@media (max-width: 768px) {
  body.home .ndk-video-hero {
    min-height: 70vh;
    min-height: 70dvh;
  }
}

/* ---------- HERO ---------- */
body.home .ndk-hero-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 3rem;
  align-items: center;
}
body.home .ndk-hero-title {
  font-size: var(--fs-hero) !important;
  font-weight: 700 !important;
  line-height: var(--lh-tight) !important;
  color: #ffffff !important;
  letter-spacing: 0.02em !important;
  margin: 0 0 0.6em !important;
}
body.home .ndk-hero-sub {
  font-size: var(--fs-sub) !important;
  font-weight: 400 !important;
  line-height: var(--lh-snug) !important;
  color: rgba(255, 255, 255, 0.88) !important;
  margin: 0 0 2em !important;
  max-width: 580px;
}
body.home .ndk-hero-ctas {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
}

/* ---------- HERO 右側 数字 stats ---------- */
body.home .ndk-hero-stats {
  display: flex;
  flex-direction: column;
  gap: 1.6em;
  padding-left: 2.4rem;
  border-left: 1px solid rgba(255, 255, 255, 0.18);
}
body.home .ndk-stat {
  display: flex;
  flex-direction: column;
  gap: 0.2em;
}
body.home .ndk-stat-num {
  font-size: clamp(2.4rem, 4vw, 3.4rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #ffffff !important;
  letter-spacing: -0.02em !important;
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
}
body.home .ndk-stat-label {
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.32em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.7) !important;
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
}

/* ---------- セクションタイトル ---------- */
body.home .ndk-section-title {
  font-size: var(--fs-section) !important;
  font-weight: 700 !important;
  line-height: var(--lh-snug) !important;
  color: var(--ink) !important;
  margin: 0 0 2em !important;
  letter-spacing: 0.01em !important;
}
body.home .ndk-section-more {
  margin-top: 2.5em !important;
  font-size: 0.92rem;
}
body.home .ndk-section-more a {
  color: var(--brand) !important;
  font-weight: 600;
  text-decoration: none !important;
  border: none !important;
}
body.home .ndk-section-more a:hover {
  color: var(--brand-dark) !important;
  text-decoration: underline !important;
}

/* ---------- News (recent_posts shortcode のスタイル整形) ---------- */
body.home .nectar-recent-posts-single_featured,
body.home .nectar-recent-posts-multiple_featured {
  margin: 0 -12px !important;
  display: flex;
  flex-wrap: wrap;
}
body.home .nectar-recent-posts-single_featured .col,
body.home .nectar-recent-posts-multiple_featured .col {
  padding: 12px !important;
  flex: 1 1 33.333%;
  max-width: 33.333%;
  box-sizing: border-box;
}
body.home .nectar-recent-posts-single_featured article,
body.home .nectar-recent-posts-multiple_featured article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 1.5em 1.6em 1.7em;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}
body.home .nectar-recent-posts-single_featured article:hover,
body.home .nectar-recent-posts-multiple_featured article:hover {
  border-color: var(--brand);
  box-shadow: 0 8px 24px rgba(13, 45, 110, 0.08);
  transform: translateY(-2px);
}
body.home .nectar-recent-posts-single_featured .article-content-wrap {
  padding: 0 !important;
  background: none !important;
}
body.home .nectar-recent-posts-single_featured article h2,
body.home .nectar-recent-posts-single_featured article h2 a,
body.home .nectar-recent-posts-single_featured article h3,
body.home .nectar-recent-posts-single_featured article h3 a {
  font-size: 1.02rem !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  line-height: 1.55 !important;
  margin: 0 0 0.4em !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  border: none !important;
}
body.home .nectar-recent-posts-single_featured article h2 a:hover,
body.home .nectar-recent-posts-single_featured article h3 a:hover {
  color: var(--brand) !important;
}
/* home の news カードは「admin / News / No Comments」を非表示にし、タイトル+抜粋+日付だけのシンプル表示に */
body.home .blog-recent .meta-author,
body.home .blog-recent .meta-category,
body.home .blog-recent .meta-comment-count,
body.home .blog-recent .post-header .meta-author,
body.home .blog-recent .post-header .meta-category,
body.home .blog-recent .post-header .meta-comment-count,
body.home .nectar-recent-posts-single_featured .meta-author,
body.home .nectar-recent-posts-single_featured .meta-category,
body.home .nectar-recent-posts-single_featured .meta-comment-count,
body.home .nectar-recent-posts-multiple_featured .meta-author,
body.home .nectar-recent-posts-multiple_featured .meta-category,
body.home .nectar-recent-posts-multiple_featured .meta-comment-count {
  display: none !important;
}

/* home news カード(blog-recent)のレイアウト統一 */
body.home .blog-recent {
  display: flex !important;
  flex-wrap: wrap;
  margin: 0 -12px !important;
}
body.home .blog-recent .col.span_4 {
  flex: 0 0 calc(33.333% - 24px);
  margin: 0 12px 24px !important;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 1.5em 1.6em 1.7em;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
  width: auto !important;
  box-sizing: border-box;
}
body.home .blog-recent .col.span_4:hover {
  border-color: var(--brand);
  box-shadow: 0 8px 24px rgba(13, 45, 110, 0.08);
  transform: translateY(-2px);
}
body.home .blog-recent .post-header {
  padding: 0 !important;
  background: none !important;
  border: none !important;
  margin: 0 0 0.7em !important;
}
body.home .blog-recent .post-header h3.title,
body.home .blog-recent .post-header h2.title {
  font-size: 1.02rem !important;
  font-weight: 600 !important;
  margin: 0 !important;
  line-height: 1.55 !important;
}
body.home .blog-recent .post-header h3.title a,
body.home .blog-recent .post-header h2.title a {
  color: var(--ink) !important;
  text-decoration: none !important;
  border: none !important;
}
body.home .blog-recent .post-header h3.title a:hover,
body.home .blog-recent .post-header h2.title a:hover {
  color: var(--brand) !important;
}
body.home .blog-recent .excerpt {
  font-size: 0.88rem !important;
  color: var(--ink-mute) !important;
  line-height: 1.7 !important;
  margin: 0 0 0.8em !important;
}
body.home .blog-recent time,
body.home .blog-recent .post-meta,
body.home .blog-recent .date {
  font-size: 0.78rem !important;
  color: var(--ink-mute) !important;
  display: block !important;
  margin-top: 0.6em !important;
}

@media (max-width: 999px) {
  body.home .blog-recent .col.span_4 {
    flex: 0 0 calc(50% - 24px);
  }
}
@media (max-width: 640px) {
  body.home .blog-recent .col.span_4 {
    flex: 0 0 calc(100% - 24px);
  }
}
body.home .nectar-recent-posts-single_featured time,
body.home .nectar-recent-posts-single_featured .post-meta {
  font-size: 0.76rem !important;
  color: var(--ink-mute) !important;
  margin-top: auto !important;
  padding-top: 0.8em !important;
  display: block !important;
}

/* ---------- 製品グリッド ---------- */
body.home .ndk-products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
body.home .ndk-product-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
  display: flex;
  flex-direction: column;
}
body.home .ndk-product-card:hover {
  border-color: var(--brand);
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(13, 45, 110, 0.10);
}
body.home .ndk-product-card-image {
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--bg-soft);
}
body.home .ndk-product-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0 !important;
}
body.home .ndk-product-card-body {
  padding: 1.3em 1.4em 1.5em;
  display: flex;
  flex-direction: column;
  flex: 1;
}
body.home .ndk-product-card-title {
  font-size: var(--fs-card) !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  margin: 0 0 0.5em !important;
  line-height: 1.4 !important;
}
body.home .ndk-product-card-desc {
  font-size: var(--fs-small) !important;
  color: var(--ink-mute) !important;
  margin: 0 0 1em !important;
  line-height: var(--lh-snug) !important;
  flex: 1;
}
body.home .ndk-card-link {
  color: var(--brand) !important;
  font-size: var(--fs-small) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border: none !important;
  align-self: flex-start;
}
body.home .ndk-card-link:hover {
  color: var(--brand-dark) !important;
}

/* ---------- カタログ 2 column ---------- */
body.home .ndk-catalog-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.6rem;
}
body.home .ndk-catalog-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-md);
  padding: 2em;
  display: flex;
  flex-direction: column;
  transition: border-color .25s ease;
}
body.home .ndk-catalog-card:hover {
  border-color: var(--brand);
}
body.home .ndk-catalog-card-title {
  font-size: 1.2rem !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  margin: 0 0 0.5em !important;
}
body.home .ndk-catalog-card-desc {
  font-size: var(--fs-small) !important;
  color: var(--ink-soft) !important;
  margin: 0 0 1.4em !important;
  flex: 1;
}

/* ---------- CTA dark ---------- */
body.home .ndk-cta-dark .ndk-container {
  text-align: center;
}
body.home .ndk-cta-title {
  font-size: var(--fs-section) !important;
  font-weight: 700 !important;
  line-height: var(--lh-snug) !important;
  color: #ffffff !important;
  margin: 0 0 0.6em !important;
}
body.home .ndk-cta-sub {
  font-size: var(--fs-sub) !important;
  color: rgba(255, 255, 255, 0.88) !important;
  margin: 0 auto 2em !important;
  max-width: 640px;
  line-height: var(--lh-snug) !important;
}
body.home .ndk-cta-actions {
  display: flex;
  justify-content: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}

/* ---------- ndk-btn (新規ボタンクラス、 raw HTML 用) ---------- */
body.home a.ndk-btn,
body a.ndk-btn {
  display: inline-block;
  padding: 0.85em 2.2em;
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.05em;
  border-radius: var(--radius-md);
  border: 1.5px solid transparent;
  text-decoration: none !important;
  text-align: center;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
  line-height: 1.5;
}
body.home a.ndk-btn-outline-white,
body a.ndk-btn-outline-white {
  background: transparent;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.5);
}
body.home a.ndk-btn-outline-white:hover,
body a.ndk-btn-outline-white:hover {
  background: #ffffff;
  color: var(--brand) !important;
  border-color: #ffffff;
}
body.home a.ndk-btn-outline-brand,
body a.ndk-btn-outline-brand {
  background: transparent;
  color: var(--brand) !important;
  border-color: var(--brand);
}
body.home a.ndk-btn-outline-brand:hover,
body a.ndk-btn-outline-brand:hover {
  background: var(--brand);
  color: #ffffff !important;
  border-color: var(--brand);
}
body.home a.ndk-btn-solid,
body a.ndk-btn-solid {
  background: var(--brand);
  color: #ffffff !important;
  border-color: var(--brand);
}
body.home a.ndk-btn-solid:hover,
body a.ndk-btn-solid:hover {
  background: var(--brand-dark);
  border-color: var(--brand-dark);
}

/* =================================================================
   CONTACT (page-id-11) / 共通 page-hero / 共通 info & feature grid
   ================================================================= */

/* contact / その他 raw HTML を使うページに共通 container */
body.page-id-11 .container.main-content,
body.page-id-11 .container.main-content > .row {
  padding: 0 !important;
}
body.page-id-11 .container.main-content .ndk-container {
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 0 28px;
}
body.page-id-11 .container.main-content .ndk-container-narrow {
  max-width: 820px;
}

/* 共通 page hero (home 以外の各ページの上部 hero)
   v2 デザインバランス重視で全体をコンパクト化 */
body .ndk-page-hero {
  background-color: var(--bg-dark) !important;
  padding: clamp(1.4rem, 2.8vw, 2.4rem) 0 !important;
  width: 100%;
  display: block;
}
body .ndk-page-hero .ndk-container {
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 0 28px;
}
body .ndk-page-hero .ndk-caption {
  color: rgba(255, 255, 255, 0.92) !important;
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.32em !important;
  text-transform: uppercase !important;
  margin: 0 0 0.5em !important;
  padding-bottom: 0 !important;
  line-height: 1 !important;
  display: block;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}
body .ndk-page-hero-title {
  font-size: clamp(1.3rem, 2.4vw, 1.85rem) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: #ffffff !important;
  margin: 0 0 0.35em !important;
  padding-bottom: 0 !important;
  letter-spacing: 0.02em !important;
}
body .ndk-page-hero-sub {
  font-size: 0.92rem !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.82) !important;
  margin: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1.6 !important;
  max-width: 720px;
  line-height: var(--lh-snug) !important;
}

/* セクション共通(home 以外でも使う) */
body .ndk-section {
  padding: var(--sp-section) 0;
  width: 100%;
  display: block;
}
body .ndk-section.ndk-bg-white,
body .ndk-bg-white {
  background-color: var(--bg) !important;
}
body .ndk-section.ndk-bg-soft,
body .ndk-bg-soft {
  background-color: var(--bg-soft) !important;
}
body .ndk-cta-dark {
  background-color: var(--brand) !important;
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}
body .ndk-section .ndk-container,
body .ndk-cta-dark .ndk-container {
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 0 28px;
}
body .ndk-section .ndk-container-narrow,
body .ndk-cta-dark .ndk-container-narrow {
  max-width: 820px;
}

/* 共通 caption / section-title */
body .ndk-section .ndk-caption,
body .container.main-content .ndk-section .ndk-caption {
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
  font-size: var(--fs-caption) !important;
  font-weight: 700 !important;
  letter-spacing: 0.32em !important;
  text-transform: uppercase !important;
  margin: 0 0 1.5em !important;
  line-height: 1 !important;
  display: block;
}
body .ndk-section .ndk-caption-brand,
body .container.main-content .ndk-caption-brand {
  color: var(--brand) !important;
}
body .ndk-section .ndk-section-title,
body .container.main-content .ndk-section .ndk-section-title {
  font-size: var(--fs-section) !important;
  font-weight: 700 !important;
  line-height: var(--lh-snug) !important;
  color: var(--ink) !important;
  margin: 0 0 2em !important;
  letter-spacing: 0.01em !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}

/* 連絡先カード(3列) */
body .ndk-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
body .ndk-info-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 1.8em 1.8em 2em;
  transition: border-color .2s ease, box-shadow .2s ease;
}
body .ndk-info-card:hover {
  border-color: var(--brand);
  box-shadow: 0 6px 20px rgba(13, 45, 110, 0.07);
}
body .ndk-info-card-label {
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: var(--brand) !important;
  margin: 0 0 0.6em !important;
  line-height: 1 !important;
  display: block;
}
body .ndk-info-card-title {
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  margin: 0 0 0.8em !important;
  letter-spacing: 0.02em !important;
}
body .ndk-info-card-addr {
  font-size: 0.9rem !important;
  color: var(--ink-soft) !important;
  margin: 0 0 1.2em !important;
  line-height: 1.7 !important;
}
body .ndk-info-card-contact {
  border-top: 1px solid var(--line);
  padding-top: 1em;
}
body .ndk-info-card-tel,
body .ndk-info-card-fax {
  font-size: 0.9rem !important;
  color: var(--ink-soft) !important;
  margin: 0 0 0.3em !important;
  display: flex;
  align-items: center;
  gap: 0.6em;
}
body .ndk-info-label {
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  color: var(--brand) !important;
  background: var(--brand-soft);
  padding: 0.15em 0.6em;
  border-radius: 4px;
  text-transform: uppercase;
}
body .ndk-info-card-tel a {
  color: var(--ink) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border: none !important;
}
body .ndk-info-card-tel a:hover {
  color: var(--brand) !important;
}
body .ndk-info-hours {
  margin: 2.4em 0 0 !important;
  font-size: 0.92rem !important;
  color: var(--ink-soft) !important;
  text-align: center;
  padding: 1.1em 1.5em;
  background: var(--bg-soft);
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
}
body .ndk-info-hours strong {
  color: var(--brand);
  margin-right: 0.4em;
}

/* サービス特徴 4 列 */
body .ndk-features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.4rem;
}
body .ndk-feature-card {
  background: #fff;
  border-radius: var(--radius-md);
  padding: 1.6em 1.4em 1.8em;
  border: 1px solid var(--line);
}
body .ndk-feature-num {
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  color: var(--brand) !important;
  margin: 0 0 0.5em !important;
  line-height: 1 !important;
}
body .ndk-feature-title {
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  margin: 0 0 0.6em !important;
}
body .ndk-feature-desc {
  font-size: 0.88rem !important;
  color: var(--ink-mute) !important;
  margin: 0 !important;
  line-height: 1.75 !important;
}

/* フォーム枠 */
body .ndk-form-intro {
  text-align: center;
  color: var(--ink-mute);
  font-size: 0.95rem;
  margin: 0 0 2em !important;
}
body .ndk-form-wrapper {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 2em 2.2em;
}
body .ndk-form-wrapper .wpcf7 p {
  margin-bottom: 1.2em !important;
}
body .ndk-form-wrapper .wpcf7 label {
  display: block;
  font-weight: 600;
  color: var(--ink);
  font-size: 0.92rem;
  margin-bottom: 0.4em;
}
body .ndk-form-wrapper .wpcf7 input[type="text"],
body .ndk-form-wrapper .wpcf7 input[type="email"],
body .ndk-form-wrapper .wpcf7 input[type="tel"],
body .ndk-form-wrapper .wpcf7 textarea {
  width: 100%;
  padding: 0.75em 1em;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font-size: 0.95rem;
  font-family: inherit;
  background: #fff;
  transition: border-color .2s ease;
  box-sizing: border-box;
}
body .ndk-form-wrapper .wpcf7 input[type="text"]:focus,
body .ndk-form-wrapper .wpcf7 input[type="email"]:focus,
body .ndk-form-wrapper .wpcf7 input[type="tel"]:focus,
body .ndk-form-wrapper .wpcf7 textarea:focus {
  border-color: var(--brand);
  outline: 0;
}
body .ndk-form-wrapper .wpcf7 input[type="submit"] {
  background: var(--brand);
  color: #ffffff;
  border: 1.5px solid var(--brand);
  padding: 0.85em 2.5em;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}
body .ndk-form-wrapper .wpcf7 input[type="submit"]:hover {
  background: var(--brand-dark);
  border-color: var(--brand-dark);
}
body .ndk-form-wrapper .recaptcha-notice {
  font-size: 0.78rem !important;
  color: var(--ink-mute) !important;
  margin-top: 1em !important;
}

/* CTA dark - 電話番号大型 */
body .ndk-cta-dark .ndk-container {
  text-align: center;
}
body .ndk-cta-dark .ndk-caption,
body .ndk-cta-dark .ndk-caption-onbrand {
  color: rgba(255, 255, 255, 0.7) !important;
}
body .ndk-cta-title {
  font-size: var(--fs-section) !important;
  font-weight: 700 !important;
  line-height: var(--lh-snug) !important;
  color: #ffffff !important;
  margin: 0 0 0.6em !important;
}
body .ndk-cta-sub {
  font-size: var(--fs-sub) !important;
  color: rgba(255, 255, 255, 0.88) !important;
  margin: 0.6em auto 0 !important;
  max-width: 640px;
  line-height: var(--lh-snug) !important;
}
body .ndk-cta-tel-num {
  margin: 0.4em 0 !important;
}
body .ndk-cta-tel-num a {
  color: #ffffff !important;
  font-size: clamp(2rem, 5vw, 3.2rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  font-family: "Helvetica Neue", "Arial", sans-serif !important;
  text-decoration: none !important;
  border: none !important;
  display: inline-block;
}
body .ndk-cta-tel-num a:hover {
  color: rgba(255, 255, 255, 0.85) !important;
}
body .ndk-cta-actions {
  display: flex;
  justify-content: center;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-top: 1.5em;
}

/* レスポンシブ contact / page-hero */
@media (max-width: 999px) {
  body .ndk-info-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  body .ndk-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  body .ndk-features-grid {
    grid-template-columns: 1fr;
  }
  body .ndk-page-hero,
  body .ndk-section,
  body .ndk-cta-dark {
    padding: 3rem 0 !important;
  }
}

/* =================================================================
   the_content filter で挿入される既存ページ本文ラッパ
   .ndk-content-wrap が既存 VC 出力を包む。 縦余白だけ整え、 内部は VC のレイアウトを尊重
   ================================================================= */
body:not(.home) .ndk-content-wrap {
  /* hero と本文の間は タイトに、 下部のみ通常のセクション間隔 */
  padding: clamp(1.6rem, 3vw, 2.4rem) 0 var(--sp-section) !important;
  display: block;
}

/* ============================================================
   本文 vc_row の余白圧縮(全 非 home ページ共通)
   - Salient/VC のデフォルトで row ごとに ~34px の縦 padding が付く
   - B2B 法務文書 / 製品ページなど 情報密度を上げたいため、 半分以下に
   - ただし完全に詰めると圧迫感が出るため 1rem 程度は残す
   ============================================================ */
body:not(.home) .ndk-content-wrap > .vc_row,
body:not(.home) .ndk-content-wrap > .wpb_row {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}
/* 最初の row は hero 直下なので更に圧縮 */
body:not(.home) .ndk-content-wrap > .vc_row:first-child,
body:not(.home) .ndk-content-wrap > .wpb_row:first-child {
  padding-top: 0 !important;
}
/* 最後の row も下部 padding は ndk-content-wrap が持つので不要 */
body:not(.home) .ndk-content-wrap > .vc_row:last-child,
body:not(.home) .ndk-content-wrap > .wpb_row:last-child {
  padding-bottom: 0 !important;
}
/* /warranty/ 等の 条見出し row だけ少し余白を多めにして視覚区切りを保つ */
body.page-id-534 .ndk-content-wrap > .vc_row {
  padding-top: 1.4rem !important;
  padding-bottom: 0.5rem !important;
}
body:not(.home) .ndk-content-wrap > .vc_row,
body:not(.home) .ndk-content-wrap > .wpb_row {
  max-width: var(--container-w);
  margin: 0 auto;
  padding: 0 28px;
  box-sizing: border-box;
}
body:not(.home) .ndk-content-wrap > .vc_row.full-width-section,
body:not(.home) .ndk-content-wrap > .wpb_row.full-width-section,
body:not(.home) .ndk-content-wrap > .vc_row.full-width-content,
body:not(.home) .ndk-content-wrap > .wpb_row.full-width-content {
  max-width: none;
  padding: 0;
  margin: 0;
}
body:not(.home) .ndk-content-wrap > .vc_row + .vc_row,
body:not(.home) .ndk-content-wrap > .wpb_row + .wpb_row {
  margin-top: var(--sp-block);
}

/* 既存 VC heading のサイズを home 以外で控えめに */
body:not(.home):not(.page-id-534) .ndk-content-wrap h2:not(.ndk-section-title):not(.recaptcha-notice),
body:not(.home):not(.page-id-534) .ndk-content-wrap h3:not(.ndk-section-title),
body:not(.home):not(.page-id-534) .ndk-content-wrap h4 {
  letter-spacing: 0.02em;
}

/* 既存 fancy-ul のリスタイル(Salient 公式風 list) */
body:not(.home) .ndk-content-wrap .fancy-ul ul,
body:not(.home) .ndk-content-wrap ul {
  list-style: none;
  padding-left: 0;
}
body:not(.home) .ndk-content-wrap .fancy-ul ul li,
body:not(.home) .ndk-content-wrap ul.fancy-ul li {
  padding: 0.55em 0 0.55em 1.5em;
  position: relative;
  border-bottom: 1px solid var(--line);
  font-size: 0.95rem;
  color: var(--ink-soft);
  line-height: 1.7;
}
body:not(.home) .ndk-content-wrap .fancy-ul ul li::before,
body:not(.home) .ndk-content-wrap ul.fancy-ul li::before {
  content: "";
  position: absolute;
  left: 0.4em;
  top: 1.05em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
  display: block;
}
body:not(.home) .ndk-content-wrap .fancy-ul ul li i,
body:not(.home) .ndk-content-wrap ul.fancy-ul li i {
  display: none;
}

/* tabbed_section (Salient) のリスタイル — クラス名は .tab-item / .active-tab */
body:not(.home) .ndk-content-wrap .tabbed[data-style*="vertical"] .wpb-tabs-nav,
body:not(.home) .ndk-content-wrap .wpb_tour_tabs_wrapper .wpb-tabs-nav,
body:not(.home) .ndk-content-wrap ul.tabs {
  border-right: 1px solid var(--line);
  margin-right: 1.5em;
  padding: 0;
  list-style: none;
}

/* 非active タブ: 透明 bg + navy 文字 */
body:not(.home) .ndk-content-wrap .tab-item a,
body:not(.home) .ndk-content-wrap li.tab-item a,
body:not(.home) .ndk-content-wrap .wpb-tabs-nav li a,
body:not(.home) .ndk-content-wrap .tabbed .wpb-tabs-nav li a {
  padding: 0.85em 1.2em !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  color: var(--brand) !important;
  background: transparent !important;
  border-radius: var(--radius-sm) !important;
  transition: background .2s ease, color .2s ease !important;
  display: block !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
}

/* active タブ: navy bg + 白文字(コントラスト確保) */
body:not(.home) .ndk-content-wrap .tab-item.active-tab a,
body:not(.home) .ndk-content-wrap li.tab-item.active-tab a,
body:not(.home) .ndk-content-wrap .active-tab > a,
body:not(.home) .ndk-content-wrap a.active-tab,
body:not(.home) .ndk-content-wrap .wpb-tabs-nav li.active a,
body:not(.home) .ndk-content-wrap .tabbed .wpb-tabs-nav li.active a {
  background: var(--brand) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-weight: 600 !important;
}

/* hover (非active のみ): 薄いnavy bg + navy 文字 */
body:not(.home) .ndk-content-wrap .tab-item a:hover,
body:not(.home) .ndk-content-wrap .wpb-tabs-nav li:not(.active):not(.active-tab) a:hover {
  background: var(--brand-soft) !important;
  color: var(--brand) !important;
}

/* nectar_icon の余分な padding/margin 整形 */
body:not(.home) .ndk-content-wrap .nectar_icon_wrap {
  margin-bottom: 1em !important;
}

/* 画像セクション周りの整形 */
body:not(.home) .ndk-content-wrap .wpb_single_image .vc_single_image-wrapper {
  display: block;
}
body:not(.home) .ndk-content-wrap .wpb_single_image img {
  border-radius: var(--radius-sm);
  max-width: 100%;
  height: auto;
}

/* =================================================================
   HOME 以外のページ
   ================================================================= */

/* ページタイトル(home 以外の hero) */
body:not(.home) #page-header-bg h1,
body:not(.home) #page-header-bg h2 {
  font-size: clamp(1.6rem, 3.5vw, 2.4rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  color: var(--ink) !important;
  line-height: 1.3 !important;
}

/* 全ページ共通: VC heading のデフォルト(home 以外、warranty 以外) */
body:not(.page-id-534):not(.home):not(.page-id-62) .container.main-content h2.vc_custom_heading,
body:not(.page-id-534):not(.home):not(.page-id-62) .container.main-content h1.vc_custom_heading {
  font-size: 1.45rem !important;
  line-height: 1.55 !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  color: var(--brand) !important;
  margin: 2em 0 0.8em !important;
  padding-left: 0.7em !important;
  border-left: 4px solid var(--brand) !important;
}
@media (max-width: 768px) {
  body:not(.page-id-534):not(.home):not(.page-id-62) .container.main-content h2.vc_custom_heading,
  body:not(.page-id-534):not(.home):not(.page-id-62) .container.main-content h1.vc_custom_heading {
    font-size: 1.25rem !important;
  }
}

/* nectar-button 既存スタイル(home 以外で残す) */
body:not(.home) .container-wrap a.nectar-button,
body:not(.home) .container-wrap .nectar-button {
  display: inline-block;
  padding: 0.85em 2.2em !important;
  font-size: var(--fs-small) !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  border-radius: var(--radius-md) !important;
  background: var(--brand) !important;
  color: #ffffff !important;
  border: 1.5px solid var(--brand) !important;
  transition: background .2s ease, color .2s ease, border-color .2s ease !important;
  text-decoration: none !important;
}
body:not(.home) .container-wrap a.nectar-button:hover,
body:not(.home) .container-wrap .nectar-button:hover {
  background: var(--brand-dark) !important;
  border-color: var(--brand-dark) !important;
}
body:not(.home) .container-wrap a.nectar-button.see-through-2,
body:not(.home) .container-wrap .nectar-button.see-through-2 {
  background: transparent !important;
  color: var(--brand) !important;
  border-color: var(--brand) !important;
}
body:not(.home) .container-wrap a.nectar-button.see-through-2:hover,
body:not(.home) .container-wrap .nectar-button.see-through-2:hover {
  background: var(--brand) !important;
  color: #fff !important;
}

/* ---------- ヘッダー(既存維持) ---------- */
#header-outer .container,
#header-outer header .container {
  max-width: 1280px;
  width: auto;
}
@media (min-width: 1400px) {
  #header-outer .container,
  #header-outer header .container {
    max-width: 1400px;
  }
}
#header-outer nav > ul > li > a,
#header-outer .sf-menu > li > a,
header#top nav > ul > li > a,
header#top nav .sf-menu > li > a {
  white-space: nowrap !important;
}
@media (min-width: 1000px) and (max-width: 1199px) {
  #header-outer header nav > ul > li > a,
  #header-outer header .sf-menu > li > a {
    padding-left: 10px;
    padding-right: 10px;
    font-size: 14px;
  }
}
@media (min-width: 1200px) {
  #header-outer header nav > ul > li > a,
  #header-outer header .sf-menu > li > a {
    padding-left: 14px;
    padding-right: 14px;
  }
}
#header-outer #logo img {
  max-height: 56px;
  width: auto;
}
@media (max-width: 999px) {
  #mobile-menu ul li a {
    padding: 14px 20px;
    font-size: 15px;
  }
}

/* ---------- to-top + footer ---------- */
#to-top {
  background: var(--brand) !important;
  border-color: var(--brand) !important;
  transition: opacity .25s ease, transform .25s ease !important;
}
#to-top:hover { transform: translateY(-3px); }
#to-top i { color: #fff !important; }

#footer-outer { background: #fff !important; }
#footer-outer #copyright {
  padding: 1.5rem 0 !important;
  border-top: 1px solid var(--line);
  color: var(--ink-mute);
  font-size: 0.78rem;
}
#footer-outer #copyright .container {
  display: flex;
  justify-content: center;
}

/* breadcrumb */
body .yoast-breadcrumbs,
body .breadcrumb,
body p.yoast {
  font-size: 0.78rem !important;
  color: var(--ink-mute) !important;
  letter-spacing: 0.03em !important;
}
body .yoast-breadcrumbs a,
body .breadcrumb a,
body p.yoast a {
  color: var(--ink-soft) !important;
  text-decoration: none;
  transition: color .2s ease;
}
body .yoast-breadcrumbs a:hover,
body p.yoast a:hover {
  color: var(--brand) !important;
}

/* 画像 round */
body:not(.home) .container.main-content img:not(.skip-styles):not(#logo img) {
  border-radius: var(--radius-sm);
}

/* ヘッダー直下のスキマ削除 (Salient default .container-wrap padding-top:40px) */
body .container-wrap,
body #ajax-content-wrap {
  padding-top: 0 !important;
}

/* ==================================================================
   Apple Design × UI ディテール 統合監査 v3 全件実装
   Apple HIG (Clarity/Deference/Depth) + 6 ディテールカテゴリ
   ================================================================== */

/* ---- A1. :focus-visible (Apple HIG Accessibility) ---- */
/* キーボード Tab 操作時のみフォーカスリング、 マウスクリックでは出さない */
*:focus { outline: none; }
body a:focus-visible,
body button:focus-visible,
body input:focus-visible,
body textarea:focus-visible,
body select:focus-visible,
body .nectar-button:focus-visible,
body .ndk-btn:focus-visible,
body .wpb_tabs_nav a:focus-visible {
  outline: 2px solid var(--brand) !important;
  outline-offset: 3px !important;
  border-radius: 3px !important;
}

/* ---- A2. タップ領域 44×44px 以上 (Apple HIG) ---- */
body .container-wrap a.nectar-button,
body .container-wrap a.ndk-btn,
body .wpb_tabs_nav li a,
body .ndk-card-link,
body #to-top {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body .wpb_tabs_nav li a {
  display: block !important;  /* 既存設定を上書きしない */
  min-height: auto;
  padding-top: 0.9em !important;
  padding-bottom: 1.1em !important;
}

/* ---- A3. ::selection ブランドカラー (detail.design) ---- */
::selection {
  background: rgba(25, 69, 165, 0.18);
  color: var(--ink);
}
::-moz-selection {
  background: rgba(25, 69, 165, 0.18);
  color: var(--ink);
}

/* ---- A4. prefers-reduced-motion 明示 (Apple HIG Accessibility) ---- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  html { scroll-behavior: auto !important; }
}

/* ---- A5. スクロールバー (detail.design) ---- */
html {
  scrollbar-width: thin;
  scrollbar-color: rgba(25, 69, 165, 0.35) transparent;
}
html::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
html::-webkit-scrollbar-track {
  background: transparent;
}
html::-webkit-scrollbar-thumb {
  background: rgba(25, 69, 165, 0.35);
  border-radius: 5px;
}
html::-webkit-scrollbar-thumb:hover {
  background: rgba(25, 69, 165, 0.55);
}

/* ---- A6. Apple HIG Depth: subtle shadow (完全 flat ではなく軽い depth) ---- */
body.home .ndk-product-card,
body.home .ndk-catalog-card,
body.home .nectar-recent-posts-single_featured article,
body .ndk-info-card,
body .ndk-feature-card,
body .ndk-form-wrapper {
  box-shadow: 0 1px 2px rgba(13, 45, 110, 0.03), 0 1px 4px rgba(13, 45, 110, 0.04);
}
body.home .ndk-product-card:hover,
body.home .ndk-catalog-card:hover,
body .ndk-info-card:hover {
  box-shadow: 0 3px 8px rgba(13, 45, 110, 0.08), 0 6px 16px rgba(13, 45, 110, 0.06);
}

/* ---- A7. 404 page (Apple HIG Empty State 哲学) ---- */
body.error404 .container.main-content,
body.search-no-results .container.main-content {
  padding: 6rem 2rem !important;
  text-align: center;
  min-height: 60vh;
  min-height: 60dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
body.error404 h1,
body.search-no-results h1 {
  font-size: clamp(4rem, 10vw, 7rem) !important;
  font-weight: 700 !important;
  color: var(--brand) !important;
  margin-bottom: 0.2em !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
}
body.error404 h2,
body.search-no-results h2 {
  font-size: clamp(1.1rem, 2vw, 1.4rem) !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  margin-bottom: 0.8em !important;
}
body.error404 p,
body.search-no-results p {
  font-size: 0.95rem !important;
  color: var(--ink-mute) !important;
  margin-bottom: 2em !important;
}

/* ---- A8. フォーム a11y: required indicator + invalid state ---- */
body .wpcf7 input[type="text"]:focus,
body .wpcf7 input[type="email"]:focus,
body .wpcf7 input[type="tel"]:focus,
body .wpcf7 textarea:focus {
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px rgba(25, 69, 165, 0.1) !important;
}
body .wpcf7 input:invalid:not(:placeholder-shown):not(:focus),
body .wpcf7 textarea:invalid:not(:placeholder-shown):not(:focus) {
  border-color: #dc3545 !important;
}
body .wpcf7 .wpcf7-not-valid-tip {
  font-size: 0.82rem !important;
  color: #dc3545 !important;
  margin-top: 0.4em !important;
}

/* ---- A9. skip-link (keyboard accessibility, Apple HIG) ---- */
.ndk-skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  background: var(--brand);
  color: #fff !important;
  padding: 0.6em 1.2em;
  z-index: 10000;
  text-decoration: none !important;
  font-size: 0.92rem;
  font-weight: 600;
  border-radius: 0 0 6px 0;
  transition: top 0.15s ease-out;
}
.ndk-skip-link:focus {
  top: 0;
  outline: 2px solid #fff;
  outline-offset: -4px;
}

/* ---- A10. print stylesheet (Apple HIG: Adapt to context) ---- */
@media print {
  #header-outer,
  #footer-outer,
  .ndk-cta-dark,
  .ndk-page-hero,
  .ndk-hero,
  .ndk-video-hero,
  #to-top,
  #slide-out-widget-area,
  .wpb_tabs_nav {
    display: none !important;
  }
  body, .container.main-content {
    background: white !important;
    color: black !important;
    font-size: 11pt !important;
    line-height: 1.6 !important;
  }
  body a {
    color: black !important;
    text-decoration: underline !important;
  }
  body img { max-width: 100% !important; page-break-inside: avoid; }
  body h1, body h2, body h3 { page-break-after: avoid; }
  body p, body li { orphans: 3; widows: 3; }
}

/* ---- A11. image lazy loading + aspect-ratio (CLS 防止) ---- */
body .container-wrap img:not(#logo img):not(.slider-video):not(.skip-aspect) {
  height: auto;
  max-width: 100%;
}

/* ---- A12. scroll-top button refinement (Easter Egg / Delight) ---- */
#to-top {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  bottom: 28px !important;
  right: 28px !important;
  box-shadow: 0 4px 12px rgba(13, 45, 110, 0.2) !important;
}
#to-top i {
  font-size: 18px !important;
}

/* ---- A13. smooth scroll (Apple HIG Continuity) ---- */
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
}

/* ---- A14. font-display fallback (Salient theme fonts) ---- */
/* Salient のフォントローダで font-display が swap でなければ、 fallback で text-rendering を最適化 */
body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "palt" 1;  /* 日本語プロポーショナルメトリクス */
}

/* ---- A15. link underline animation (subtle, Apple HIG Deference) ---- */
body .container.main-content a:not(.nectar-button):not(.ndk-btn):not(.ndk-card-link):not(.wpb_tabs_nav a):not([id*="logo"]):hover {
  border-bottom-color: var(--brand) !important;
}

/* ---- A16. tap highlight 透明化 (mobile UX) ---- */
* {
  -webkit-tap-highlight-color: rgba(25, 69, 165, 0.15);
}

/* ---- A17. body 全体の minimum height & 余白 (Apple HIG Layout) ----
   ⚠️ 注意: 100vh は iOS Safari で URL バー変動 → リサイズ → ページ全体揺れ
      の原因となる。 dvh (dynamic viewport height) を優先し、 非対応ブラウザ
      には 100% (親要素 = html) を fallback で渡す。 */
body.page {
  min-height: 100%;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
body.page #ajax-content-wrap {
  flex: 1 0 auto;
}

/* ==================================================================
   ★★★★★ STAR-UP PASS: Clarity / Deference / Depth / Motion /
                           Design / Optimization / Micro / Egg 全強化
   ================================================================== */

/* ---- B1. Clarity: 日本語タイポ徹底最適化 (CJK kerning + palt + 行長制御) ---- */
html { font-size: 16px; }
body,
body .container.main-content {
  font-feature-settings: "palt" 1, "kern" 1, "vpal" 1;
  font-kerning: normal;
  letter-spacing: 0.02em;
  text-justify: inter-character;
  word-break: break-word;
  line-break: strict;
  overflow-wrap: anywhere;
}
body .container.main-content h1,
body .container.main-content h2,
body .container.main-content h3,
body .container.main-content h4 {
  font-feature-settings: "palt" 1, "kern" 1;
  letter-spacing: 0.04em;
  line-height: 1.45;
}
/* 段落 max-width = optimal reading line length (50-75 CJK chars ≒ 38em) */
body .container.main-content p,
body .container.main-content li,
body .container.main-content blockquote {
  max-width: 42em;
  line-height: 1.85;
}
body .container.main-content .ndk-hero-sub,
body .container.main-content .ndk-page-hero-sub,
body .container.main-content .ndk-cta-sub {
  max-width: 42em;
}
/* card / nav 内は max-width 制限を解除 */
body .container.main-content .ndk-product-card-desc,
body .container.main-content .ndk-info-card p,
body .container.main-content .ndk-feature-desc,
body .container.main-content .ndk-catalog-card-desc,
body .container.main-content .wpb_tabs_nav li *,
body .container.main-content table p,
body .container.main-content table li {
  max-width: none;
}

/* ---- B2. Deference: hover transition を 220ms ease-out で統一 ---- */
body .container-wrap a:not(.ndk-skip-link),
body .container-wrap button,
body .container-wrap .nectar-button,
body .container-wrap .ndk-btn,
body .container-wrap .ndk-product-card,
body .container-wrap .ndk-catalog-card,
body .container-wrap .ndk-info-card,
body .container-wrap .ndk-feature-card,
body .container-wrap .nectar-recent-posts-single_featured article {
  transition: color 220ms ease-out, background-color 220ms ease-out,
              border-color 220ms ease-out, box-shadow 280ms ease-out,
              transform 220ms ease-out, opacity 220ms ease-out !important;
}

/* ---- B3. Depth: hover で 2段階 elevation (Apple HIG Depth) ---- */
body.home .ndk-product-card:hover,
body.home .ndk-catalog-card:hover,
body .ndk-info-card:hover,
body .nectar-recent-posts-single_featured article:hover {
  box-shadow:
    0 4px 12px rgba(13, 45, 110, 0.08),
    0 12px 28px rgba(13, 45, 110, 0.10) !important;
  transform: translateY(-2px) !important;
}
@media (prefers-reduced-motion: reduce) {
  body.home .ndk-product-card:hover,
  body.home .ndk-catalog-card:hover,
  body .ndk-info-card:hover,
  body .nectar-recent-posts-single_featured article:hover {
    transform: none !important;
  }
}

/* ---- B4. Depth: hero overlay gradient (光と影の階調) ---- */
body.home .ndk-video-hero-overlay {
  background:
    linear-gradient(180deg,
      rgba(13, 45, 110, 0.45) 0%,
      rgba(13, 45, 110, 0.20) 35%,
      rgba(13, 45, 110, 0.30) 65%,
      rgba(13, 45, 110, 0.65) 100%) !important;
}
body .ndk-hero,
body .ndk-page-hero,
body .ndk-cta-dark {
  position: relative;
  overflow: hidden;
}
body .ndk-hero::after,
body .ndk-page-hero::after,
body .ndk-cta-dark::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at top right,
      rgba(255, 255, 255, 0.06) 0%,
      transparent 50%),
    radial-gradient(ellipse at bottom left,
      rgba(0, 0, 0, 0.08) 0%,
      transparent 50%);
  pointer-events: none;
  z-index: 0;
}
body .ndk-hero > *,
body .ndk-page-hero > *,
body .ndk-cta-dark > * {
  position: relative;
  z-index: 1;
}

/* ---- B5. Motion: micro-interaction (button hover で -1px translate) ---- */
body a.ndk-btn:hover,
body .container-wrap a.nectar-button:hover,
body a.ndk-btn:focus-visible,
body .container-wrap a.nectar-button:focus-visible {
  transform: translateY(-1px);
}
body a.ndk-btn:active,
body .container-wrap a.nectar-button:active {
  transform: translateY(0);
  transition-duration: 80ms !important;
}
@media (prefers-reduced-motion: reduce) {
  body a.ndk-btn:hover,
  body .container-wrap a.nectar-button:hover {
    transform: none !important;
  }
}

/* ---- B6. Motion: subtle link underline animation (Apple 公式風) ---- */
body .container.main-content a:not(.nectar-button):not(.ndk-btn):not(.ndk-card-link):not(.wpb_tabs_nav a):not([id*="logo"]):not(.ndk-skip-link) {
  position: relative;
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0% 1px;
  transition: background-size 280ms cubic-bezier(0.4, 0, 0.2, 1), color 220ms ease-out !important;
  border-bottom: none !important;
}
body .container.main-content a:not(.nectar-button):not(.ndk-btn):not(.ndk-card-link):not(.wpb_tabs_nav a):not([id*="logo"]):not(.ndk-skip-link):hover,
body .container.main-content a:not(.nectar-button):not(.ndk-btn):not(.ndk-card-link):not(.wpb_tabs_nav a):not([id*="logo"]):not(.ndk-skip-link):focus-visible {
  background-size: 100% 1px;
}
@media (prefers-reduced-motion: reduce) {
  body .container.main-content a:not(.nectar-button):not(.ndk-btn):not(.ndk-card-link):not(.wpb_tabs_nav a):not([id*="logo"]):not(.ndk-skip-link) {
    background-size: 0 1px !important;
    border-bottom: 1px solid transparent !important;
    transition: border-color 200ms !important;
  }
  body .container.main-content a:not(.nectar-button):not(.ndk-btn):not(.ndk-card-link):not(.wpb_tabs_nav a):not([id*="logo"]):not(.ndk-skip-link):hover {
    border-bottom-color: currentColor !important;
  }
}

/* ---- B7. Design: token 厳密化 (radius / shadow / spacing 完全統一) ---- */
:root {
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;
  --shadow-xs: 0 1px 2px rgba(13, 45, 110, 0.04);
  --shadow-sm: 0 1px 2px rgba(13, 45, 110, 0.03), 0 1px 4px rgba(13, 45, 110, 0.04);
  --shadow-md: 0 2px 6px rgba(13, 45, 110, 0.06), 0 6px 16px rgba(13, 45, 110, 0.06);
  --shadow-lg: 0 4px 12px rgba(13, 45, 110, 0.08), 0 12px 28px rgba(13, 45, 110, 0.10);
  --shadow-xl: 0 8px 20px rgba(13, 45, 110, 0.10), 0 20px 48px rgba(13, 45, 110, 0.14);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}
/* 全 card 系の radius / shadow を統一 */
body.home .ndk-product-card,
body.home .ndk-catalog-card,
body .ndk-info-card,
body .ndk-feature-card,
body .ndk-form-wrapper,
body .nectar-recent-posts-single_featured article {
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-sm);
}

/* ---- B8. Optimization: above-the-fold image eager + hero priority ---- */
body.home .ndk-video-hero .ndk-hero-video,
body img.skip-aspect,
body img[fetchpriority="high"],
body #header-outer #logo img {
  /* これらは eager loading 必須(LCP 重要) */
}

/* ---- B9. Optimization: font-display swap (Salient 標準フォント補助) ---- */
@font-face {
  font-family: "Hiragino Kaku Gothic ProN";
  font-display: swap;
}

/* ---- B10. Micro-copy: 404 page を完成度高く + ホームへ戻る CTA ---- */
body.error404 .container.main-content::before {
  content: "";
  display: block;
  width: 80px;
  height: 4px;
  background: var(--brand);
  margin: 0 auto 2em;
  border-radius: var(--radius-full);
}
body.error404 .container.main-content::after {
  content: "ホームへ戻る  →";
  display: inline-block;
  margin-top: 2em;
  padding: 0.85em 2.4em;
  background: var(--brand);
  color: #fff;
  border-radius: var(--radius-md);
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 220ms ease-out, transform 220ms ease-out;
}
body.error404 .container.main-content:hover::after {
  background: var(--brand-dark);
  transform: translateY(-1px);
}

/* ---- B11. Micro-copy: フォーム送信状態 (loading / success / error) ---- */
body .wpcf7 .wpcf7-spinner {
  background: var(--brand) !important;
  opacity: 0.7;
}
body .wpcf7 .wpcf7-response-output {
  border: 1.5px solid var(--brand) !important;
  border-radius: var(--radius-md) !important;
  padding: 1em 1.4em !important;
  font-size: 0.95rem !important;
  margin: 1.5em 0 0 !important;
}
body .wpcf7 form.sent .wpcf7-response-output {
  border-color: #2d8f3d !important;
  background: #f0f9f1;
  color: #1f6b2b;
}
body .wpcf7 form.invalid .wpcf7-response-output,
body .wpcf7 form.failed .wpcf7-response-output {
  border-color: #dc3545 !important;
  background: #fdf3f4;
  color: #a52229;
}

/* ---- B12. Easter Egg: SVG ロゴに subtle 微回転 (hover 時のみ + reduced-motion 配慮) ---- */
body #header-outer #logo img {
  transition: filter 220ms ease-out;
}
body #header-outer #logo:hover img {
  filter: brightness(1.05);
}
/* console message + body data attribute は functions.php で */


/* ---- B14. Design: section 間 subtle separator (Apple 公式風) ---- */
body.home .ndk-section + .ndk-section,
body .ndk-content-wrap > .vc_row.full-width-section + .vc_row.full-width-section {
  position: relative;
}
body.home .ndk-section.ndk-bg-white + .ndk-section.ndk-bg-soft::before,
body.home .ndk-section.ndk-bg-soft + .ndk-section.ndk-bg-white::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 1px;
  background: var(--line);
}

/* ---- B15. Clarity: heading に subtle uppercase tracking ---- */
body .ndk-caption,
body .ndk-info-card-label,
body .ndk-feature-num {
  font-variant-numeric: tabular-nums;
}

/* ---- B16. Depth: video hero に subtle vignette ---- */
body.home .ndk-video-hero {
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.05);
}

/* ---- B17. Optimization: contain layout for performance ---- */
body.home .ndk-product-card,
body.home .ndk-catalog-card,
body .ndk-info-card,
body .ndk-feature-card {
  contain: layout style;
}

/* ---- B18. Easter Egg: nav menu link に subtle hover indicator (下線が伸びる) ---- */
#header-outer nav > ul > li > a {
  position: relative;
}
#header-outer nav > ul > li > a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--brand);
  transform: translateX(-50%);
  transition: width 240ms cubic-bezier(0.16, 1, 0.3, 1);
}
#header-outer nav > ul > li > a:hover::after,
#header-outer nav > ul > li.current-menu-item > a::after,
#header-outer nav > ul > li.current_page_item > a::after {
  width: 60%;
}
@media (prefers-reduced-motion: reduce) {
  #header-outer nav > ul > li > a::after { transition: none !important; }
}

/* =================================================================
   PAGE SPECIFIC
   ================================================================= */


/* ---------- 拠点ページ(factory/iwate/oyama/mac)の最下部余白 + 縦長画像対策 ---------- */
/* 最後の row の padding-bottom 70px を削除 + 縦長画像を縮小して表示 */
body.page-id-46 .container.main-content > .row > .wpb_row.full-width-section:last-of-type,
body.page-id-39 .container.main-content > .row > .wpb_row.full-width-section:last-of-type,
body.page-id-29 .container.main-content > .row > .wpb_row.full-width-section:last-of-type,
body.page-id-19 .container.main-content > .row > .wpb_row.full-width-section:last-of-type {
  padding-bottom: 1em !important;
}
/* 拠点ページの縦長 設備表画像 (natH > 1000) を container 全幅 + 高さ自由 で読みやすく */
body.page-id-46 .container.main-content img.skip-lazy,
body.page-id-39 .container.main-content img.skip-lazy,
body.page-id-29 .container.main-content img.skip-lazy,
body.page-id-19 .container.main-content img.skip-lazy {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

/* ---------- /warranty/(page-id-534) ---------- */
/* the_content filter で挿入される ndk-page-hero と重複するため、 元の VC row 黒帯は非表示 */
body.page-id-534 .ndk-content-wrap > .vc_row.top-level,
body.page-id-534 .ndk-content-wrap > .wpb_row.top-level {
  display: none !important;
}

/* 「第N条(○○)」見出しを 34px → 20px に縮小、 navy + 左ボーダー */
body.page-id-534 .container.main-content h2.vc_custom_heading {
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  color: var(--brand) !important;
  line-height: 1.5 !important;
  padding: 0.4em 0 0.4em 0.8em !important;
  margin: 1.6em 0 0.8em !important;
  border-left: 4px solid var(--brand) !important;
  background: linear-gradient(90deg, rgba(25, 69, 165, 0.06) 0%, rgba(25, 69, 165, 0) 75%) !important;
  letter-spacing: 0.02em !important;
}
body.page-id-534 .container.main-content p {
  font-size: 0.95rem;
  line-height: 1.9;
  color: var(--ink-soft);
  margin-bottom: 0.5em;
}
body.page-id-534 .container.main-content ul {
  padding-left: 0.5em;
  margin: 0.6em 0 1.2em;
  list-style: none;
}
body.page-id-534 .container.main-content ul > li {
  font-size: 0.95rem;
  line-height: 1.9;
  margin-bottom: 0.5em;
  color: var(--ink-soft);
  position: relative;
  padding-left: 1.3em;
  list-style: none;
}
body.page-id-534 .container.main-content ul > li::before {
  content: "";
  position: absolute;
  left: 0.2em;
  top: 0.75em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
}
body.page-id-534 .container.main-content > .row > .wpb_row.top-level,
body.page-id-534 .container.main-content > .row > .wpb_row.top-level .row-bg-wrap,
body.page-id-534 .container.main-content > .row > .wpb_row.top-level .row-bg,
body.page-id-534 .container.main-content > .row > .wpb_row.top-level .inner-wrap {
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%) !important;
}
body.page-id-534 .container.main-content > .row > .wpb_row.top-level {
  padding-top: 4% !important;
  padding-bottom: 4% !important;
  margin: 0 !important;
}
body.page-id-534 .container.main-content > .row > .wpb_row.top-level h2.vc_custom_heading {
  display: block !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W6", "Yu Gothic", sans-serif !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-align: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: none !important;
  line-height: 1.5 !important;
}
body.page-id-534 .container.main-content > .row > .wpb_row.top-level .wpb_wrapper > h2.vc_custom_heading::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: rgba(255, 255, 255, 0.7);
  margin: 0.8em auto 0;
}
body.page-id-534 .container.main-content > .row > .wpb_row:nth-child(3) {
  padding-top: 2em !important;
  padding-bottom: 0.8em !important;
}
body.page-id-534 .container.main-content > .row > .wpb_row:nth-child(3) p.vc_custom_heading,
body.page-id-534 .container.main-content > .row > .wpb_row:nth-child(3) h2.vc_custom_heading {
  font-size: 0.92rem !important;
  font-weight: 400 !important;
  color: #444 !important;
  line-height: 1.95 !important;
  border-left: none !important;
  background: none !important;
  padding: 0 !important;
  margin: 0.2em 0 !important;
  letter-spacing: 0.01em !important;
  text-align: left !important;
}
body.page-id-534 .container.main-content > .row > .wpb_row:nth-child(n+4) {
  padding-top: 2em !important;
  padding-bottom: 1.4em !important;
}
body.page-id-534 .container.main-content > .row > .wpb_row:nth-child(n+4) h2.vc_custom_heading {
  font-size: 1.3rem !important;
  font-weight: 600 !important;
  color: var(--brand) !important;
  line-height: 1.6 !important;
  padding: 0.5em 0 0.5em 0.85em !important;
  margin: 0 0 1em !important;
  border-left: 4px solid var(--brand) !important;
  background: linear-gradient(90deg, rgba(25, 69, 165, 0.06) 0%, rgba(25, 69, 165, 0) 75%) !important;
  letter-spacing: 0.02em !important;
}
body.page-id-534 .container.main-content p {
  font-size: 0.92rem;
  line-height: 1.95;
  color: #333;
  margin-bottom: 0.55em;
}
body.page-id-534 .container.main-content ul {
  padding-left: 0.5em !important;
  margin: 0.6em 0 1.2em !important;
  list-style: none !important;
}
body.page-id-534 .container.main-content ul > li {
  font-size: 0.92rem !important;
  line-height: 1.95 !important;
  margin-bottom: 0.6em !important;
  color: #333 !important;
  position: relative !important;
  padding-left: 1.4em !important;
  list-style: none !important;
}
body.page-id-534 .container.main-content ul > li::marker {
  content: "" !important;
  display: none !important;
}
body.page-id-534 .container.main-content ul > li::before {
  content: "" !important;
  position: absolute !important;
  left: 0.2em !important;
  top: 0.78em !important;
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  background: var(--brand) !important;
  display: block !important;
}
@media (max-width: 768px) {
  body.page-id-534 .container.main-content > .row > .wpb_row.top-level h2.vc_custom_heading {
    font-size: 1.5rem !important;
    letter-spacing: 0.08em !important;
  }
  body.page-id-534 .container.main-content > .row > .wpb_row:nth-child(n+4) h2.vc_custom_heading {
    font-size: 1.1rem !important;
  }
}

/* =================================================================
   レスポンシブ
   ================================================================= */
@media (max-width: 999px) {
  body.home .ndk-hero-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  body.home .ndk-hero-stats {
    flex-direction: row;
    justify-content: space-around;
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    padding-left: 0;
    padding-top: 1.8em;
    gap: 1em;
  }
  body.home .ndk-stat {
    align-items: center;
  }
  body.home .ndk-products-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
  }
  body.home .ndk-catalog-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  body.home .nectar-recent-posts-single_featured .col,
  body.home .nectar-recent-posts-multiple_featured .col {
    flex: 1 1 50%;
    max-width: 50%;
  }
}
@media (max-width: 640px) {
  body.home .ndk-hero {
    padding: 2rem 0 !important;
  }
  body.home .ndk-section,
  body.home .ndk-cta-dark {
    padding: 2rem 0 !important;
  }
  body.home .ndk-products-grid {
    grid-template-columns: 1fr;
  }
  body.home .nectar-recent-posts-single_featured .col,
  body.home .nectar-recent-posts-multiple_featured .col {
    flex: 1 1 100%;
    max-width: 100%;
  }
}


/* ============================================================
   HEADER: X (旧 Twitter) 公式アカウント アイコン
   ============================================================ */
#header-outer .sf-menu > li.menu-item-ndk-x,
.slide-out-from-right .menu-item-ndk-x {
  display: inline-flex;
  align-items: center;
}
#header-outer .sf-menu > li.menu-item-ndk-x > a,
.slide-out-from-right .menu-item-ndk-x > a {
  display: inline-flex !important;
  align-items: center;
  padding: 0 0.9em !important;
  line-height: 1 !important;
  color: var(--ink-soft);
  transition: color 0.2s ease;
}
#header-outer .sf-menu > li.menu-item-ndk-x > a svg,
.slide-out-from-right .menu-item-ndk-x > a svg {
  width: 18px;
  height: 18px;
  display: block;
  color: inherit;
}
#header-outer .sf-menu > li.menu-item-ndk-x > a:hover,
.slide-out-from-right .menu-item-ndk-x > a:hover {
  color: var(--brand);
}
#header-outer .sf-menu > li.menu-item-ndk-x > a::before,
#header-outer .sf-menu > li.menu-item-ndk-x > a::after,
.slide-out-from-right .menu-item-ndk-x > a::before,
.slide-out-from-right .menu-item-ndk-x > a::after {
  content: none !important;
  display: none !important;
}
.menu-item-ndk-x .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ============================================================
   CTA sub / hero sub などの本文系で中黒「・」が palt メトリクスで詰まりすぎる問題の補正
   - palt を kern のみに置き換えて中黒前後の半角詰めを解除
   - 微弱な letter-spacing で B2B らしい読みやすさに
   ============================================================ */
body .ndk-cta-sub,
body .ndk-hero-sub,
body .ndk-page-hero-sub,
body .ndk-video-hero-sub,
body .ndk-cta-title,
body .ndk-page-hero-title,
body .ndk-faq-section,
body .ndk-faq-section dt,
body .ndk-faq-section dd,
body .ndk-related-section,
body .ndk-product-cta,
body .ndk-sales-notice {
  font-feature-settings: "kern" !important;
  letter-spacing: 0.04em !important;
}

/* ============================================================
   HEADER: 左右壁際にロゴ/X アイコンが張り付くのを防ぐ余白
   ============================================================ */
#header-outer #top > .container,
#header-outer #top .container {
  padding-left: clamp(1.25rem, 3vw, 2.5rem) !important;
  padding-right: clamp(1.25rem, 3vw, 2.5rem) !important;
  box-sizing: border-box;
}
/* mobile-only ヘッダーも対応 */
@media (max-width: 999px) {
  #header-outer #top > .container,
  #header-outer #top .container {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
}

/* ============================================================
   home: NEWS / FEATURED PRODUCTS / CATALOG セクションの余白圧縮
   - section padding: 77px → 32-56px
   - section-title margin-bottom: 57.5px → 20-32px
   - section-more (すべて見る) 周り: 56px → 16-28px
   ============================================================ */
body.home .ndk-section {
  padding-top: clamp(2rem, 4vw, 3.5rem) !important;
  padding-bottom: clamp(2rem, 4vw, 3.5rem) !important;
}
body.home .ndk-section .ndk-caption,
body.home .ndk-section .ndk-caption-brand {
  margin: 0 0 0.7em !important;
}
body.home .ndk-section-title,
body.home .container.main-content .ndk-section .ndk-section-title {
  margin-top: 0 !important;
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem) !important;
}
body.home .ndk-section-more {
  margin-top: clamp(1rem, 2vw, 1.75rem) !important;
  margin-bottom: 0 !important;
}

/* ============================================================
   Salient default の .container-wrap (#f8f8f8) が ndk-page-hero と
   viewport 端の間に「薄いグレー帯」として見える問題の解消。
   ============================================================ */
body .container-wrap,
body.ascend .container-wrap,
body.material .container-wrap {
  background-color: #ffffff !important;
}

/* ============================================================
   .nectar-video-box (Salient の動画 lightbox 用 box) の中央配置 + img full cover
   - 再生 ▶︎ ボタンを 中央配置 (デフォルトの relative 配置 → absolute center)
   - poster img を box 全体に object-fit: cover で展開(下の白い余白を解消)
   ============================================================ */
body .nectar-video-box {
  position: relative;
}
body .nectar-video-box .inner-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  display: block;
}
body .nectar-video-box img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  margin: 0 !important;
}
body .nectar-video-box .play_button_2,
body .nectar-video-box a.nectar_video_lightbox.play_button_2,
body .nectar-video-box a.nectar_video_lightbox {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  z-index: 5;
}
/* "動画" ラベル も box 内 absolute に */
body .nectar-video-box .nectar-video-box-eyebrow,
body .nectar-video-box [class*="eyebrow"],
body .nectar-video-box-label {
  position: absolute;
  top: 1em;
  left: 1em;
  z-index: 6;
}

/* ============================================================
   /products/ndte/ (page-id-136) の 画像+テキスト 2-col row 上下中央揃え
   - row に flex + align-items: center で 画像とテキストを縦中央に
   - 画像 column の column-inner に padding を入れて壁から離す
   ============================================================ */
body.page-id-136 .ndk-content-wrap .vc_row.full-width-section.has-row-bg-color > .row_col_wrap_12 {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center !important;
  width: 100%;
}
body.page-id-136 .ndk-content-wrap .vc_row.full-width-section.has-row-bg-color .vc_col-sm-6 {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
}
body.page-id-136 .ndk-content-wrap .vc_row.full-width-section.has-row-bg-color .vc_col-sm-6 .vc_column-inner {
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}

/* ============================================================
   サイドバー widget の見出しを適度なサイズに (h2 巨大化を防止)
   /category/news/ のサイドバー 「最近の投稿」 等
   ============================================================ */
body .widget-area h2,
body #sidebar h2,
body .blog-sidebar h2,
body .container.main-content .wp-block-group h2,
body .container.main-content .widget h2,
body .container.main-content aside h2 {
  font-size: clamp(1.15rem, 1.5vw, 1.4rem) !important;
  font-weight: 700 !important;
  margin: 0 0 0.7em !important;
  line-height: 1.3 !important;
  letter-spacing: 0.01em !important;
  color: var(--ink) !important;
}
/* 念のため block widget 内の見出しも */
body .wp-block-group .wp-block-heading,
body .wp-block-group h2.wp-block-heading {
  font-size: clamp(1.15rem, 1.5vw, 1.4rem) !important;
  font-weight: 700 !important;
  margin: 0 0 0.7em !important;
}
/* 「最近のコメント」 widget は CSS でも非表示(保険) */
body .widget_recent_comments,
body .wp-block-latest-comments,
body .wp-block-group:has(.wp-block-latest-comments) {
  display: none !important;
}

/* ============================================================
   /category/news/ 等 アーカイブ系ページの サイドバー全体非表示。
   メイン content を span_12 で 全幅展開。
   ============================================================ */
body.archive #sidebar,
body.category #sidebar,
body.blog #sidebar,
body.single-post #sidebar,
body.archive .blog-sidebar,
body.category .blog-sidebar,
body.blog .blog-sidebar,
body.single-post .blog-sidebar,
body.archive aside.span_4,
body.category aside.span_4,
body.archive aside.col.span_4,
body.category aside.col.span_4 {
  display: none !important;
}
/* 本文 col (post-area / span_9) を全幅に */
body.archive .container.main-content .post-area,
body.category .container.main-content .post-area,
body.blog .container.main-content .post-area,
body.single-post .container.main-content .post-area,
body.archive .container.main-content .col.span_9,
body.category .container.main-content .col.span_9,
body.blog .container.main-content .col.span_9,
body.single-post .container.main-content .col.span_9 {
  width: 100% !important;
  flex: 1 1 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin-right: 0 !important;
}

/* ============================================================
   #header-outer の box-shadow が「長い横線」として見える問題を解消
   ============================================================ */
body #header-outer,
body.ascend #header-outer,
body.material #header-outer,
body #header-outer.scrolled-down,
body.ascend #header-outer.scrolled-down {
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  border-bottom: none !important;
}

/* ============================================================
   投稿詳細 (.row.heading-title.hentry) の薄いグレー border-bottom を削除
   = 「ヘッダー下に長い横線」が見える問題を解消
   ============================================================ */
body .row.heading-title,
body .row.heading-title.hentry,
body .container.main-content .row.heading-title {
  border-bottom: none !important;
  border-top: none !important;
}

/* ============================================================
   Salient の .row.page-header-no-bg / page-header の薄いグレー帯を解消
   /products/ /company/ /company/recruit/ 等で ヘッダー直下に現れる #f8f8f8 帯
   ============================================================ */
body .row.page-header-no-bg,
body .row.page-header,
body .container.main-content .row.page-header-no-bg,
body .container.main-content .row.page-header {
  background-color: transparent !important;
  background: transparent !important;
  border: none !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ============================================================
   パンくず (Home » xxx) を全ページで非表示
   = Yoast 出力 + Salient の page-header 内の breadcrumb
   ============================================================ */
body #breadcrumbs,
body p#breadcrumbs,
body p.yoast,
body .row.page-header-no-bg p.yoast,
body .row.page-header-no-bg #breadcrumbs,
body .container.main-content #breadcrumbs,
body .container.main-content p.yoast,
body .breadcrumbs,
body .row.page-header-no-bg .col {
  display: none !important;
}

/* ============================================================
   全ページ下部の過剰余白を圧縮(/company/recruit/ の 180px 空白対策)
   ============================================================ */
body .ndk-content-wrap {
  padding-bottom: 1.5rem !important;
}
body .ndk-content-wrap > .vc_row:last-child,
body .ndk-content-wrap > .wpb_row:last-child,
body .container.main-content > .row > .col > .vc_row:last-child,
body .container.main-content > .row > .col > .wpb_row:last-child {
  padding-bottom: 0.5rem !important;
}
body .container-wrap {
  padding-bottom: 1rem !important;
}

/* ============================================================
   拠点ページ(factory/iwate/oyama/mac)の Google Map が
   .full-width-content row の幅計算狂いで viewport 右半分から始まる問題を解消
   ============================================================ */
body.page-id-46 .ndk-content-wrap .vc_row.full-width-content,
body.page-id-39 .ndk-content-wrap .vc_row.full-width-content,
body.page-id-29 .ndk-content-wrap .vc_row.full-width-content,
body.page-id-19 .ndk-content-wrap .vc_row.full-width-content,
body.page-id-46 .ndk-content-wrap .vc_row.full-width-content > .row_col_wrap_12,
body.page-id-39 .ndk-content-wrap .vc_row.full-width-content > .row_col_wrap_12,
body.page-id-29 .ndk-content-wrap .vc_row.full-width-content > .row_col_wrap_12,
body.page-id-19 .ndk-content-wrap .vc_row.full-width-content > .row_col_wrap_12 {
  left: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* Map iframe / canvas は親 column 100% に */
body.page-id-46 .nectar-google-map,
body.page-id-39 .nectar-google-map,
body.page-id-29 .nectar-google-map,
body.page-id-19 .nectar-google-map {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

body .map-marker img {
  max-width: 64px !important;
  height: auto !important;
  display: inline-block !important;
  margin: 0 auto 6px !important;
}
body .map-marker strong,
body .map-marker b {
  display: block;
  color: var(--brand) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
/* × close ボタンを縮小 */
body .map-marker .close-info,
body .map-marker .close,
body .map-marker .close-btn,
body .map-marker [class*="close"],
body .map-marker svg.close {
  width: 16px !important;
  height: 16px !important;
  font-size: 12px !important;
  top: 8px !important;
  right: 8px !important;
  opacity: 0.6;
}
body .map-marker [class*="close"]:hover {
  opacity: 1;
}





/* ============================================================
   Salient nectar-google-map: Map 下に出る拠点リスト (.map-marker-list)
   のみを安全に非表示(.gm-style 配下の Google Maps SDK には触れない)
   ============================================================ */
body div[class*="map_"][class*=" map-marker-list"]:not(.gm-style):not(.gm-style *) {
  display: none !important;
}

/* ============================================================
   nectar-google-map: 不要な Google Maps controls を非表示
   (全画面 / カメラコントロール / 回転 / 傾き)
   zoom +/- だけ残す
   ============================================================ */
body .nectar-google-map .gm-fullscreen-control,
body .nectar-google-map .gm-control-active[title*="カメラ"],
body .nectar-google-map .gm-control-active[title*="回転"],
body .nectar-google-map .gm-control-active[title*="傾"],
body .nectar-google-map .gm-tilt {
  display: none !important;
}

/* ============================================================
   nectar-google-map: Google Maps 全 controls (+/-/全画面/カメラ/回転) を
   完全非表示 → 純粋な Map canvas + マーカーだけ表示
   ============================================================ */
body .nectar-google-map .gm-bundled-control,
body .nectar-google-map .gm-bundled-control-on-bottom,
body .nectar-google-map .gm-control-active,
body .nectar-google-map .gm-fullscreen-control,
body .nectar-google-map .gmnoprint {
  display: none !important;
}

/* ============================================================
   /company/ (page-id-13) 下部 拠点紹介 2-col layout
   - row の row_col_wrap_12 に align-items: stretch で col 高さ揃え
   - 画像 column の column-inner padding を 0 にして画像を全幅・全高に
   - 画像は object-fit: cover で 余白なく
   - テキスト column は通常通り column-inner padding 維持
   ============================================================ */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color > .row_col_wrap_12 {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  min-height: 0 !important;
}
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 {
  display: flex !important;
  flex: 1 1 50% !important;
}
/* 画像 column の column-inner: padding 0、 子要素を 100% 充填 */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_column-inner:has(img),
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_column-inner:has(.img-with-aniamtion-wrap),
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_column-inner:has(.img-with-animation-wrap),
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_column-inner:has(.wpb_single_image) {
  padding: 0 !important;
  height: 100% !important;
  display: flex !important;
  align-items: stretch;
}
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_column-inner:has(img) .wpb_wrapper,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_column-inner:has(.wpb_single_image) .wpb_wrapper {
  width: 100% !important;
  margin: 0 !important;
}
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
}
/* テキスト column の column-inner 上下 padding を揃える */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:not(:has(img)) .vc_column-inner,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:not(:has(.wpb_single_image)) .vc_column-inner {
  padding: 2.5em 2.5em !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* row-bg-wrap (グレーバック) はそのまま、 ただし 全幅 */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .row-bg-wrap {
  width: 100% !important;
}

/* ============================================================
   page-id-13 拠点紹介: img を col 全幅・全高に確実に cover
   - :has() でなく column 内全要素を chain で 100% 化
   ============================================================ */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_column-inner,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_column-inner > .wpb_wrapper {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .img-with-aniamtion-wrap,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .img-with-animation-wrap,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .wpb_single_image,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 .vc_single_image-wrapper,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 figure {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block;
}
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  margin: 0 !important;
  display: block !important;
}
/* 画像 column 全体 (column-inner) の padding を 0 に、 ただしテキスト column の column-inner には padding を残す。
   画像がある column を特定: nth-child / class でなく、 すべての column-inner padding を 0 にして、
   テキスト column 側で個別に padding を復元する代替戦略 */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 > .vc_column-inner {
  padding: 0 !important;
}
/* テキスト column のみ復元: テキスト column は img を含まない。
   selector: vc_col-sm-6 で img を子孫に持たない column の column-inner */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:not(:has(img)) > .vc_column-inner {
  padding: 2.5em 2.5em !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ============================================================
   /company/ page-id-13 拠点 row: image を absolute で col 全体 cover
   = VC の column-inner padding 40px に左右されず image を 100% 充填
   ============================================================ */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6 {
  position: relative !important;
  overflow: hidden;
}
/* 画像 column を特定: img を子孫に持つ vc_col-sm-6 だけ image wrapper を absolute fill */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) > .vc_column-inner {
  padding: 0 !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) > .vc_column-inner > .wpb_wrapper,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .img-with-aniamtion-wrap,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .wpb_single_image,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .vc_single_image-wrapper,
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) figure {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

/* ============================================================
   page-id-13 拠点 img を column 全体に absolute fill
   (column-inner の padding 40px を完全に bypass)
   ============================================================ */
body.page-id-13 .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

/* ============================================================
   page-id-13 拠点 img の全 wrapper chain を 100%x100% に揃えて
   img が col 全体を cover で埋めるように
   - .vc_column-inner / .wpb_wrapper / .img-with-aniamtion-wrap / .inner
     / .hover-wrap / .hover-wrap-inner すべて size 100%
   - img は position: static + object-fit: cover で全幅・全高
   - .container.main-content prefix で specificity を上げて padding 40px に勝つ
   ============================================================ */
body.page-id-13 .container.main-content .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .vc_column-inner {
  padding: 0 !important;
  position: static !important;
}
body.page-id-13 .container.main-content .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .vc_column-inner,
body.page-id-13 .container.main-content .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .wpb_wrapper,
body.page-id-13 .container.main-content .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .img-with-aniamtion-wrap,
body.page-id-13 .container.main-content .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .inner,
body.page-id-13 .container.main-content .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .hover-wrap,
body.page-id-13 .container.main-content .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) .hover-wrap-inner {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}
body.page-id-13 .container.main-content .wpb_row.full-width-content.has-row-bg-color .vc_col-sm-6:has(img) img {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

/* ============================================================
   /company/ page-id-13 ごあいさつ 代表者写真の card 風装飾を解除
   - Salient hover-wrap の border-radius / box-shadow / background を無効化
   - 画像と col 高さの隙間 (129px) を圧縮
   ============================================================ */
body.page-id-13 .wpb_row.full-width-section.has-row-bg-color .vc_col-sm-4 .hover-wrap,
body.page-id-13 .wpb_row.full-width-section.has-row-bg-color .vc_col-sm-4 .hover-wrap-inner,
body.page-id-13 .wpb_row.full-width-section.has-row-bg-color .vc_col-sm-4 .img-with-aniamtion-wrap,
body.page-id-13 .wpb_row.full-width-section.has-row-bg-color .vc_col-sm-4 .wpb_single_image {
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  border: none !important;
  margin: 0 !important;
}
body.page-id-13 .wpb_row.full-width-section.has-row-bg-color .vc_col-sm-4 img {
  border-radius: 0 !important;
  box-shadow: none !important;
  border: none !important;
}
/* ごあいさつ写真 col の余分な下余白を縮める */
body.page-id-13 .wpb_row.full-width-section.has-row-bg-color .vc_col-sm-4 .vc_column-inner {
  padding-bottom: 0.5em !important;
}

/* ============================================================
   拠点ページ (factory/iwate/oyama/mac) の row 間余白・list 項目間を圧縮
   ============================================================ */
body.page-id-46 .ndk-content-wrap .wpb_row.inner_row,
body.page-id-39 .ndk-content-wrap .wpb_row.inner_row,
body.page-id-29 .ndk-content-wrap .wpb_row.inner_row,
body.page-id-19 .ndk-content-wrap .wpb_row.inner_row {
  padding-top: 1em !important;
  padding-bottom: 0.5em !important;
  margin-bottom: 0 !important;
}
body.page-id-46 .ndk-content-wrap .wpb_row + .wpb_row,
body.page-id-39 .ndk-content-wrap .wpb_row + .wpb_row,
body.page-id-29 .ndk-content-wrap .wpb_row + .wpb_row,
body.page-id-19 .ndk-content-wrap .wpb_row + .wpb_row {
  margin-top: 0 !important;
  padding-top: 0.5em !important;
}
/* fancy リスト項目間を詰める */
body.page-id-46 .ndk-content-wrap ul li,
body.page-id-39 .ndk-content-wrap ul li,
body.page-id-29 .ndk-content-wrap ul li,
body.page-id-19 .ndk-content-wrap ul li {
  margin-bottom: 0.3em !important;
  margin-top: 0 !important;
  line-height: 1.6 !important;
}
/* nectar-animated-title (「塗装設備」紺タグ) 上余白 */
body.page-id-46 .nectar-animated-title,
body.page-id-39 .nectar-animated-title,
body.page-id-29 .nectar-animated-title,
body.page-id-19 .nectar-animated-title {
  margin-top: 0.5em !important;
  margin-bottom: 0.5em !important;
}

/* ============================================================
   拠点ページ tabbed_section の全タブ強制 visible 状態で
   タブ間の上下余白を完全に圧縮(無駄な空白を消す)
   ============================================================ */
body.page-id-19 .wpb_tab,
body.page-id-46 .wpb_tab,
body.page-id-39 .wpb_tab,
body.page-id-29 .wpb_tab {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.page-id-19 .wpb_tab .wpb_row,
body.page-id-46 .wpb_tab .wpb_row,
body.page-id-39 .wpb_tab .wpb_row,
body.page-id-29 .wpb_tab .wpb_row {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0.3em !important;
  padding-bottom: 0.3em !important;
}
body.page-id-19 .wpb_tab .wpb_column,
body.page-id-46 .wpb_tab .wpb_column,
body.page-id-39 .wpb_tab .wpb_column,
body.page-id-29 .wpb_tab .wpb_column,
body.page-id-19 .wpb_tab .vc_column-inner,
body.page-id-46 .wpb_tab .vc_column-inner,
body.page-id-39 .wpb_tab .vc_column-inner,
body.page-id-29 .wpb_tab .vc_column-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.page-id-19 .wpb_tab .nectar-fancy-ul,
body.page-id-46 .wpb_tab .nectar-fancy-ul,
body.page-id-39 .wpb_tab .nectar-fancy-ul,
body.page-id-29 .wpb_tab .nectar-fancy-ul,
body.page-id-19 .wpb_tab ul,
body.page-id-46 .wpb_tab ul,
body.page-id-39 .wpb_tab ul,
body.page-id-29 .wpb_tab ul {
  margin: 0 !important;
}

/* ============================================================
   page-id-19 mac: tab content 〜 「塗装設備」セクション間の余白を圧縮
   ============================================================ */
body.page-id-19 .ndk-content-wrap .wpb_tabs,
body.page-id-19 .ndk-content-wrap .vc_tta-tabs,
body.page-id-19 .ndk-content-wrap [class*=ui-tabs] {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
body.page-id-19 .ndk-content-wrap .wpb_row.full-width-section.has-row-bg-color {
  padding-top: 0.5em !important;
}
body.page-id-19 .ndk-content-wrap .wpb_row.full-width-section.has-row-bg-color .vc_column-inner {
  padding-top: 0.5em !important;
}

/* ============================================================
   page-id-19 mac: 塗装設備セクション(nectar-animated-title 含む)上余白を強制圧縮
   tab content 終了 → 次セクション 表示まで gap 107px → ~30px 目標
   ============================================================ */
body.page-id-19 .ndk-content-wrap .wpb_row.full-width-section.has-row-bg-color,
body.page-id-19 .ndk-content-wrap .wpb_row.full-width-section.has-row-bg-color > .row_col_wrap_12,
body.page-id-19 .ndk-content-wrap .wpb_row.full-width-section.has-row-bg-color .vc_column-inner {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
body.page-id-19 .ndk-content-wrap .nectar-animated-title {
  margin-top: 0 !important;
  padding-top: 0.5em !important;
  margin-bottom: 0.5em !important;
}
/* tabs 直後の row top margin もカット */
body.page-id-19 .ndk-content-wrap .wpb_tabs + .wpb_row,
body.page-id-19 .ndk-content-wrap .ui-tabs + .wpb_row {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ============================================================
   拠点ページ 4 件 の tabbed_section 内 fancy-ul リスト項目を
   一行表示(折り返し禁止)
   ============================================================ */
body.page-id-46 .ndk-content-wrap .wpb_tab .nectar-fancy-ul li,
body.page-id-39 .ndk-content-wrap .wpb_tab .nectar-fancy-ul li,
body.page-id-29 .ndk-content-wrap .wpb_tab .nectar-fancy-ul li,
body.page-id-19 .ndk-content-wrap .wpb_tab .nectar-fancy-ul li,
body.page-id-46 .ndk-content-wrap .wpb_tab ul li,
body.page-id-39 .ndk-content-wrap .wpb_tab ul li,
body.page-id-29 .ndk-content-wrap .wpb_tab ul li,
body.page-id-19 .ndk-content-wrap .wpb_tab ul li {
  white-space: nowrap !important;
}
/* もし overflow が container を超える場合に備えて、 親に horizontal scroll */
body.page-id-46 .ndk-content-wrap .wpb_tab .nectar-fancy-ul,
body.page-id-39 .ndk-content-wrap .wpb_tab .nectar-fancy-ul,
body.page-id-29 .ndk-content-wrap .wpb_tab .nectar-fancy-ul,
body.page-id-19 .ndk-content-wrap .wpb_tab .nectar-fancy-ul {
  overflow-x: auto;
  max-width: 100%;
}

/* ============================================================
   home (page-id-62) 上部 2 section の幅
   - デスクトップ: 親 .container.main-content (880px) を 100vw に break-out
   - モバイル: 親が既に viewport 全幅、 break-out 不要(むしろ揺れの原因)
   ============================================================ */
@media (min-width: 769px) {
  body.home .ndk-video-hero,
  body.home .ndk-hero {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
}
/* モバイル: break-out を 強制無効(画面ずれ防止) */
@media (max-width: 768px) {
  body.home .ndk-video-hero,
  body.home .ndk-hero {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  /* container.main-content の max-width 制限も解除 */
  body.home .container.main-content {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  body.home .container.main-content > .row {
    width: 100% !important;
    max-width: 100% !important;
  }
}
/* 横スクロール防止(全画面共通) */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}
/* 内部のコンテナは中央 1180px までに留める */
body.home .ndk-video-hero .ndk-container,
body.home .ndk-hero .ndk-container {
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 0 28px !important;
}

/* ============================================================
   モバイル(<= 999px) では Salient JS の slide-out 計算を壊さないよう
   header は position: fixed を維持。 transform/transition だけ抑制。
   ============================================================ */
@media (max-width: 999px) {
  /* ヘッダーは Salient 標準の position: fixed を維持(menu JS 互換のため必須) */
  #header-outer,
  body #header-outer,
  #header-outer.invisible,
  #header-outer.scrolling,
  #header-outer.detached,
  #header-outer.show,
  #header-outer.fixed,
  body.no-scroll #header-outer,
  body[data-header-resize="1"] #header-outer,
  body[data-hhun="1"] #header-outer {
    transform: none !important;
    -webkit-transform: none !important;
    transition: background-color 0.3s ease, box-shadow 0.3s ease !important;
    will-change: auto !important;
    animation: none !important;
    -webkit-animation: none !important;
    pointer-events: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  /* ヘッダー直下要素も transform 抑制(連動して揺れる) */
  #header-outer #top,
  #header-outer header,
  #header-outer .container {
    transform: none !important;
    -webkit-transform: none !important;
    transition: none !important;
  }
  /* header-space は Salient 標準に任せる(モバイルで header が relative の場合は不要) */
  /* body / html に scroll 連動 transform が掛からないように */
  html, body {
    transform: none !important;
    -webkit-transform: none !important;
  }
  /* container-wrap の transform / scroll-shifted も無効 */
  #ajax-content-wrap,
  .container-wrap,
  #page-header-wrap {
    transform: none !important;
    -webkit-transform: none !important;
    transition: none !important;
  }
}

/* ============================================================
   モバイル オフキャンバスメニュー の クローズボタン強化
   ============================================================ */
@media (max-width: 999px) {
  /* クローズ「×」ボタンを 確実に表示 + クリック可能に */
  body .slide_out_area_close,
  body #slide-out-widget-area .slide_out_area_close,
  body .nectar_close_search,
  body span.close-line {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    width: auto !important;
    height: auto !important;
    z-index: 9999 !important;
  }
  /* タッチターゲット 44px+ 確保 */
  body #slide-out-widget-area .slide_out_area_close {
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  /* ----------------------------------------------------------
     重要: モバイル オフキャンバスメニューは Salient 標準の挙動に完全に任せる
     ・slide-out-widget-area の transform/visibility は Salient CSS + JS が管理
     ・私たちは下記 2 点だけ強化: inner-wrap が確実に見える + close ボタンが効く
     ---------------------------------------------------------- */
  /* メニュー open 時、 inner-wrap / メニューコンテナ / 全 li を確実に表示 */
  body #slide-out-widget-area.open .inner-wrap,
  body #slide-out-widget-area.open .inner,
  body #slide-out-widget-area.open .off-canvas-menu-container,
  body #slide-out-widget-area.open .off-canvas-menu-container *,
  body #slide-out-widget-area.open ul,
  body #slide-out-widget-area.open li,
  body #slide-out-widget-area.open a {
    visibility: visible !important;
    opacity: 1 !important;
  }
  /* 背景クリックでも閉じる準備(bg を pointer-events 有効化) */
  body #slide-out-widget-area-bg.open {
    pointer-events: auto !important;
  }
}

/* ============================================================
   ヘッダー auto-hide on scroll を Apple UI 風 なめらか アニメに
   - Salient デフォルトは transition: 1e-05s(実質瞬時)で gather feel が悪い
   - Apple の標準イージング cubic-bezier(0.28, 0.11, 0.32, 1) で滑らかに
   - 隠れる時 0.55s、 戻る時 0.4s(戻りは少し速く して反応性確保)
   ============================================================ */
#header-outer,
body #header-outer {
  transition:
    transform 0.55s cubic-bezier(0.28, 0.11, 0.32, 1),
    background 0.35s ease,
    backdrop-filter 0.35s ease,
    box-shadow 0.35s ease,
    height 0.25s ease,
    opacity 0.35s ease,
    border-color 0.25s ease !important;
  /* GPU レイヤーで合成、 アニメ中のジャギ解消 */
  will-change: transform;
  backface-visibility: hidden;
}
/* 戻り(scrolling-up または at-top クラス時)は少し速く */
#header-outer:not(.invisible),
body #header-outer:not(.invisible) {
  transition:
    transform 0.4s cubic-bezier(0.28, 0.11, 0.32, 1),
    background 0.35s ease,
    backdrop-filter 0.35s ease,
    box-shadow 0.35s ease,
    height 0.25s ease,
    opacity 0.35s ease,
    border-color 0.25s ease !important;
}

/* ============================================================
   /catalog/ ページ刷新デザイン
   ============================================================ */
body .ndk-content-wrap .ndk-review-banner,
body.page-id-971 .ndk-review-banner {
  background: #fff8e1;
  border: 1px solid #ffd54f;
  border-radius: 6px;
  padding: 1rem 1.4rem;
  margin: 0 0 1.8rem;
  color: #5d4037;
  font-size: 0.9rem;
  line-height: 1.7;
}
body .ndk-content-wrap .ndk-review-banner,
body.page-id-971 .ndk-review-banner-warn {
  margin: 1.8rem 0 0;
}
body .ndk-content-wrap .ndk-catalog-lead {
  text-align: center;
  font-size: 0.98rem;
  color: #555;
  margin: 0 0 2rem;
  line-height: 1.7;
}
body .ndk-content-wrap .ndk-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  max-width: 1080px;
  margin: 0 auto;
}
body .ndk-content-wrap a.ndk-catalog-card {
  display: flex !important;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.3rem !important;
  background: #f4f5f8 !important;
  border-radius: 8px;
  color: #0a2255 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  border-left: 3px solid #1945a5;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
body .ndk-content-wrap a.ndk-catalog-card:hover {
  background: #e9ecf3 !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(25, 69, 165, 0.12);
}
body .ndk-content-wrap .ndk-catalog-card-icon {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1945a5;
  color: #fff;
  border-radius: 6px;
}
body .ndk-content-wrap .ndk-catalog-card-body {
  flex: 1 1 auto;
  min-width: 0;
}
body .ndk-content-wrap .ndk-catalog-card-tag {
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  color: #1945a5;
  font-weight: 700;
  margin-bottom: 0.25em;
  text-transform: uppercase;
}
body .ndk-content-wrap .ndk-catalog-card-title {
  margin: 0 0 0.2em !important;
  font-size: 0.96rem !important;
  line-height: 1.4 !important;
  color: #0a2255 !important;
  font-weight: 700 !important;
  padding-bottom: 0 !important;
}
body .ndk-content-wrap .ndk-catalog-card-desc {
  margin: 0 !important;
  font-size: 0.78rem !important;
  line-height: 1.5 !important;
  color: #666 !important;
  padding-bottom: 0 !important;
}
body .ndk-content-wrap .ndk-catalog-card-arrow {
  flex: 0 0 auto;
  font-size: 1.2rem;
  color: #1945a5;
  font-weight: 700;
  transition: transform 0.18s ease;
}
body .ndk-content-wrap a.ndk-catalog-card:hover .ndk-catalog-card-arrow {
  transform: translateX(4px);
}
/* catalog ページの 末尾 CTA box */
body .ndk-content-wrap .ndk-page-cta-box {
  background: linear-gradient(135deg, #0a2255 0%, #1945a5 100%);
  color: #fff;
  padding: 1.4rem 1.8rem;
  border-radius: 8px;
  text-align: center;
  margin: 2.5rem auto 0;
  max-width: 600px;
}
body .ndk-content-wrap .ndk-page-cta-box h3 {
  margin: 0 0 0.3em !important;
  color: #fff !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  padding-bottom: 0 !important;
}
body .ndk-content-wrap .ndk-page-cta-box p {
  margin: 0 0 0.9rem !important;
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 0.88rem !important;
  line-height: 1.55 !important;
  padding-bottom: 0 !important;
}
body .ndk-content-wrap a.ndk-page-cta-btn {
  display: inline-block !important;
  padding: 0.65rem 1.8rem !important;
  background: #fff !important;
  color: #0a2255 !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size: 0.92rem !important;
  letter-spacing: 0.04em !important;
  border-bottom: none !important;
  transition: transform 0.15s ease, box-shadow 0.18s ease !important;
}
body .ndk-content-wrap a.ndk-page-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

/* ============================================================
   ページ末尾 CTA box(inline style "background:#0a2255" 持つ div)
   - 横幅を 580px に絞って 内容と box の比率を整える
   - 親テーマの p color/padding override を打ち消し
   - h3 → p → button を 視覚的にひとまとまりに
   ============================================================ */
body .ndk-content-wrap div[style*="#0a2255"],
body .ndk-content-wrap .ndk-page-cta {
  padding: 1.4rem 1.8rem !important;
  margin: 2.5rem auto 0 !important;
  max-width: 600px;            /* 横幅を絞ってバランス改善 */
}
body .ndk-content-wrap div[style*="#0a2255"] *,
body .ndk-content-wrap .ndk-page-cta * {
  padding-bottom: 0 !important;
}
body .ndk-content-wrap div[style*="#0a2255"] h3,
body .ndk-content-wrap .ndk-page-cta h3 {
  margin: 0 0 0.3em !important;
  color: #fff !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}
body .ndk-content-wrap div[style*="#0a2255"] p,
body .ndk-content-wrap .ndk-page-cta p {
  margin: 0 0 0.9rem !important;
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 0.88rem !important;
  line-height: 1.55 !important;
  padding-bottom: 0 !important;
}
/* p に button のみ含むケース(WP autop)は margin-bottom 不要 */
body .ndk-content-wrap div[style*="#0a2255"] > p:last-child,
body .ndk-content-wrap .ndk-page-cta > p:last-child {
  margin-bottom: 0 !important;
}
body .ndk-content-wrap div[style*="#0a2255"] a,
body .ndk-content-wrap .ndk-page-cta a {
  display: inline-block !important;
  padding: 0.65rem 1.8rem !important;
  background: #fff !important;
  color: #0a2255 !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size: 0.92rem !important;
  letter-spacing: 0.04em !important;
  border-bottom: none !important;
  transition: transform 0.15s ease, box-shadow 0.18s ease !important;
}
body .ndk-content-wrap div[style*="#0a2255"] a:hover,
body .ndk-content-wrap .ndk-page-cta a:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

/* ============================================================
   /air-wide-range/ (page-id-856) 3 カラム カード レイアウト
   - 特長 / 目的 / 導入事例 を均等カードに
   - 親テーマ p の padding 打ち消し
   ============================================================ */
body.page-id-856 .ndk-content-wrap .ndk-awr-card .vc_column-inner {
  background: #f7f8fa;
  border-radius: 8px;
  padding: 1.6rem 1.4rem !important;
  height: 100%;
}
body.page-id-856 .ndk-content-wrap .ndk-awr-card-feature .vc_column-inner {
  background: #f0f4fc;
}
body.page-id-856 .ndk-content-wrap .ndk-awr-card-purpose .vc_column-inner {
  background: #fdf2f3;
}
body.page-id-856 .ndk-content-wrap .ndk-awr-card-cases .vc_column-inner {
  background: #eef0f7;
}
body.page-id-856 .ndk-content-wrap .ndk-awr-card ul {
  margin: 0 !important;
  padding-left: 1.4em !important;
}
body.page-id-856 .ndk-content-wrap .ndk-awr-card ul li {
  font-size: 0.92rem !important;
  line-height: 1.65 !important;
  margin-bottom: 0.35em !important;
  padding-bottom: 0 !important;
}
body.page-id-856 .ndk-content-wrap .ndk-awr-card p,
body.page-id-856 .ndk-content-wrap .ndk-awr-card .wpb_text_column p {
  padding-bottom: 0 !important;
}

/* ============================================================
   製品ページ末尾「関連製品」(.ndk-related-section)バランス調整
   - 親テーマが li に list-style:disc を強制 → 弾丸記号「•」を消す
   - 4 製品を 4 カラムグリッドで均等配置(2 行折り返しでも等高に)
   - カードの padding を控えめに、 hover アニメ
   ============================================================ */
body .ndk-related-section ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 0.8rem !important;
  align-items: stretch !important;
}
body .ndk-related-section ul li {
  list-style: none !important;
  list-style-type: none !important;
  display: block !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  position: relative;
}
body .ndk-related-section ul li::before,
body .ndk-related-section ul li::marker {
  content: none !important;
  display: none !important;
}
body .ndk-related-section ul li a {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 0.6em;
  height: 100%;
  padding: 0.9rem 1.1rem !important;
  background: #f4f5f8 !important;
  border-radius: 6px !important;
  color: #0a2255 !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 0.92rem !important;
  line-height: 1.45 !important;
  letter-spacing: 0.02em;
  border-bottom: none !important;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}
body .ndk-related-section ul li a:hover {
  background: #e9ecf3 !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(25, 69, 165, 0.08);
}
/* arrow → を span 化して右寄せ・色強調 */
body .ndk-related-section ul li a span {
  color: #1945a5 !important;
  font-weight: 700;
  flex-shrink: 0;
}

/* レスポンシブ:狭い画面で 2 → 1 カラム */
@media (max-width: 1024px) {
  body .ndk-related-section ul {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 540px) {
  body .ndk-related-section ul {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   製品ページ末尾「お問い合わせ CTA」(.ndk-product-cta)バランス調整
   - 親テーマの p に付く padding-bottom: 27px を打ち消し
   - 全体タイトに、 h3 / sub / button を視覚的にひとまとまりに
   ============================================================ */
body .ndk-product-cta {
  padding: 2rem 2rem !important;
}
body .ndk-product-cta > h3,
body .ndk-product-cta > p {
  padding: 0 !important;
}
body .ndk-product-cta > h3 {
  margin: 0 0 0.4em !important;
  font-size: 1.25rem !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
}
body .ndk-product-cta > p {
  margin: 0 auto 1.1rem !important;
  font-size: 0.92rem !important;
  line-height: 1.6 !important;
  opacity: 0.85;
  max-width: 640px;
}
body .ndk-product-cta > a {
  padding: 0.75rem 2.2rem !important;
  font-size: 0.95rem !important;
}

/* ============================================================
   /privacy-policy/ (page-id-967) タイポグラフィ調整
   - 親テーマの h2 34px は法務文書には大きすぎ
   - h2 を 1.15rem、 本文 p を 0.95rem に統一(B2B 法務文書らしい読みやすさ)
   ============================================================ */
body.page-id-967 .container.main-content h2 {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  margin-top: 2rem !important;
  margin-bottom: 0.6rem !important;
  color: #1a1a1a !important;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid #ececec;
  letter-spacing: 0.02em;
}
body.page-id-967 .container.main-content h2:first-of-type {
  margin-top: 1rem !important;
}
body.page-id-967 .container.main-content p:not(.ndk-caption):not(.ndk-page-hero-sub):not(.ndk-page-hero-title),
body.page-id-967 .container.main-content ul li,
body.page-id-967 .container.main-content ol li {
  font-size: 0.95rem !important;
  line-height: 1.85 !important;
  color: #333 !important;
}
/* PP hero 内の caption / sub は 紺背景なので白系を維持 (上記 p:not(...) で除外したが
   念のため明示的に白で再宣言) */
body.page-id-967 .ndk-page-hero .ndk-caption {
  color: rgba(255, 255, 255, 0.95) !important;
}
body.page-id-967 .ndk-page-hero-title {
  color: #ffffff !important;
}
body.page-id-967 .ndk-page-hero-sub {
  color: rgba(255, 255, 255, 0.88) !important;
}
body.page-id-967 .container.main-content ul {
  margin: 0.4em 0 1em 1.5em !important;
  padding: 0 !important;
}
body.page-id-967 .container.main-content ul li {
  margin-bottom: 0.3em !important;
}
body.page-id-967 .container.main-content p {
  margin-bottom: 0.8em !important;
}
body.page-id-967 .container.main-content a {
  color: #1945a5 !important;
  text-decoration: underline;
}

/* ============================================================
   フッター刷新 — lamipas.AI 風 ライトレイアウト
   左: ロゴ + キャッチ / 右: ナビゲーション / 下: copyright
   ============================================================ */
body #footer-outer {
  background-color: #fafbfc !important;
}
body #footer-outer #copyright {
  background-color: #fafbfc !important;
  border-top: 1px solid #ececec;
  padding: 1.4rem 0 !important;
}
body #footer-outer #copyright .container {
  padding-left: 28px !important;
  padding-right: 28px !important;
}
body #footer-outer #copyright,
body #footer-outer #copyright .col,
body #footer-outer #copyright .col p {
  color: #888 !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
/* copyright を 1 行表示にする(Salient の col span_5 で 折り返される問題対策) */
body #footer-outer #copyright .col {
  width: 100% !important;
}
body #footer-outer #copyright .col p {
  white-space: nowrap;
  margin: 0 !important;
}
/* モバイル: 狭い画面では折り返し可、 ただし font 縮小で 1 行維持を試みる */
@media (max-width: 600px) {
  body #footer-outer #copyright .col p {
    white-space: normal;
    font-size: 0.7rem !important;
  }
}
/* social icons の col span_7 を非表示(空のため場所占有を解消) */
body #footer-outer #copyright .col.span_7 {
  display: none !important;
}

/* メインフッター(独自) */
body .ndk-footer-main {
  background-color: #fafbfc;
  padding: 3.2rem 0 2rem;
  position: relative;
}
body .ndk-footer-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}
/* アイコンだけのロゴマーク + 横にキャッチを並べる(シンプル) */
body .ndk-footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  text-decoration: none !important;
  border-bottom: none !important;
  color: inherit !important;
  line-height: 1;
}
body .ndk-footer-icon {
  display: block;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
}
body .ndk-footer-tagline {
  margin: 0 !important;
  padding: 0 !important;
  color: #2d3748;
  font-size: 1rem;
  letter-spacing: 0.04em;
  font-weight: 600;
  line-height: 1.3;
}
body .ndk-footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1rem, 2.5vw, 2.4rem);
  align-items: center;
}
body .ndk-footer-nav a {
  color: #2d3748 !important;
  text-decoration: none !important;
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  padding: 0.3rem 0;
  border-bottom: 1px solid transparent;
  transition: border-color 0.18s ease, color 0.18s ease;
}
body .ndk-footer-nav a:hover {
  color: #1945a5 !important;
  border-bottom-color: #1945a5;
}

/* レスポンシブ */
@media (max-width: 768px) {
  body .ndk-footer-container {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.6rem;
  }
  body .ndk-footer-nav {
    gap: 1rem 1.4rem;
  }
  body .ndk-footer-nav a {
    font-size: 0.88rem;
  }
}

/* ============================================================
   /contact/ (page-id-11) PHONE CTA バランス調整(v2 タイト化)
   - Salient 親テーマの p に付く padding-bottom: 27px を打ち消し
   - 要素間ギャップを縦に圧縮し、視覚的にひとまとまりに
   - 電話番号は読みやすさを保ちつつ少し小ぶり
   ============================================================ */
body.page-id-11 .ndk-cta-dark {
  padding: 1.8rem 0 !important;
}
body.page-id-11 .ndk-cta-dark .ndk-container {
  text-align: center;
}
body.page-id-11 .ndk-cta-dark .ndk-container > p,
body.page-id-11 .ndk-cta-dark .ndk-container > h2,
body.page-id-11 .ndk-cta-dark .ndk-container > h3 {
  padding-bottom: 0 !important;
  padding-top: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.page-id-11 .ndk-cta-dark .ndk-caption {
  margin: 0 auto 0.3em !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.42em !important;
  opacity: 0.7;
}
body.page-id-11 .ndk-cta-dark .ndk-cta-title {
  margin: 0 auto 0.5em !important;
  font-size: clamp(1.1rem, 1.8vw, 1.35rem) !important;
  font-weight: 600 !important;
  opacity: 0.94;
}
body.page-id-11 .ndk-cta-dark .ndk-cta-tel-num {
  margin: 0 auto 0.35em !important;
  line-height: 1 !important;
}
body.page-id-11 .ndk-cta-dark .ndk-cta-tel-num a {
  font-size: clamp(1.9rem, 3.4vw, 2.4rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  line-height: 1 !important;
}
body.page-id-11 .ndk-cta-dark .ndk-cta-sub {
  margin: 0.4em auto 0 !important;
  font-size: 0.82rem !important;
  opacity: 0.78;
  letter-spacing: 0.08em !important;
}

/* ============================================================
   FAQ セクション タイポグラフィ統一 + 視覚バランス
   - dt/dd の vertical-rhythm 改善
   - Q-A をひとまとまりに、 次の Q との間にゆとり
   ============================================================ */
body .ndk-faq-section {
  padding: 2rem 1.8rem !important;
  border-radius: 6px;
}
body .ndk-faq-section > h2 {
  font-size: 1.4rem !important;
  margin-bottom: 1.6rem !important;
  letter-spacing: 0.06em !important;
  font-weight: 700 !important;
}
body .ndk-faq-section dl {
  max-width: 820px !important;
}
body .ndk-faq-section dt {
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  color: #0a2255 !important;
  padding-bottom: 0 !important;
}
body .ndk-faq-section dt:not(:first-child),
body .ndk-faq-section dl > dt + dt {
  /* not used (we use margin from inline style) */
}
body .ndk-faq-section dd {
  margin: 0.45em 0 0 !important;
  padding: 0 0 0 1.4em !important;
  font-size: 0.94rem !important;
  line-height: 1.75 !important;
  color: #333 !important;
}
/* Q-Q 間スペース調整 */
body .ndk-faq-section dl dt[style*="margin-top"] {
  margin-top: 1.4rem !important;
}

/* ===========================================================================
   ╔═══════════════════════════════════════════════════════════════════════╗
   ║  📱 モバイル最適化 v1 — 全カスタムコンポーネント横断対応             ║
   ║  ・タブレット境界: max-width 1024px                                   ║
   ║  ・スマホ境界:    max-width 768px / 600px / 480px                     ║
   ║  ・タッチターゲット 最低 44×44 確保                                    ║
   ╚═══════════════════════════════════════════════════════════════════════╝
   =========================================================================== */

/* --------------------------------------------------------------------------
   タブレット以下(<= 1024px)
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  /* 関連製品 4 → 2 カラム */
  body .ndk-related-section ul {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  /* solutions / awr cards: auto-fit minmax 維持で自動的に 2 列に落ちる */
}

/* --------------------------------------------------------------------------
   スマホ縦(<= 768px)
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {

  /* ============ page-hero(全ページ共通) ============ */
  body .ndk-page-hero {
    padding: clamp(1.2rem, 4vw, 1.6rem) 0 !important;
  }
  body .ndk-page-hero .ndk-caption {
    font-size: 0.65rem !important;
    letter-spacing: 0.28em !important;
    margin-bottom: 0.4em !important;
  }
  body .ndk-page-hero-title {
    font-size: clamp(1.15rem, 5.5vw, 1.5rem) !important;
    line-height: 1.35 !important;
    margin-bottom: 0.3em !important;
  }
  body .ndk-page-hero-sub {
    font-size: 0.82rem !important;
    line-height: 1.55 !important;
  }

  /* ============ home: video hero + stats ============ */
  /* iOS Safari URL バー変動による揺れ対策で dvh を優先 */
  body.home .ndk-video-hero {
    min-height: clamp(280px, 50vh, 380px) !important;
    min-height: clamp(280px, 50dvh, 380px) !important;
  }
  body.home .ndk-video-hero-title {
    font-size: clamp(1.6rem, 7vw, 2.2rem) !important;
  }
  body.home .ndk-video-hero-sub {
    font-size: 0.92rem !important;
  }
  body.home .ndk-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
  }
  body.home .ndk-hero-title {
    font-size: clamp(1.3rem, 6vw, 1.8rem) !important;
  }
  body.home .ndk-hero-stats {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    justify-content: center !important;
  }
  body.home .ndk-hero-stats > div {
    flex: 1 1 calc(33% - 1rem);
    min-width: 0;
  }
  body.home .ndk-hero-ctas {
    flex-direction: column !important;
    width: 100%;
  }
  body.home .ndk-hero-ctas a {
    width: 100% !important;
    text-align: center !important;
  }

  /* ============ フッター(brand + nav 縦並び) ============ */
  body .ndk-footer-container {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 1.4rem !important;
  }
  body .ndk-footer-nav {
    gap: 0.8rem 1.4rem !important;
    flex-wrap: wrap !important;
  }
  body .ndk-footer-nav a {
    font-size: 0.85rem !important;
    padding: 0.4rem 0 !important;
    /* タッチターゲット確保 */
    min-height: 36px;
    display: flex;
    align-items: center;
  }
  body .ndk-footer-icon {
    width: 40px !important;
    height: 40px !important;
  }
  body .ndk-footer-tagline {
    font-size: 0.92rem !important;
  }

  /* ============ /contact/ PHONE CTA ============ */
  body.page-id-11 .ndk-cta-dark {
    padding: 1.4rem 0 !important;
  }
  body.page-id-11 .ndk-cta-dark .ndk-caption {
    font-size: 0.68rem !important;
    letter-spacing: 0.32em !important;
  }
  body.page-id-11 .ndk-cta-dark .ndk-cta-title {
    font-size: 1rem !important;
  }
  body.page-id-11 .ndk-cta-dark .ndk-cta-tel-num a {
    font-size: 1.7rem !important;
  }
  body.page-id-11 .ndk-cta-dark .ndk-cta-sub {
    font-size: 0.78rem !important;
    line-height: 1.5 !important;
  }

  /* ============ 製品ページ末尾 CTA box ============ */
  body .ndk-content-wrap div[style*="#0a2255"],
  body .ndk-content-wrap .ndk-page-cta,
  body .ndk-content-wrap .ndk-page-cta-box,
  body .ndk-content-wrap .ndk-product-cta {
    padding: 1.4rem 1.2rem !important;
    margin-top: 1.8rem !important;
    border-radius: 6px !important;
    max-width: 100% !important;
  }
  body .ndk-content-wrap div[style*="#0a2255"] h3,
  body .ndk-content-wrap .ndk-page-cta h3,
  body .ndk-content-wrap .ndk-page-cta-box h3,
  body .ndk-content-wrap .ndk-product-cta > h3 {
    font-size: 1rem !important;
    line-height: 1.4 !important;
  }
  body .ndk-content-wrap div[style*="#0a2255"] p,
  body .ndk-content-wrap .ndk-page-cta p,
  body .ndk-content-wrap .ndk-page-cta-box p,
  body .ndk-content-wrap .ndk-product-cta > p {
    font-size: 0.82rem !important;
    line-height: 1.55 !important;
  }
  body .ndk-content-wrap div[style*="#0a2255"] a,
  body .ndk-content-wrap .ndk-page-cta a,
  body a.ndk-page-cta-btn,
  body .ndk-content-wrap .ndk-product-cta > a {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0.85rem 1rem !important;
    /* タッチターゲット 44px+ */
    min-height: 44px;
  }

  /* ============ 関連製品(.ndk-related-section)1 カラム ============ */
  body .ndk-related-section {
    padding: 1.6rem 1.2rem !important;
    margin-top: 2rem !important;
  }
  body .ndk-related-section ul {
    grid-template-columns: 1fr !important;
    gap: 0.6rem !important;
  }
  body .ndk-related-section ul li a {
    padding: 0.95rem 1rem !important;
    font-size: 0.88rem !important;
    min-height: 44px;
  }
  body .ndk-related-section > h2 {
    font-size: 1.15rem !important;
    margin-bottom: 1rem !important;
  }

  /* ============ /process/ ステップ ============ */
  body .ndk-process-step {
    flex-direction: column !important;
    gap: 0.6rem !important;
    padding: 1.2rem 1.2rem !important;
    border-radius: 6px !important;
  }
  body .ndk-process-step > div:first-child {
    font-size: 1.3rem !important;
    min-width: auto !important;
  }
  body .ndk-process-step h3 {
    font-size: 1rem !important;
  }
  body .ndk-process-step p {
    font-size: 0.85rem !important;
  }

  /* ============ /solutions/ + /air-wide-range/ カードグリッド ============ */
  body .ndk-solutions-grid,
  body.page-id-856 .ndk-content-wrap .vc_row-flex,
  body.page-id-856 .ndk-content-wrap .vc_row-o-equal-height {
    grid-template-columns: 1fr !important;
    display: block !important;
  }
  body .ndk-solutions-grid > div {
    padding: 1.4rem 1.2rem !important;
    margin-bottom: 1rem !important;
  }
  body.page-id-856 .ndk-content-wrap .ndk-awr-card {
    width: 100% !important;
    margin-bottom: 1rem !important;
  }
  body.page-id-856 .ndk-content-wrap .ndk-awr-card .vc_column-inner {
    padding: 1.2rem 1rem !important;
  }

  /* ============ FAQ セクション ============ */
  body .ndk-faq-section {
    padding: 1.4rem 1.2rem !important;
  }
  body .ndk-faq-section > h2 {
    font-size: 1.15rem !important;
    margin-bottom: 1.2rem !important;
  }
  body .ndk-faq-section dt {
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
  }
  body .ndk-faq-section dd {
    font-size: 0.85rem !important;
    line-height: 1.65 !important;
    padding-left: 1em !important;
  }
  /* FAQ ページ用 (page-id-969) も同様 */
  body.page-id-969 .ndk-content-wrap dl dt {
    font-size: 0.92rem !important;
  }
  body.page-id-969 .ndk-content-wrap dl dd {
    font-size: 0.85rem !important;
    line-height: 1.65 !important;
  }
  body.page-id-969 .ndk-content-wrap h2 {
    font-size: 1.1rem !important;
    margin-top: 1.5rem !important;
  }

  /* ============ /privacy-policy/ ============ */
  body.page-id-967 .container.main-content h2 {
    font-size: 1.05rem !important;
    margin-top: 1.6rem !important;
  }
  body.page-id-967 .container.main-content p,
  body.page-id-967 .container.main-content ul li {
    font-size: 0.88rem !important;
    line-height: 1.75 !important;
  }

  /* ============ /warranty/ 条見出し ============ */
  body.page-id-534 .vc_custom_heading {
    font-size: 1rem !important;
    padding: 0.5rem 0.8rem !important;
  }
  body.page-id-534 .wpb_text_column p,
  body.page-id-534 .wpb_text_column li {
    font-size: 0.88rem !important;
    line-height: 1.7 !important;
  }

  /* ============ /company/ + 拠点ページ 共通 ============ */
  body.page-id-13 .vc_col-sm-4,
  body.page-id-13 .vc_col-sm-3,
  body.page-id-13 .vc_col-sm-6 {
    width: 100% !important;
  }
  /* split layout 等高 → 縦並び */
  body.page-id-13 .vc_row-flex {
    flex-direction: column !important;
  }

  /* ============ 拠点ページ Google Map ============ */
  body.page-id-46 .nectar_gmap,
  body.page-id-39 .nectar_gmap,
  body.page-id-29 .nectar_gmap,
  body.page-id-19 .nectar_gmap {
    height: 280px !important;
  }

  /* ============ /products/* tabbed_section ============ */
  body .ndk-content-wrap .wpb_tabs ul.wpb-tabs-nav li a {
    padding: 0.7rem 0.8rem !important;
    font-size: 0.82rem !important;
  }
  body .ndk-content-wrap .wpb_tab .wpb_text_column,
  body .ndk-content-wrap .wpb_tab .wpb_wrapper {
    padding: 0.8rem 0.4rem !important;
  }

  /* ============ お問い合わせフォーム CF7 ============ */
  body .wpcf7-form .wpcf7-form-control {
    font-size: 16px !important;  /* iOS で zoom-on-focus 防止 (16px 未満で auto-zoom する) */
  }
  body .wpcf7-form input[type=text],
  body .wpcf7-form input[type=email],
  body .wpcf7-form input[type=tel],
  body .wpcf7-form textarea {
    padding: 0.7rem 0.8rem !important;
    min-height: 44px;
  }
  body .wpcf7-form input[type=submit] {
    width: 100% !important;
    padding: 0.9rem !important;
    font-size: 1rem !important;
    min-height: 48px;
  }

  /* ============ 共通: スクロール時の auto-hide ヘッダー ============ */
  /* (Salient 標準で動作、 モバイルでも有効) */

  /* ============ container 横 padding をやや増やす ============ */
  body .ndk-container,
  body .ndk-page-hero .ndk-container,
  body .ndk-video-hero-content .ndk-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* ============ コンテンツ全幅化(極狭でのスクロールバー出現防止) ============ */
  body img,
  body video {
    max-width: 100% !important;
    height: auto !important;
  }
  body table {
    display: block;
    overflow-x: auto;
    max-width: 100%;
  }
}

/* --------------------------------------------------------------------------
   スマホ縦 狭(<= 600px)— iPhone SE 等
   -------------------------------------------------------------------------- */
@media (max-width: 600px) {
  /* HOME hero stats を 縦並びに */
  body.home .ndk-hero-stats {
    flex-direction: column !important;
  }
  body.home .ndk-hero-stats > div {
    width: 100% !important;
    flex: none !important;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.15);
  }
  body.home .ndk-hero-stats > div:last-child {
    border-bottom: none;
  }

  /* PHONE CTA tel 番号 もう少し小さく */
  body.page-id-11 .ndk-cta-dark .ndk-cta-tel-num a {
    font-size: 1.5rem !important;
  }

  /* フッター nav 折り返し時の見やすさ */
  body .ndk-footer-nav {
    flex-direction: column;
    gap: 0.5rem !important;
    align-items: flex-start !important;
  }
  body .ndk-footer-nav a {
    width: 100%;
    padding: 0.5rem 0 !important;
    border-bottom: 1px solid rgba(0,0,0,0.04);
  }
  body .ndk-footer-nav a:last-child {
    border-bottom: none;
  }

  /* copyright nowrap 解除(横スクロール防止) */
  body #footer-outer #copyright .col p {
    white-space: normal !important;
    font-size: 0.7rem !important;
    text-align: center;
  }
  body #footer-outer #copyright .container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* --------------------------------------------------------------------------
   小型スマホ(<= 480px)
   -------------------------------------------------------------------------- */
@media (max-width: 480px) {
  body .ndk-page-hero-title {
    font-size: 1.15rem !important;
  }
  body.home .ndk-video-hero-title {
    font-size: 1.65rem !important;
  }
}


/* =====================================================================
   ★ TARGETED MOBILE STABILIZATION (TOP + /company/ 系限定)
   ⚠️ 重要: Salient では #slide-out-widget-area が #ajax-content-wrap の子として
       配置されているため、 #ajax-content-wrap * を使うと メニューにも適用されて
       バグる。 代わりに .container-wrap (= page content 専用ラッパ) を使う。
   page ID 一覧:
     62 = TOP (/)
     13 = /company/
     46 = /company/factory/
     39 = /company/iwate/
     29 = /company/oyama/
     19 = /company/mac/
     44 = /company/recruit/
   ===================================================================== */
@media (max-width: 999px) {
  body.home .container-wrap,
  body.home .container-wrap *,
  body.home .container-wrap *::before,
  body.home .container-wrap *::after,
  body.page-id-13 .container-wrap,
  body.page-id-13 .container-wrap *,
  body.page-id-13 .container-wrap *::before,
  body.page-id-13 .container-wrap *::after,
  body.page-id-46 .container-wrap,
  body.page-id-46 .container-wrap *,
  body.page-id-39 .container-wrap,
  body.page-id-39 .container-wrap *,
  body.page-id-29 .container-wrap,
  body.page-id-29 .container-wrap *,
  body.page-id-19 .container-wrap,
  body.page-id-19 .container-wrap *,
  body.page-id-44 .container-wrap,
  body.page-id-44 .container-wrap *,
  body.parent-pageid-13 .container-wrap,
  body.parent-pageid-13 .container-wrap *,
  body.page-parent .container-wrap,
  body.page-parent .container-wrap * {
    transform: none !important;
    -webkit-transform: none !important;
    transition: none !important;
    -webkit-transition: none !important;
    animation: none !important;
    -webkit-animation: none !important;
    will-change: auto !important;
    backface-visibility: visible !important;
    -webkit-backface-visibility: visible !important;
    perspective: none !important;
    -webkit-perspective: none !important;
  }
  /* video / iframe は transform のみ禁止 */
  body.home .container-wrap video, body.home .container-wrap iframe,
  body.page-id-13 .container-wrap video, body.page-id-13 .container-wrap iframe,
  body.page-id-46 .container-wrap video, body.page-id-46 .container-wrap iframe,
  body.page-id-39 .container-wrap video, body.page-id-39 .container-wrap iframe,
  body.page-id-29 .container-wrap video, body.page-id-29 .container-wrap iframe,
  body.page-id-19 .container-wrap video, body.page-id-19 .container-wrap iframe,
  body.page-id-44 .container-wrap video, body.page-id-44 .container-wrap iframe,
  body.parent-pageid-13 .container-wrap video, body.parent-pageid-13 .container-wrap iframe {
    transform: none !important;
    -webkit-transform: none !important;
  }
}

/* =====================================================================
   /company/ (page-id-13) + サブページ の モバイル 1-column stacking 強制
   原因: Salient の .row_col_wrap_12 が display:flex; flex-direction:row で
        モバイルでも 2-col layout のまま → 画像が 50% を取り、 テキスト col が
        padding に潰されて 文字が縦書き 1 文字幅 で表示される。
   対策: モバイル時は flex を解除して block で stack + sm-* col を 100% に
        + .vc_column-inner の 40px padding を削減
   ===================================================================== */
@media (max-width: 999px) {
  body.page-id-13 .row_col_wrap_12,
  body.page-id-13 .row_col_wrap_12_inner,
  body.page-id-13 .vc_row.vc_row-fluid,
  body.page-id-13 .vc_row.inner_row,
  body.parent-pageid-13 .row_col_wrap_12,
  body.parent-pageid-13 .row_col_wrap_12_inner,
  body.parent-pageid-13 .vc_row.vc_row-fluid,
  body.parent-pageid-13 .vc_row.inner_row {
    display: block !important;
    flex-direction: column !important;
  }
  body.page-id-13 .vc_col-sm-1,  body.parent-pageid-13 .vc_col-sm-1,
  body.page-id-13 .vc_col-sm-2,  body.parent-pageid-13 .vc_col-sm-2,
  body.page-id-13 .vc_col-sm-3,  body.parent-pageid-13 .vc_col-sm-3,
  body.page-id-13 .vc_col-sm-4,  body.parent-pageid-13 .vc_col-sm-4,
  body.page-id-13 .vc_col-sm-5,  body.parent-pageid-13 .vc_col-sm-5,
  body.page-id-13 .vc_col-sm-6,  body.parent-pageid-13 .vc_col-sm-6,
  body.page-id-13 .vc_col-sm-7,  body.parent-pageid-13 .vc_col-sm-7,
  body.page-id-13 .vc_col-sm-8,  body.parent-pageid-13 .vc_col-sm-8,
  body.page-id-13 .vc_col-sm-9,  body.parent-pageid-13 .vc_col-sm-9,
  body.page-id-13 .vc_col-sm-10, body.parent-pageid-13 .vc_col-sm-10,
  body.page-id-13 .vc_col-sm-11, body.parent-pageid-13 .vc_col-sm-11,
  body.page-id-13 .vc_col-sm-12, body.parent-pageid-13 .vc_col-sm-12 {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    flex: none !important;
    display: block !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* .vc_column-inner の巨大 padding を削減 */
  body.page-id-13 .vc_column-inner,
  body.parent-pageid-13 .vc_column-inner {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-top: 0.6rem !important;
    padding-bottom: 0.6rem !important;
    display: block !important;
  }
  /* 拠点紹介の section 間に余白を入れる */
  body.page-id-13 .vc_row.inner_row + .vc_row.inner_row,
  body.parent-pageid-13 .vc_row.inner_row + .vc_row.inner_row {
    margin-top: 2rem !important;
  }
  /* 画像も 100% 幅に */
  body.page-id-13 .img-with-aniamtion-wrap,
  body.page-id-13 .img-with-aniamtion-wrap img,
  body.parent-pageid-13 .img-with-aniamtion-wrap,
  body.parent-pageid-13 .img-with-aniamtion-wrap img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }
}

/* =====================================================================
   /products/kansoro/ (page-id 124) セクション間 余白 圧縮
   実際のクラス構造に基づいた限定 padding 削減:
   - .wpb_column.padding-4-percent > .vc_column-inner (pB: 40px → 6px)
   - .wpb_column.padding-2-percent > .vc_column-inner
   - .wpb_column.no-extra-padding > .vc_column-inner (画像 col)
   - .wpb_row padding (16px → 0)
   - .nectar-animated-title (HYPHEN class, not underscore!)
   ===================================================================== */
body.page-id-124 .wpb_row,
body.page-id-124 .vc_row.vc_row-fluid {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
/* vc_column-inner の Salient padding-N-percent 由来 padding を 圧縮 */
body.page-id-124 .wpb_column.padding-4-percent > .vc_column-inner,
body.page-id-124 .wpb_column.padding-2-percent > .vc_column-inner,
body.page-id-124 .wpb_column.padding-3-percent > .vc_column-inner,
body.page-id-124 .wpb_column.padding-5-percent > .vc_column-inner,
body.page-id-124 .wpb_column.padding-6-percent > .vc_column-inner,
body.page-id-124 .wpb_column.no-extra-padding > .vc_column-inner,
body.page-id-124 [class*="padding-"][class*="-percent"] > .vc_column-inner,
body.page-id-124 .vc_column-inner {
  padding-top: 0.4em !important;
  padding-bottom: 0.4em !important;
}
/* タイトル と 本文(用途/仕様) の 間 圧縮 */
body.page-id-124 .nectar-animated-title,
body.page-id-124 .nectar_animated_title {
  margin-bottom: 0.4em !important;
  padding: 0 !important;
}
body.page-id-124 .vc_column_text,
body.page-id-124 .wpb_text_column {
  margin-bottom: 0.3em !important;
  padding: 0 !important;
}
body.page-id-124 .vc_column_text p,
body.page-id-124 .wpb_text_column p {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
/* wpb_wrapper の 余分 margin を 削減 */
body.page-id-124 .wpb_wrapper {
  margin: 0 !important;
}
/* 画像 4 枚 グリッドの 上下 padding 削減 */
body.page-id-124 .image_with_animation_row_item,
body.page-id-124 .img-with-aniamtion-wrap {
  margin-top: 0 !important;
  padding-top: 0 !important;
  margin-bottom: 0.5em !important;
}
body.page-id-124 .img-with-aniamtion-wrap .inner,
body.page-id-124 .img-with-aniamtion-wrap .hover-wrap {
  margin: 0 !important;
  padding: 0 !important;
}

/* =====================================================================
   GLOBAL: Salient img-with-animation の デフォルト opacity:0 を 強制 解除
   IntersectionObserver による fade-in が iOS Safari で動作しない場合に
   画像が永遠に opacity:0 のまま 「見えない」 状態を防止する 安全ネット
   ===================================================================== */
body .img-with-animation,
body .img-with-aniamtion-wrap,
body .img-with-aniamtion-wrap .inner,
body .img-with-aniamtion-wrap .hover-wrap,
body .img-with-aniamtion-wrap .hover-wrap-inner,
body img.img-with-animation,
body img.skip-lazy {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
}
/* 画像 行 (image row) 内の divider も最小化 */
body.page-id-124 .vc_row .divider {
  margin: 0 !important;
  padding: 0 !important;
  height: 8px !important;
}
/* セクション内 (タイトル行 → 画像行) は タイト */
body.page-id-124 .vc_row + .vc_row,
body.page-id-124 .wpb_row + .wpb_row {
  margin-top: 0 !important;
}
/* ただし セクション間 (画像行 → 次のタイトル行) は 区切り余白を 復活
   タイトル行 = nectar-animated-title を含む vc_row
   ⚠️ 特異度: body:not(.home) .ndk-content-wrap > .vc_row + .vc_row (4 classes)
       に勝つには こちらも 同等 + ndk-content-wrap 込みで 4 classes 必要 */
body.page-id-124 .ndk-content-wrap > .vc_row:has(.nectar-animated-title),
body.page-id-124 .ndk-content-wrap > .wpb_row:has(.nectar-animated-title),
body.page-id-124 .container.main-content .vc_row:has(.nectar-animated-title),
body.page-id-124 .container.main-content .wpb_row:has(.nectar-animated-title) {
  margin-top: 3em !important;
  padding-top: 0.5em !important;
}
/* 最初のセクション (1 つ目のタイトル) は 余白不要 */
body.page-id-124 .ndk-content-wrap > .vc_row:has(.nectar-animated-title):first-child,
body.page-id-124 .container.main-content .vc_row:has(.nectar-animated-title):first-of-type {
  margin-top: 0 !important;
}
/* ndk-content-wrap (functions.php で wpautop 用に挿入) の 上下 padding 削減 */
body.page-id-124 .ndk-content-wrap {
  padding-top: 1em !important;
  padding-bottom: 1em !important;
}

/* =====================================================================
   CF7 レスポンス メッセージ を form 先頭に flex order で 移動
   form が submit 後 自動 scroll される位置 = form 先頭 なので、 そこに
   メッセージ を表示すれば 必ず 見える。 (CF7 scroll と戦わない 最強策)
   ===================================================================== */
body .wpcf7-form {
  display: flex !important;
  flex-direction: column !important;
}
body .wpcf7-form > * {
  order: 0;
}
body .wpcf7-response-output {
  order: -10 !important; /* 全要素より 上 に */
  scroll-margin-top: 100px !important;
  margin: 0 0 1.5em 0 !important;
  padding: 1.1em 1.4em !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
  font-size: 1.05rem !important;
  outline: none !important;
}
/* 通常時 (submit 前) は メッセージ非表示 */
body .wpcf7 form:not(.sent):not(.invalid):not(.spam):not(.failed):not(.unaccepted) .wpcf7-response-output {
  display: none !important;
}
body .wpcf7 form.sent .wpcf7-response-output {
  display: block !important;
  border: 2px solid #1e8a4e !important;
  background: #ecfdf3 !important;
  color: #0c5132 !important;
}
body .wpcf7 form.invalid .wpcf7-response-output,
body .wpcf7 form.spam .wpcf7-response-output,
body .wpcf7 form.failed .wpcf7-response-output,
body .wpcf7 form.unaccepted .wpcf7-response-output {
  display: block !important;
  border: 2px solid #c33 !important;
  background: #fef0f0 !important;
  color: #8a1a1a !important;
}