@charset "UTF-8";
/*
Theme Name: Lightning Child
Description: Child theme for Lightning
Template: lightning
Version: 1.0.01
*/
/* ========================================
   CSS Variables - Figma Design Tokens
   ======================================== */
/* ========================================
   CSS Variables - Figma Design Tokens
   ======================================== */
:root {
  /* ===== カラーパレット ===== */
  /* メインカラー（ダークブルー） */
  --jumoku-color-primary: #1a3a52;
  --jumoku-color-primary-rgb: 26, 58, 82;
  --jumoku-color-primary-light: rgba(26, 58, 82, 0.4);
  --jumoku-color-primary-medium: rgba(26, 58, 82, 0.5);
  --jumoku-color-primary-dark: #2c4a5e;
  --jumoku-color-primary-dark-rgb: 44, 74, 94;
  --jumoku-color-primary-overlay: rgba(26, 58, 82, 0.85);
  --jumoku-color-primary-text: rgba(26, 58, 82, 0.9);
  /* セカンダリカラー（グリーン） */
  --jumoku-color-secondary: #3a5a40;
  --jumoku-color-secondary-rgb: 58, 90, 64;
  --jumoku-color-secondary-light: rgba(58, 90, 64, 0.1);
  --jumoku-color-secondary-dark: #2a5544;
  --jumoku-color-secondary-dark-rgb: 42, 85, 68;
  --jumoku-color-secondary-border: rgba(42, 85, 68, 0.2);
  /* Data Section専用カラー */
  --jumoku-color-data-badge: #50766B;
  --jumoku-color-data-title: #2C5A76;
  --jumoku-color-data-subtitle: #6C858A;
  /* アクセントカラー（ベージュ/ブラウン） */
  --jumoku-color-accent: #a07855;
  --jumoku-color-accent-rgb: 160, 120, 85;
  --jumoku-color-accent-border: rgba(160, 120, 85, 0.5);
  --jumoku-color-accent-light: rgba(160, 120, 85, 0.1);
  /* 背景色 */
  --jumoku-color-bg: #ffffff;
  --jumoku-color-bg-light: #fafaf8;
  --jumoku-color-bg-gray: rgba(189, 183, 183, 1);
  --jumoku-color-bg-white: #ffffff;
  --jumoku-color-bg-white-90: rgba(255, 255, 255, 0.9);
  --jumoku-color-bg-white-95: rgba(255, 255, 255, 0.95);
  /* テキスト色 */
  --jumoku-color-text: #1a3a52;
  --jumoku-color-text-dark: #2c2c2c;
  --jumoku-color-text-gray: #313131;
  --jumoku-color-text-gray-light: #6c757d;
  --jumoku-color-text-white: #ffffff;
  --jumoku-color-text-white-90: rgba(255, 255, 255, 0.9);
  --jumoku-color-text-white-80: rgba(255, 255, 255, 0.8);
  --jumoku-color-text-white-70: rgba(255, 255, 255, 0.7);
  --jumoku-color-text-white-30: rgba(255, 255, 255, 0.3);
  --jumoku-color-text-black-90: rgba(0, 0, 0, 0.9);
  /* ボーダー色 */
  --jumoku-color-border: #e5e5e0;
  --jumoku-color-border-light: rgba(160, 120, 85, 0.5);
  --jumoku-color-border-white: #ffffff;
  --jumoku-color-border-white-20: rgba(255, 255, 255, 0.2);
  --jumoku-color-border-white-30: rgba(255, 255, 255, 0.3);
  /* シャドウ色 */
  --jumoku-color-shadow: rgba(0, 0, 0, 0.05);
  --jumoku-color-shadow-medium: rgba(0, 0, 0, 0.1);
  --jumoku-color-shadow-dark: rgba(0, 0, 0, 0.15);
  /* ===== タイポグラフィ ===== */
  /* フォントファミリー */
  --jumoku-font-family: 'Noto Serif JP', serif;
  --jumoku-font-family-sans: sans-serif;
  /* 吹き出し用・丸みのあるフォント */
  --jumoku-font-family-rounded: 'M PLUS Rounded 1c', 'Hiragino Maru Gothic ProN', 'Meiryo', sans-serif;
  /* フォントサイズ */
  --jumoku-font-size-xl: 28px;
  --jumoku-font-size-large: 24px;
  --jumoku-font-size-base: 20px;
  --jumoku-font-size-small: 16px;
  --jumoku-font-size-xs: 14px;
  /* 見出しフォントサイズ */
  --jumoku-font-size-h1: 40px;
  --jumoku-font-size-h2: 34px;
  --jumoku-font-size-h3: 30px;
  --jumoku-font-size-h4: 30px;
  /* レスポンシブ用見出しフォントサイズ（タブレット: 768px以下） */
  --jumoku-font-size-h1-tablet: 32px;
  --jumoku-font-size-h2-tablet: 36px;
  --jumoku-font-size-h3-tablet: 28px;
  --jumoku-font-size-h4-tablet: 18px;
  /* レスポンシブ用見出しフォントサイズ（モバイル: 576px以下） */
  --jumoku-font-size-h1-mobile: 28px;
  --jumoku-font-size-h2-mobile: 32px;
  --jumoku-font-size-h3-mobile: 24px;
  --jumoku-font-size-h4-mobile: 20px;
  /* 行間 */
  --jumoku-line-height-base: 1.9; /* 30.4px / 16px */
  --jumoku-line-height-h1: 1.4; /* 56px / 40px */
  --jumoku-line-height-h2: 1.8; /* 48px / 48px */
  --jumoku-line-height-h3: 1.2; /* 36px / 36px */
  --jumoku-line-height-h4: 1.0; /* 30px / 30px */
  --jumoku-line-height-small: 1.43; /* 20px / 14px */
  --jumoku-line-height-xs: 1.33; /* 16px / 12px */
  /* フォントウェイト */
  --jumoku-font-weight-normal: 400;
  --jumoku-font-weight-medium: 500;
  /* 文字間隔 */
  --jumoku-letter-spacing-base: 0.8px;
  --jumoku-letter-spacing-h1: 2px;
  --jumoku-letter-spacing-small: 1.4px;
  --jumoku-letter-spacing-xs: 1.2px;
  /* ===== レイアウト ===== */
  /* コンテナ幅 */
  --jumoku-container-width: 918px;
  --jumoku-container-width-medium: 800px;
  --jumoku-container-width-small: 768px;
  /* 余白 */
  --jumoku-spacing-xs: 8px;
  --jumoku-spacing-sm: 16px;
  --jumoku-spacing-md: 32px;
  --jumoku-spacing-lg: 48px;
  --jumoku-spacing-xl: 64px;
  /* セクション余白 */
  --jumoku-section-padding: 128px;
  --jumoku-section-padding-small: 48px;
  /* ===== ボタン ===== */
  /* ボタン高さ */
  --jumoku-button-height: 64.797px;
  --jumoku-button-height-small: 56.797px;
  /* ボタンパディング */
  --jumoku-button-padding-x: 32px;
  --jumoku-button-padding-y: 15px;
  /* ===== アイコン（url()形式でSVGをグローバル変数に定義・疑似要素でmask-imageから利用） */
  /* Base64エンコードは現代では不要 */
  --icon-chevron-up: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentcolor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='m4 16 8-8 8 8'/></svg>");
  --icon-chevron-right: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentcolor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M8 4L16 12L8 20'/></svg>");
  --icon-chevron-down: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentcolor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 8L12 16L20 8'/></svg>");
  --icon-chevron-left: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentcolor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16 4L8 12L16 20'/></svg>");
}

/* ========================================
   Lightningテーマの上書き
   ======================================== */
/* ========================================
   Lightningテーマの上書き
   ======================================== */
/* Lightningのデフォルトスタイルを完全に上書きして
   Figmaデザインを忠実に再現 */
/* ページ全体のリセット・横スクロール防止 */
.page-template-page-jumoku {
  overflow-x: hidden !important;
  overflow-wrap: break-word !important;
}

.page-template-page-jumoku .site-main,
.page-template-page-jumoku main#main {
  margin: 0 !important;
  padding: 0 !important;
  background-color: var(--jumoku-color-bg-white) !important;
}

/* 画像のはみ出し防止（LP全体） */
.page-template-page-jumoku img {
  max-width: 100% !important;
  height: auto !important;
  vertical-align: middle !important;
}

/* フォントファミリーを全体に適用 */
.page-template-page-jumoku,
.page-template-page-jumoku * {
  font-family: var(--jumoku-font-family) !important;
}

/* Bootstrapのデフォルトスタイルを上書き */
.page-template-page-jumoku .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.page-template-page-jumoku [class*=col-] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page-template-page-jumoku .row.g-4 > * {
  padding-left: 16px !important;
  padding-right: 16px !important;
}

@media (max-width: 768px) {
  .page-template-page-jumoku .section-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .page-template-page-jumoku .row.g-4 > * {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}
/* スマホのみ改行 <br class="sp-br"> */
.sp-br {
  display: none !important;
}

@media (max-width: 768px) {
  .sp-br {
    display: inline !important;
  }
  .sp-br::before {
    content: "\a";
    white-space: pre;
  }
}
/* PCのみ改行 <br class="pc-br"> */
.pc-br {
  display: none !important;
}

@media (min-width: 769px) {
  .pc-br {
    display: inline !important;
  }
}
/* 文字をまとまりで改行する */
.soft-break {
  display: inline-block !important;
}

/* ========================================
   共通スタイル
   ======================================== */
/* ========================================
   共通セクションスタイル
   ======================================== */
/* 共通セクション基本スタイル */
.jumoku-greeting,
.jumoku-data,
.jumoku-benefits,
.jumoku-recommend-points,
.jumoku-product-image,
.jumoku-gallery,
.jumoku-intro-results,
.jumoku-testimonials,
.jumoku-process,
.jumoku-faq,
.jumoku-cta,
.jumoku-company-info,
.jumoku-current-situation {
  padding-top: 128px !important;
  padding-bottom: 128px !important;
  margin: 0 !important;
}

/* 背景色の個別設定（セクションごとに異なる） */
.jumoku-greeting,
.jumoku-benefits,
.jumoku-faq,
.jumoku-product-image,
.jumoku-gallery,
.jumoku-testimonials,
.jumoku-current-situation {
  background-color: var(--jumoku-color-bg-light) !important;
}

/* 導入実績はFigma準拠で白背景 */
.jumoku-intro-results {
  background-color: var(--jumoku-color-bg-white) !important;
}

.jumoku-data {
  background-color: var(--jumoku-color-bg-white) !important;
}

.jumoku-recommend-points,
.jumoku-process,
.jumoku-company-info {
  background-color: var(--jumoku-color-bg-white) !important;
}

/* CTAセクションはグラデーション背景 */
.jumoku-cta {
  background: linear-gradient(to bottom right, var(--jumoku-color-primary), var(--jumoku-color-primary-dark)) !important;
  color: var(--jumoku-color-text-white) !important;
  position: relative !important;
}

.jumoku-cta::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background-color: var(--jumoku-color-primary-overlay) !important;
  z-index: 1 !important;
}

/* 共通コンテナスタイル（max-width: 918px） */
.section-container {
  width: 1400px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* 共通h2スタイル（複数セクションで共通） */
section h2 {
  font-size: var(--jumoku-font-size-h2) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: var(--jumoku-line-height-h2) !important;
  margin-bottom: 24px !important;
  color: var(--jumoku-color-text) !important;
}

/* 共通pスタイル（複数セクションで共通） */
.jumoku-current-situation p,
.jumoku-data p,
.jumoku-benefits p,
.jumoku-recommend-points p,
.jumoku-product-image p,
.jumoku-gallery p,
.jumoku-intro-results p,
.jumoku-testimonials p,
.jumoku-process p,
.jumoku-faq p,
.jumoku-company-info p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: var(--jumoku-line-height-base) !important;
  letter-spacing: var(--jumoku-letter-spacing-base) !important;
}

.space-y-16 {
  margin-top: 16px !important;
}

.space-y-32 {
  margin-top: 32px !important;
}

.space-y-48 {
  margin-top: 48px !important;
}

.space-y-64 {
  margin-top: 64px !important;
}

.space-y-80 {
  margin-top: 80px !important;
}

.space-y-96 {
  margin-top: 96px !important;
}

/* 吹き出し内は丸みのあるフォント（共通） */
.jumoku-recommend-important,
.jumoku-recommend-important *,
.jumoku-situation-final-speech-bubble,
.jumoku-situation-final-speech-bubble *,
.jumoku-data-speech-bubble,
.jumoku-data-speech-bubble * {
  font-family: var(--jumoku-font-family-rounded) !important;
}

/* ========================================
   共通コンポーネントスタイル
   ======================================== */
/* ===== ボタンスタイル ===== */
.jumoku-hero .btn,
.jumoku-cta .btn {
  font-size: var(--jumoku-font-size-base);
  font-weight: var(--jumoku-font-weight-normal);
  letter-spacing: var(--jumoku-letter-spacing-base);
  line-height: 28.8px;
  border-radius: 0;
  border: 2px solid transparent;
  transition: all 0.3s ease;
  box-shadow: none;
  height: 64.797px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

/* Hero Primary Button - Figma準拠 */
.jumoku-hero-btn-primary,
.jumoku-hero .btn.jumoku-hero-btn-primary {
  background-color: var(--jumoku-color-bg-white) !important;
  color: var(--jumoku-color-primary) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 16px 32px !important;
  display: inline-block !important;
  font-size: 16px !important;
  font-weight: var(--jumoku-font-weight-normal) !important;
  letter-spacing: 0.05em !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: background-color 0.3s ease !important;
  cursor: pointer !important;
}

.jumoku-hero-btn-primary:hover,
.jumoku-hero .btn.jumoku-hero-btn-primary:hover {
  background-color: var(--jumoku-color-bg-light) !important;
  color: var(--jumoku-color-primary) !important;
}

/* Hero Secondary Button - Figma準拠 */
.jumoku-hero-btn-secondary,
.jumoku-hero .btn.jumoku-hero-btn-secondary {
  background-color: transparent !important;
  color: var(--jumoku-color-text-white) !important;
  border: 2px solid var(--jumoku-color-border-white) !important;
  border-radius: 0 !important;
  padding: 16px 32px !important;
  display: inline-block !important;
  font-size: 16px !important;
  font-weight: var(--jumoku-font-weight-normal) !important;
  letter-spacing: 0.05em !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: background-color 0.3s ease !important;
  cursor: pointer !important;
}

.jumoku-hero-btn-secondary:hover,
.jumoku-hero .btn.jumoku-hero-btn-secondary:hover {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: var(--jumoku-color-text-white) !important;
  border-color: var(--jumoku-color-border-white) !important;
}

/* CTA Section Buttons */
.jumoku-cta .btn {
  padding: 15px 32px;
  min-height: 64.797px;
}

/* ===== Card item checkbox - 共通（メリット・導入の流れなどで利用） ===== */
.jumoku-card-item-checkbox, .jumoku-benefits-card-item {
  background-color: var(--jumoku-color-bg-white) !important;
  border: 1px solid var(--jumoku-color-border) !important;
  border-radius: 0 !important;
  padding: 32px !important;
  box-shadow: 0 1px 3px var(--jumoku-color-shadow) !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}

.jumoku-card-item-checkbox-header, .jumoku-benefits-card-header {
  margin-bottom: 24px !important;
  padding-bottom: 16px !important;
  border-bottom: 1px solid var(--jumoku-color-border) !important;
  text-align: center !important;
}

.jumoku-card-item-checkbox-title, .jumoku-benefits-card-title {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.5 !important;
  margin-bottom: 12px !important;
  color: var(--jumoku-color-text) !important;
}

.jumoku-card-item-checkbox-content, .jumoku-benefits-card-content {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  justify-content: space-between !important;
}

.jumoku-card-item-checkbox-point, .jumoku-benefits-point {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  min-height: 5rem !important; /* 行数が増えてもはみ出さないよう height → min-height */
}

.jumoku-card-item-checkbox-point-icon, .jumoku-benefits-point-icon {
  flex-shrink: 0 !important;
  width: 30px !important;
  background-color: transparent !important;
  border-radius: 50% !important;
  margin-top: 8px !important;
}

.jumoku-card-item-checkbox-point-text, .jumoku-benefits-point-text {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-dark) !important;
  flex: 1 !important;
  padding-top: 6px !important;
}

/* ========================================
   d-inline-block バッジスタイル - 統合管理
   ======================================== */
/* 共通デザイン（すべて統一） */
.page-template-page-jumoku span.d-inline-block {
  font-size: 14px !important;
  letter-spacing: 0.05em !important;
  display: inline-block !important;
  background: transparent !important;
  padding: 4px 16px !important;
  margin-bottom: 30px !important;
  border: 1px solid transparent !important;
}

/* 個別セクションの文字色とボーダー色のみ設定 */
.jumoku-current-situation span.d-inline-block {
  color: var(--jumoku-color-secondary) !important;
  border: 1px solid var(--jumoku-color-secondary) !important;
}

.jumoku-data span.d-inline-block {
  color: var(--jumoku-color-data-badge) !important;
  border: 1px solid var(--jumoku-color-data-badge) !important;
}

.jumoku-benefits span.d-inline-block {
  color: var(--jumoku-color-secondary) !important;
  border: 1px solid var(--jumoku-color-secondary) !important;
}

.jumoku-recommend-points span.d-inline-block {
  color: var(--jumoku-color-accent) !important;
  border: 1px solid var(--jumoku-color-accent) !important;
}

.jumoku-product-image span.d-inline-block {
  color: var(--jumoku-color-secondary) !important;
  border: 1px solid var(--jumoku-color-secondary) !important;
}

.jumoku-gallery span.d-inline-block {
  color: var(--jumoku-color-secondary) !important;
  border: 1px solid var(--jumoku-color-secondary) !important;
}

.jumoku-intro-results span.d-inline-block,
.jumoku-testimonials span.d-inline-block {
  color: var(--jumoku-color-secondary) !important;
  border: 1px solid var(--jumoku-color-secondary) !important;
}

.jumoku-process span.d-inline-block {
  color: var(--jumoku-color-secondary) !important;
  border: 1px solid var(--jumoku-color-secondary) !important;
}

.jumoku-faq span.d-inline-block {
  color: var(--jumoku-color-accent) !important;
  border: 1px solid var(--jumoku-color-accent) !important;
}

.jumoku-cta span.d-inline-block {
  color: var(--jumoku-color-text-white-90) !important;
  border: 1px solid var(--jumoku-color-border-white-30) !important;
  margin-bottom: 24px !important;
}

.jumoku-company-info span.d-inline-block {
  color: var(--jumoku-color-secondary) !important;
  border: 1px solid var(--jumoku-color-secondary) !important;
}

/* ========================================
   セクション別スタイル - Figmaデザイン準拠
   ======================================== */
/* ===== Hero Section =====
 * 対象: トップのヒーローセクション（.jumoku-hero）およびその子要素
 *       （見出し・リード文・「まずはご相談ください」ボタン・クリックアイコンなど）
 * 目的: ヒーローエリアのレイアウト・背景オーバーレイ・タイポグラフィ・CTA の見た目と
 *       ホバーアニメーションを定義する
 */
/* 対象: .jumoku-hero 本体 | 目的: 100vh未満なら100vh、超えたらコンテンツ高さ（vh指定なし）・上寄せ */
.jumoku-hero {
  /* 100vhを超えない場合は100vh、超える場合は height を指定しないのでコンテンツに合わせて伸びる（vhに縛られない） */
  min-height: 100vh !important;
  padding: 0 !important;
  /* viewport-fit=cover 時、角丸・ノッチ端末でもコンテンツが隠れないよう safe-area を加える */
  padding-top: calc(8vh + env(safe-area-inset-top, 0px)) !important;
  padding-bottom: env(safe-area-inset-bottom, 0px) !important;
  margin: 0 !important;
  position: relative;
  overflow: hidden; /* 背景アニメーションがはみ出さないように */
  display: flex !important;
  align-items: flex-start !important; /* 上寄せ */
  /* 対象: 背景画像ラッパー | 目的: transform でアニメーション（Ken Burns 風） */
}
.jumoku-hero .jumoku-hero-bg {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-size: cover !important;
  background-position: center !important;
  z-index: 0 !important;
  will-change: transform !important;
  /* PC: ほんの少しずつ中央へ拡大（最大 110%） */
}
@media (min-width: 1025px) {
  .jumoku-hero .jumoku-hero-bg {
    transform-origin: center 0% !important;
    animation: jumoku-hero-bg-zoom 20s ease-in-out infinite alternate !important;
  }
}
.jumoku-hero .jumoku-hero-bg {
  /* スマホ: background-position で右へずれていく（枠は固定・画像内でパン、切れない） */
}
@media (max-width: 1024px) {
  .jumoku-hero .jumoku-hero-bg {
    /* 1. 枠より一回り大きくする */
    width: 300% !important;
    height: 100% !important;
    /* 3. 画像の見た目は維持 */
    background-size: cover !important;
    background-position: center !important;
    /* 4. transform で「予白」の範囲内を動かす */
    animation: jumoku-hero-bg-slide-only 25s ease-in-out infinite alternate !important;
    will-change: transform !important;
  }
}
.jumoku-hero {
  /* 対象: オーバーレイ層（青） | 目的: 背景画像の上に青系を重ねる */
}
.jumoku-hero::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(33, 90, 156, 0.61) !important; /* Hero専用のオーバーレイ色 */
  z-index: 1 !important;
}
.jumoku-hero {
  /* 対象: オーバーレイ層（黒） | 目的: さらに暗くして文字を読みやすくする */
}
.jumoku-hero::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(0, 0, 0, 0.3) !important; /* Hero専用のオーバーレイ色 */
  z-index: 1 !important;
}
.jumoku-hero {
  /* 対象: コンテンツラッパー | 目的: 最大幅・余白・z-index で前面に出す */
}
.jumoku-hero .section-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 48px !important;
  padding-right: 48px !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  position: relative;
  z-index: 2;
  width: 100% !important;
}
.jumoku-hero {
  /* 対象: グリッド行 | 目的: 左右マージンを打ち消す */
}
.jumoku-hero .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.jumoku-hero {
  /* 対象: メインカラム | 目的: 最大幅・左右パディングを指定 */
}
.jumoku-hero .col-lg-10,
.jumoku-hero .col-xl-8 {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 768px !important;
}
.jumoku-hero {
  /* 対象: ヒーロー内バッジ（ラベル） | 目的: Figma準拠の枠付きラベル見た目 */
}
.jumoku-hero .jumoku-hero-badge {
  margin-bottom: 24px !important;
  margin-top: 0 !important;
}
.jumoku-hero .jumoku-hero-badge .border {
  border: 1px solid var(--jumoku-color-accent-border) !important;
  border-radius: 0 !important;
  padding: 6px 16px !important;
  display: inline-block !important;
  font-size: 14px !important;
  font-weight: var(--jumoku-font-weight-normal) !important;
  line-height: 20px !important;
  letter-spacing: 0.05em !important;
  color: var(--jumoku-color-accent) !important;
  background: transparent !important;
  margin: 0 !important;
}
.jumoku-hero {
  /* 対象: ヒーロー一番上のアピール文言 | 目的: コラボ企画の訴求 */
}
.jumoku-hero .jumoku-hero-appeal {
  display: inline-block !important;
  font-size: 20px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.08em !important;
  color: rgba(255, 255, 255, 0.95) !important;
  background: rgba(0, 0, 0, 0.25) !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
  padding: 8px 16px !important;
  margin: 0 0 20px 0 !important;
}
@media (max-width: 768px) {
  .jumoku-hero .jumoku-hero-appeal {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: fit-content !important;
    text-align: center !important;
  }
}
.jumoku-hero {
  /* 対象: ヒーロー見出し（h1） | 目的: Figma準拠のタイトル書式 */
}
.jumoku-hero .jumoku-hero-title {
  font-size: var(--jumoku-font-size-h1) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.6 !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 32px !important;
  margin-top: 50px !important;
  color: white !important;
}
.jumoku-hero {
  /* 対象: ヒーローリード文 | 目的: Figma準拠の本文書式 */
}
.jumoku-hero .jumoku-hero-text {
  font-size: 22px !important;
  line-height: 1.75 !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 48px !important;
  margin-top: 0 !important;
  color: var(--jumoku-color-text-white-90) !important;
}
.jumoku-hero {
  /* 対象: ボタン群のラッパー | 目的: 横並び、SP時は縦並びに切替 */
}
.jumoku-hero .jumoku-hero-buttons {
  display: flex !important;
  flex-direction: row !important;
  gap: 16px !important;
  align-items: flex-start !important;
  margin: 0 !important;
  margin-top: 32px !important; /* 「まずはご相談ください」の上余白 */
  margin-bottom: 48px !important; /* コンテンツが100vh超のとき、ボタン下とセクション端の間に余白 */
}
@media (max-width: 640px) {
  .jumoku-hero .jumoku-hero-buttons {
    flex-direction: column !important;
  }
}
@media (min-width: 641px) {
  .jumoku-hero .jumoku-hero-buttons {
    flex-direction: row !important;
  }
}
.jumoku-hero {
  /* 対象: 「まずはご相談ください」ボタン＋クリックアイコン | 目的: レイアウト・ホバー時の浮き上がりとアイコンのバウンス */
}
.jumoku-hero .jumoku-hero-btn-with-click {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 16px !important;
  transition: transform 0.5s ease, box-shadow 0.5s ease, background-color 0.5s ease !important;
}
.jumoku-hero .jumoku-hero-btn-with-click:hover {
  transform: translateY(-2px) scale(1.02) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15) !important;
}
.jumoku-hero .jumoku-hero-btn-with-click:hover .jumoku-hero-click-icon {
  animation: jumoku-hero-click-icon-bounce 0.5s ease !important;
}
.jumoku-hero .jumoku-hero-btn-with-click .jumoku-hero-click-icon {
  display: inline-block !important;
  width: 25px !important;
  height: auto !important;
  object-fit: contain !important;
  vertical-align: middle !important;
  margin-left: 16px !important; /* 文字とアイコンの間（gap が効かない場合の保険） */
}

/* 対象: クリックアイコン | 目的: ホバー時に一瞬拡大するバウンス */
@keyframes jumoku-hero-click-icon-bounce {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.2);
  }
}
/* ヒーロー背景アニメーション（トップレベルで定義） */
@keyframes jumoku-hero-bg-zoom {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1);
  }
}
@keyframes jumoku-hero-bg-pan-right {
  0% {
    background-position: 0px center !important;
  }
  100% {
    background-position: -300px center !important;
  } /* 画像内で右方向にパン、枠は動かさない */
}
/* 枠の中で画像を左右に振るアニメーション */
@keyframes jumoku-hero-bg-slide-only {
  0% {
    transform: translateX(-60%);
  } /* 左に少し寄る */
  100% {
    transform: translateX(0%);
  } /* 右に少し寄る */
}
/* ===== Greeting Section（ご挨拶） =====
 * 対象: ご挨拶セクション（.jumoku-greeting）およびその子要素
 * 目的: タイトル・見出し・本文の書式とレイアウトを定義する（セクション基本・container は _02_sections.scss）
 */
.jumoku-greeting {
  /* 対象: タイトル部分のラッパー | 目的: 中央寄せ・下余白で見出しブロックを構成 */
}
.jumoku-greeting .jumoku-greeting-title-wrapper {
  display: inline-block !important;
  margin-bottom: 88px !important;
  text-align: center !important;
}
.jumoku-greeting {
  /* 対象: 見出し上下の飾り線 | 目的: h2「ご挨拶」の上下に短いラインを表示 */
}
.jumoku-greeting .jumoku-greeting-line-top,
.jumoku-greeting .jumoku-greeting-line-bottom {
  height: 1px !important;
  background-color: var(--jumoku-color-secondary-dark) !important;
  width: 64px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.jumoku-greeting .jumoku-greeting-line-top {
  margin-bottom: 16px !important;
}
.jumoku-greeting .jumoku-greeting-line-bottom {
  margin-top: 16px !important;
}
.jumoku-greeting {
  /* 対象: セクション内 h3 | 目的: 見出しの書式（サイズ・中央揃え） */
}
.jumoku-greeting h3 {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 36px !important;
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  color: var(--jumoku-color-text) !important;
  letter-spacing: 1.2px !important;
  text-align: center !important;
  width: 100% !important;
}
.jumoku-greeting {
  /* 対象: 本文コンテンツのラッパー | 目的: 最大幅・縦方向の gap で段落を並べる */
}
.jumoku-greeting .jumoku-greeting-content {
  max-width: 800px !important;
  margin: 0 auto !important;
  display: flex;
  flex-direction: column;
  gap: 32px !important;
  /* 対象: 先頭ブロック（h3 のコンテナ） | 目的: 下ボーダー・中央揃えで見出しを区切る */
}
.jumoku-greeting .jumoku-greeting-content > div:first-child {
  padding-bottom: 32px !important;
  border-bottom: 1px solid var(--jumoku-color-secondary-border) !important;
  text-align: center !important;
}
.jumoku-greeting .jumoku-greeting-content > div:first-child h3 {
  margin-bottom: 0 !important;
}
.jumoku-greeting .jumoku-greeting-content {
  /* 対象: 中間の段落（先頭・最終以外） | 目的: 本文のフォント・行間・色を指定 */
}
.jumoku-greeting .jumoku-greeting-content > div:not(:first-child):not(.jumoku-greeting-final) p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.9 !important;
  letter-spacing: var(--jumoku-letter-spacing-base) !important;
  margin-bottom: 0 !important;
  color: var(--jumoku-color-primary-text) !important;
}
.jumoku-greeting .jumoku-greeting-content {
  /* 対象: 最終パラグラフ | 目的: 上ボーダー・上余白・中央揃えで締めの一文を表示 */
}
.jumoku-greeting .jumoku-greeting-content .jumoku-greeting-final {
  margin-top: 48px !important;
  padding-top: 48px !important;
  border-top: 1px solid var(--jumoku-color-secondary-border) !important;
  text-align: center !important;
  line-break: strict !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}
.jumoku-greeting {
  /* 対象: 「規格型樹木葬墓」などの強調テキスト | 目的: 色・字重で強調表示 */
}
.jumoku-greeting .jumoku-greeting-highlight {
  color: var(--jumoku-color-secondary-dark) !important;
  font-weight: var(--jumoku-font-weight-normal) !important;
}
.jumoku-greeting {
  /* 対象: セクション内の一般段落 p | 目的: 共通のフォント・行間・色（上記で上書きされない部分用） */
}
.jumoku-greeting p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.9 !important;
  letter-spacing: var(--jumoku-letter-spacing-base) !important;
  margin-bottom: 0 !important;
  color: var(--jumoku-color-text-black-90) !important;
}
.jumoku-greeting .under-line {
  text-decoration: underline !important;
  text-underline-position: under !important;
  text-decoration-thickness: 2px !important;
  text-decoration-color: var(--jumoku-color-secondary-dark) !important;
}

/* ===== Current Situation Section ===== */
/* セクション基本スタイル（padding, margin, background-color）は_02_sections.scssで定義 */
@media (min-width: 768px) {
  .jumoku-current-situation {
    padding-top: 128px !important;
    padding-bottom: 128px !important;
  }
}
@media (min-width: 768px) {
  .jumoku-current-situation .section-container {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
.jumoku-current-situation-description {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  max-width: 768px !important;
  margin: 0 auto !important;
}

/* h2スタイルは_02_sections.scssで共通定義 */
/* CurrentSituation - カードグリッド */
.page-template-page-jumoku .row.jumoku-current-situation-cards,
.row.jumoku-current-situation-cards,
.jumoku-current-situation-cards {
  max-width: 1024px !important;
  width: 100% !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 32px !important;
  /* Bootstrapのrowクラスの負のマージンを確実に上書きして中央揃え */
  margin-left: auto !important;
  margin-right: auto !important;
}

.jumoku-current-situation-cards > .col-md-6 {
  flex: 0 0 calc(50% - 16px) !important;
  max-width: calc(50% - 16px) !important;
  /* Bootstrapのcolクラスのパディングを上書き */
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-bottom: 0 !important;
}

@media (max-width: 767px) {
  .jumoku-current-situation-cards > .col-md-6 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
/* CurrentSituation - カードスタイル */
.jumoku-situation-card {
  padding: 32px !important;
  background-color: var(--jumoku-color-bg-white) !important;
  border: 1px solid var(--jumoku-color-border) !important;
  border-radius: 0 !important;
  box-shadow: 0 1px 3px var(--jumoku-color-shadow) !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
  height: 100% !important;
}

.jumoku-situation-card:hover {
  border-color: var(--jumoku-color-secondary) !important;
  box-shadow: 0 2px 6px var(--jumoku-color-shadow-medium) !important;
}

/* カードヘッダー（バッジとタイトル） */
.jumoku-situation-card-header {
  display: flex !important;
  align-items: center !important; /* アイコンを上下中央に */
  gap: 16px !important;
  margin-bottom: 16px !important;
}

/* 番号バッジ（円形） - jumoku-process-step の丸囲み数字と同一書式 */
.jumoku-current-situation-icon {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  border-radius: 50% !important;
  border: 2px solid var(--jumoku-color-primary) !important;
  background-color: transparent !important;
  color: var(--jumoku-color-primary) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  font-size: var(--jumoku-font-size-base) !important;
  letter-spacing: 0.05em !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.jumoku-current-situation h3,
.jumoku-situation-h3 {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  padding-top: 4px !important;
  color: var(--jumoku-color-primary) !important;
}

.jumoku-situation-text {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin: 0 !important;
}

/* CurrentSituation - 最後のボックス（吹き出し形式） */
.jumoku-situation-final-wrapper {
  display: flex !important;
  align-items: flex-start !important;
  gap: 24px !important;
  margin-top: 64px !important;
}

.jumoku-situation-final-right {
  flex-direction: row !important;
  justify-content: flex-end !important;
}

.jumoku-situation-final-illustration {
  flex-shrink: 0 !important;
  width: 220px !important;
  height: 220px !important;
}

.jumoku-situation-final-illustration-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.jumoku-situation-final-speech-bubble {
  position: relative !important;
  background-color: var(--jumoku-color-bg-white) !important;
  border: 2px solid var(--jumoku-color-border) !important;
  border-radius: 12px !important;
  padding: 24px 32px !important;
  box-shadow: 0 4px 12px var(--jumoku-color-shadow-medium) !important;
  flex: 1 !important;
  max-width: 896px !important;
}

/* 右側の吹き出し（イラストが右側） */
.jumoku-situation-final-right .jumoku-situation-final-speech-bubble::before {
  content: "" !important;
  position: absolute !important;
  right: -20px !important;
  top: 32px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 12px 0 12px 20px !important;
  border-color: transparent transparent transparent var(--jumoku-color-border) !important;
}

.jumoku-situation-final-right .jumoku-situation-final-speech-bubble::after {
  content: "" !important;
  position: absolute !important;
  right: -16px !important;
  top: 34px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 10px 0 10px 16px !important;
  border-color: transparent transparent transparent var(--jumoku-color-bg-white) !important;
}

.jumoku-situation-final-speech-bubble p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.9 !important;
  color: var(--jumoku-color-text-dark) !important;
  margin-bottom: 0 !important;
}

.jumoku-situation-final-highlight {
  color: var(--jumoku-color-primary) !important;
  font-weight: var(--jumoku-font-weight-normal) !important;
}

@media (min-width: 768px) {
  .jumoku-situation-final-speech-bubble {
    padding: 48px 64px !important;
  }
}
@media (max-width: 768px) {
  .jumoku-situation-final-wrapper {
    flex-direction: column !important;
    gap: 16px !important;
    margin-top: 32px !important;
  }
  .jumoku-situation-final-illustration {
    width: 60% !important;
    margin: 1em auto 5em auto !important;
    order: 2 !important; /* イラストを下に */
  }
  .jumoku-situation-final-speech-bubble {
    padding: 20px 24px !important;
    order: 1 !important; /* 吹き出しを上に */
    max-width: 100% !important;
  }
  /* モバイルでは矢印を下方向（イラスト側）に */
  .jumoku-situation-final-right .jumoku-situation-final-speech-bubble::before {
    right: auto !important;
    left: 32px !important;
    top: auto !important;
    bottom: -20px !important;
    border-width: 20px 12px 0 12px !important;
    border-color: var(--jumoku-color-border) transparent transparent transparent !important;
  }
  .jumoku-situation-final-right .jumoku-situation-final-speech-bubble::after {
    right: auto !important;
    left: 34px !important;
    top: auto !important;
    bottom: -16px !important;
    border-width: 16px 10px 0 10px !important;
    border-color: var(--jumoku-color-bg-white) transparent transparent transparent !important;
  }
}
/* 共通pスタイルは_02_sections.scssで定義 */
/* ===== Data Section ===== */
/* セクション基本スタイルとcontainerスタイルは_02_sections.scssで定義 */
/* Data Section - ヘッダー部分のサブタイトル */
.jumoku-data-subtitle {
  font-size: 16px !important;
  line-height: 1.9 !important;
  color: var(--jumoku-color-data-subtitle) !important;
  max-width: 768px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* カードコンテナ */
.cards-container {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  gap: 24px !important;
}

/* グラフセクション（薄いグレーの背景） */
.jumoku-data-chart-section {
  background-color: var(--jumoku-color-bg-light) !important;
  padding: 32px 48px !important;
  margin-bottom: 24px !important;
  overflow: visible !important;
}

/* 親要素のoverflow設定（引き出し線が切れないように） */
.jumoku-data .row,
.jumoku-data .col-lg-10 {
  overflow: visible !important;
}

@media (min-width: 768px) {
  .jumoku-data-chart-section {
    padding: 30px !important;
  }
}
.jumoku-data-chart-title {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: var(--jumoku-line-height-h3) !important;
  color: var(--jumoku-color-primary) !important;
  margin-bottom: 12px !important;
}

.jumoku-data-chart-description {
  font-size: 14px !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 32px !important;
}

.jumoku-data-chart-container {
  background-color: var(--jumoku-color-bg-white) !important;
  border: 1px solid var(--jumoku-color-border) !important;
  padding: 24px !important;
  margin-bottom: 16px !important;
  position: relative !important;
  min-height: 300px !important;
  overflow: visible !important;
}

@media (min-width: 768px) {
  .jumoku-data-chart-container {
    min-height: 450px !important;
    padding: 10px !important;
  }
}
.jumoku-data-chart-container canvas {
  width: 100% !important;
  margin: 0 auto !important;
}

.jumoku-data-chart-container.circle-chart canvas {
  max-width: 500px !important;
  height: 650px !important;
}

.jumoku-data-chart-source {
  font-size: 12px !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 0 !important;
}

/* サマリーブロック（緑色の背景） */
.jumoku-data-summary {
  background-color: var(--jumoku-color-secondary) !important;
  color: var(--jumoku-color-text-white) !important;
  padding: 20px !important;
  text-align: center !important;
  box-shadow: 0 2px 8px var(--jumoku-color-shadow-medium) !important;
  margin-top: 24px !important;
}

/* サマリーブロック（プライマリカラー背景） */
.jumoku-data-summary-primary {
  background-color: var(--jumoku-color-primary) !important;
}

/* サマリーブロック（アクセントカラー背景） */
.jumoku-data-summary-accent {
  background-color: var(--jumoku-color-accent) !important;
}

@media (min-width: 768px) {
  .jumoku-data-summary {
    padding: 20px !important;
  }
}
.jumoku-data-summary-header {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  margin-bottom: 24px !important;
  flex-wrap: wrap !important;
}

.jumoku-data-summary-label {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.2 !important;
  color: var(--jumoku-color-text-white) !important;
}

.jumoku-data-summary-value {
  font-size: 50px !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.5 !important;
  color: var(--jumoku-color-text-white) !important;
}

@media (min-width: 768px) {
  .jumoku-data-summary-label {
    font-size: 36px !important;
    padding-top: 12px !important;
  }
  .jumoku-data-summary-value {
    font-size: 60px !important;
  }
}
p.jumoku-data-summary-text {
  text-align: left !important;
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.2 !important;
  color: rgba(255, 255, 255, 0.95) !important;
  margin-bottom: 0 !important;
  max-width: 95% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 20px !important;
}

/* データポイント：吹き出し形式 */
.jumoku-data-points {
  display: flex !important;
  flex-direction: column !important;
  gap: 48px !important;
  margin-top: 48px !important;
}

.jumoku-data-speech-bubble-wrapper {
  display: flex !important;
  align-items: flex-start !important;
  gap: 24px !important;
}

.jumoku-data-speech-bubble-left {
  flex-direction: row !important;
}

.jumoku-data-speech-bubble-right {
  flex-direction: row-reverse !important;
  justify-content: flex-end !important;
}

.jumoku-data-speech-bubble-illustration {
  flex-shrink: 0 !important;
  width: 220px !important;
  height: 220px !important;
}

.jumoku-data-illustration-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.jumoku-data-speech-bubble {
  position: relative !important;
  background-color: var(--jumoku-color-bg-white) !important;
  border: 2px solid var(--jumoku-color-border) !important;
  border-radius: 12px !important;
  padding: 24px 32px !important;
  box-shadow: 0 4px 12px var(--jumoku-color-shadow-medium) !important;
  flex: 1 !important;
}

/* 左側の吹き出し（1つ目） */
.jumoku-data-speech-bubble-left .jumoku-data-speech-bubble::before {
  content: "" !important;
  position: absolute !important;
  left: -20px !important;
  top: 32px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 12px 20px 12px 0 !important;
  border-color: transparent var(--jumoku-color-border) transparent transparent !important;
}

.jumoku-data-speech-bubble-left .jumoku-data-speech-bubble::after {
  content: "" !important;
  position: absolute !important;
  left: -16px !important;
  top: 34px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 10px 16px 10px 0 !important;
  border-color: transparent var(--jumoku-color-bg-white) transparent transparent !important;
}

/* 右側の吹き出し（2つ目） */
.jumoku-data-speech-bubble-right .jumoku-data-speech-bubble::before {
  content: "" !important;
  position: absolute !important;
  right: -20px !important;
  top: 32px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 12px 0 12px 20px !important;
  border-color: transparent transparent transparent var(--jumoku-color-border) !important;
}

.jumoku-data-speech-bubble-right .jumoku-data-speech-bubble::after {
  content: "" !important;
  position: absolute !important;
  right: -16px !important;
  top: 34px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 10px 0 10px 16px !important;
  border-color: transparent transparent transparent var(--jumoku-color-bg-white) !important;
}

.jumoku-data-speech-bubble-title {
  font-size: clamp(25px, 6vw, 40px) !important;
  letter-spacing: clamp(-3px, -0.1vw, 0px) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-primary) !important;
  margin-bottom: 16px !important;
  line-height: 1.5 !important;
}

.jumoku-data-speech-bubble-content {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: var(--jumoku-line-height-base) !important;
  color: var(--jumoku-color-text) !important;
}

@media (max-width: 768px) {
  .jumoku-data-points {
    gap: 32px !important;
    margin-top: 32px !important;
  }
  .jumoku-data-speech-bubble-wrapper {
    flex-direction: column !important;
    gap: 16px !important;
  }
  /* モバイルでは吹き出しを上、イラストを下に配置 */
  .jumoku-data-speech-bubble-left,
  .jumoku-data-speech-bubble-right {
    flex-direction: column !important;
  }
  .jumoku-data-speech-bubble-illustration {
    width: 60% !important;
    margin: 1em auto 5em auto !important;
    order: 2 !important; /* イラストを下に */
  }
  .jumoku-data-speech-bubble {
    padding: 20px 24px !important;
    order: 1 !important; /* 吹き出しを上に */
    margin-bottom: 0 !important;
  }
  /* 左側の吹き出し：矢印を下方向（イラスト側）に */
  .jumoku-data-speech-bubble-left .jumoku-data-speech-bubble::before {
    left: auto !important;
    right: 32px !important;
    top: auto !important;
    bottom: -20px !important;
    border-width: 20px 12px 0 12px !important;
    border-color: var(--jumoku-color-border) transparent transparent transparent !important;
  }
  .jumoku-data-speech-bubble-left .jumoku-data-speech-bubble::after {
    left: auto !important;
    right: 34px !important;
    top: auto !important;
    bottom: -16px !important;
    border-width: 16px 10px 0 10px !important;
    border-color: var(--jumoku-color-bg-white) transparent transparent transparent !important;
  }
  /* 右側の吹き出し：矢印を下方向（イラスト側）に */
  .jumoku-data-speech-bubble-right .jumoku-data-speech-bubble::before {
    right: auto !important;
    left: 32px !important;
    top: auto !important;
    bottom: -20px !important;
    border-width: 20px 12px 0 12px !important;
    border-color: var(--jumoku-color-border) transparent transparent transparent !important;
  }
  .jumoku-data-speech-bubble-right .jumoku-data-speech-bubble::after {
    right: auto !important;
    left: 34px !important;
    top: auto !important;
    bottom: -16px !important;
    border-width: 16px 10px 0 10px !important;
    border-color: var(--jumoku-color-bg-white) transparent transparent transparent !important;
  }
}
/* ===== Benefits Section ===== */
/* セクション基本スタイルとcontainerスタイルは_02_sections.scssで定義 */
/* Benefits - グリッドレイアウト */
.jumoku-benefits-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)) !important;
  gap: 24px !important;
  margin-top: 48px !important;
}

/* Benefits - カードアイテム（共通 .jumoku-card-item-checkbox を継承） */
.jumoku-benefits-card-item:hover {
  border-color: var(--jumoku-color-secondary) !important;
  box-shadow: 0 2px 6px var(--jumoku-color-shadow-medium) !important;
}

.jumoku-benefits-card-subtitle {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 0 !important;
}

.jumoku-benefits-intro {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  max-width: 768px !important;
  margin: 0 auto !important;
}

.jumoku-benefits-intro-highlight {
  color: var(--jumoku-color-text) !important;
  font-weight: var(--jumoku-font-weight-normal) !important;
}

@media (max-width: 768px) {
  .jumoku-benefits-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    margin-top: 32px !important;
  }
  .jumoku-card-item-checkbox,
  .jumoku-benefits-card-item {
    padding: 24px !important;
  }
  .jumoku-card-item-checkbox-title,
  .jumoku-benefits-card-title {
    font-size: var(--jumoku-font-size-h3-mobile) !important;
  }
}
/* ===== Recommend Points Section ===== */
/* セクション基本スタイルは_02_sections.scssで定義 */
/* Recommend Points - カードグリッド（レスポンシブ・高さ揃え） */
.jumoku-recommend-points-cards {
  display: grid !important;
  gap: 24px !important;
  grid-template-columns: 1fr !important;
}

@media (min-width: 768px) {
  .jumoku-recommend-points-cards {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }
}
.jumoku-recommend-points-cards > .jumoku-recommend-points-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  height: 100% !important;
  min-height: 0 !important;
}

.jumoku-recommend-points-card-inner {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-height: 0 !important;
}

.jumoku-recommend-points-card-icon {
  flex-shrink: 0 !important;
}

.jumoku-recommend-points-card-body {
  flex: 1 !important;
  min-width: 0 !important;
}

/* Recommend Points - カードスタイル */
.jumoku-recommend-points-card {
  padding: 24px !important;
  border: 1px solid var(--jumoku-color-border) !important;
  background-color: var(--jumoku-color-bg-light) !important;
  transition: border-color 0.3s ease !important;
}

.jumoku-recommend-points-card:hover {
  border-color: var(--jumoku-color-accent) !important;
}

/* 丸囲み数字 - jumoku-process-step と同一書式 */
.jumoku-recommend-points .rounded-circle {
  width: 64px !important;
  height: 64px !important;
  border: 2px solid var(--jumoku-color-primary) !important;
  background-color: transparent !important;
  color: var(--jumoku-color-primary) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  font-size: var(--jumoku-font-size-base) !important;
  letter-spacing: 0.05em !important;
  flex-shrink: 0 !important;
}

.jumoku-recommend-points-card p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-dark) !important;
  margin-bottom: 0 !important;
  padding-top: 6px !important;
}

/* containerスタイルは_02_sections.scssで定義 */
/* h2スタイルは_02_sections.scssで共通定義 */
.jumoku-recommend-points h3 {
  font-size: var(--jumoku-font-size-h3);
  font-weight: var(--jumoku-font-weight-medium);
  line-height: var(--jumoku-line-height-h3);
  margin-bottom: 32px;
}

.jumoku-recommend-points p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.9 !important;
}

/* Recommend Points - Important Section（他の吹き出しと同構造に統一） */
.jumoku-recommend-important-wrapper {
  display: flex !important;
  align-items: center !important;
  gap: 24px !important;
  margin-top: 64px !important;
}

/* イラストが右側の並び */
.jumoku-recommend-important-right {
  flex-direction: row !important;
  justify-content: flex-end !important;
}

.jumoku-recommend-important-illustration {
  flex-shrink: 0 !important;
  width: 300px !important;
  height: 220px !important;
}

.jumoku-recommend-important-img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

/* 吹き出し本体（Data/CurrentSituationと同仕様：白背景＋枠＋二重しっぽ） */
.jumoku-recommend-important {
  position: relative !important;
  background-color: var(--jumoku-color-bg-white) !important;
  border: 2px solid var(--jumoku-color-border) !important;
  border-radius: 12px !important;
  padding: 24px 32px !important;
  box-shadow: 0 4px 12px var(--jumoku-color-shadow-medium) !important;
  flex: 1 !important;
  max-width: 896px !important;
}

/* 右側の吹き出し（イラストが右側） */
.jumoku-recommend-important-right .jumoku-recommend-important::before {
  content: "" !important;
  position: absolute !important;
  right: -20px !important;
  top: 32px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 12px 0 12px 20px !important;
  border-color: transparent transparent transparent var(--jumoku-color-border) !important;
}

.jumoku-recommend-important-right .jumoku-recommend-important::after {
  content: "" !important;
  position: absolute !important;
  right: -16px !important;
  top: 34px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 10px 0 10px 16px !important;
  border-color: transparent transparent transparent var(--jumoku-color-bg-white) !important;
}

.jumoku-recommend-important-title {
  font-size: clamp(25px, 6vw, 30px) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.5 !important;
  margin-bottom: 16px !important;
  color: var(--jumoku-color-primary) !important;
}

.jumoku-recommend-important-text {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: var(--jumoku-line-height-base) !important;
  color: var(--jumoku-color-text) !important;
  margin-bottom: 0 !important;
}

@media (min-width: 768px) {
  .jumoku-recommend-important {
    padding: 48px 64px !important;
  }
}
@media (max-width: 768px) {
  .jumoku-recommend-important-wrapper {
    flex-direction: column !important;
    gap: 16px !important;
    margin-top: 32px !important;
  }
  .jumoku-recommend-important-illustration {
    width: 60% !important;
    margin: 1em auto 5em auto !important;
    order: 2 !important; /* イラストを下に */
  }
  .jumoku-recommend-important {
    padding: 20px 24px !important;
    order: 1 !important; /* 吹き出しを上に */
    max-width: 100% !important;
  }
  /* モバイルでは矢印を下方向（イラスト側）に */
  .jumoku-recommend-important-right .jumoku-recommend-important::before {
    right: auto !important;
    left: 32px !important;
    top: auto !important;
    bottom: -20px !important;
    border-width: 20px 12px 0 12px !important;
    border-color: var(--jumoku-color-border) transparent transparent transparent !important;
  }
  .jumoku-recommend-important-right .jumoku-recommend-important::after {
    right: auto !important;
    left: 34px !important;
    top: auto !important;
    bottom: -16px !important;
    border-width: 16px 10px 0 10px !important;
    border-color: var(--jumoku-color-bg-white) transparent transparent transparent !important;
  }
}
/* ===== Product Image Section ===== */
/* セクション基本スタイルは_02_sections.scssで定義 */
.jumoku-product-image {
  /* container、h2、pスタイルは_02_sections.scssで定義 */
}
.jumoku-product-image h3 {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: var(--jumoku-line-height-h3) !important;
  margin: 1rem 0 !important;
}
.jumoku-product-image .shadow img {
  border-radius: 0;
  box-shadow: 0 2px 8px var(--jumoku-color-shadow-medium);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.jumoku-product-image .shadow img:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px var(--jumoku-color-shadow-dark);
}
.jumoku-product-image {
  /* カード行：2枚のカードの高さを揃える */
}
.jumoku-product-image .jumoku-product-image-cards-row {
  align-items: stretch !important;
}
.jumoku-product-image .jumoku-product-image-cards-row > [class*=col-] {
  display: flex !important;
  flex-direction: column !important;
}
.jumoku-product-image {
  /* スマホ：規格型樹木葬墓の左右余白を他セクションと統一（section-container の 16px のみにする） */
}
@media (max-width: 768px) {
  .jumoku-product-image .jumoku-product-image-cards-row > [class*=col-] {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 16px !important;
  }
  .jumoku-product-image .jumoku-product-image-cards-row > [class*=col-]:last-child {
    margin-bottom: 0 !important;
  }
}
.jumoku-product-image {
  /* Product Image - カードスタイル */
}
.jumoku-product-image .jumoku-product-image-card {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  background-color: var(--jumoku-color-bg-white) !important;
  padding: 24px 32px !important;
  border: 3px solid var(--jumoku-color-border) !important;
  margin-bottom: 0 !important;
}
@media (max-width: 768px) {
  .jumoku-product-image .jumoku-product-image-card {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
.jumoku-product-image .jumoku-product-image-card:last-of-type {
  margin-bottom: 0 !important;
}
.jumoku-product-image .jumoku-product-image-card img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  background-color: #f9f9f9 !important;
  margin-bottom: 16px !important;
  aspect-ratio: 4/3 !important;
  padding: 1rem !important;
}
@media (max-width: 640px) {
  .jumoku-product-image .jumoku-product-image-card img {
    aspect-ratio: 1 !important; /* スマホは1:1（正方形） */
  }
}
.jumoku-product-image .jumoku-product-image-card h3 {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.5 !important;
  color: var(--jumoku-color-text-dark) !important;
  margin-bottom: 8px !important;
  text-align: center !important;
}
.jumoku-product-image .jumoku-product-image-card p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.5 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 0 !important;
  text-align: center !important;
}
.jumoku-product-image {
  /* カード内・説明＋画像リンク（観音様・天竺石共通）：ブロックを伸ばしてバナーを下寄せ */
}
.jumoku-product-image .jumoku-product-image-ishinko,
.jumoku-product-image .jumoku-product-image-tenjiku {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  padding: 12px !important;
  border-top: 1px solid var(--jumoku-color-border) !important;
}
.jumoku-product-image .jumoku-product-image-ishinko .jumoku-product-image-card-link,
.jumoku-product-image .jumoku-product-image-tenjiku .jumoku-product-image-card-link {
  margin-top: auto !important;
}
.jumoku-product-image .jumoku-product-image-ishinko .jumoku-product-image-ishinko-text,
.jumoku-product-image .jumoku-product-image-ishinko .jumoku-product-image-tenjiku-text,
.jumoku-product-image .jumoku-product-image-tenjiku .jumoku-product-image-ishinko-text,
.jumoku-product-image .jumoku-product-image-tenjiku .jumoku-product-image-tenjiku-text {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text) !important;
  margin-bottom: 12px !important;
  text-align: left !important;
}
.jumoku-product-image {
  /* テキスト＋画像のサイトリンク（両カード共通）：画像横いっぱい・テキスト下で中央寄せ */
}
.jumoku-product-image .jumoku-product-image-card-link {
  display: block !important;
  text-decoration: none !important;
  color: var(--jumoku-color-text) !important;
  transition: opacity 0.2s ease !important;
}
.jumoku-product-image .jumoku-product-image-card-link:hover {
  opacity: 0.85;
}
.jumoku-product-image .jumoku-product-image-card-link img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  box-shadow: 5px 5px 5px var(--jumoku-color-shadow-medium) !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  aspect-ratio: auto !important;
}
.jumoku-product-image .jumoku-product-image-card-link .jumoku-product-image-card-link-text {
  display: block !important;
  margin-top: 8px !important;
  text-align: center !important;
  font-size: var(--jumoku-font-size-base) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-secondary) !important;
}
.jumoku-product-image .description {
  list-style: none !important;
  margin-top: 5rem !important;
  margin-right: auto !important;
  margin-left: auto !important;
  width: 80% !important;
  padding-left: 0 !important;
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 0 !important;
  text-align: left !important;
}
.jumoku-product-image .description li {
  position: relative !important;
  padding-left: 2em !important;
  margin-bottom: 1.5em !important;
}
.jumoku-product-image .description li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.3em !important;
  width: 1.25em !important;
  height: 1.25em !important;
  background-image: url("images/checkbox.png") !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}
.jumoku-product-image .jumoku-product-image-footer {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 0 !important;
}
.jumoku-product-image {
  /* Product Image - 価格表示 */
}
.jumoku-product-image .jumoku-product-image-price {
  margin-top: 48px !important;
  padding: 40px 32px !important;
  background-color: var(--jumoku-color-bg-light) !important;
  border: 2px solid var(--jumoku-color-border) !important;
  border-radius: 8px !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-main {
  font-size: clamp(30px, 7vw, 48px) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-primary) !important;
  line-height: 1.2 !important;
  margin-bottom: 16px !important;
  letter-spacing: 0.02em !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-main .price {
  padding: 0 10px !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-main .yori, .jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-main .tax-excluded {
  font-size: 0.7em !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-validity {
  font-size: var(--jumoku-font-size-base) !important;
  color: var(--jumoku-color-text) !important;
  margin-top: 40px !important;
  margin-bottom: 40px !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-validity .yuukou-kigen {
  background-color: var(--jumoku-color-primary) !important;
  color: var(--jumoku-color-text-white) !important;
  padding: 5px 10px !important;
  border-radius: 5px !important;
  vertical-align: middle !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-validity .yuukou-hiduke {
  font-size: clamp(20px, 6vw, 30px) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  padding: 0 10px !important;
  vertical-align: middle !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-validity .yuukou-omousikomi {
  vertical-align: middle !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-notes-wrapper {
  max-width: 600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-notes-wrapper .jumoku-product-image-price-notes-title {
  font-size: var(--jumoku-font-size-small) !important;
  line-height: 1.1 !important;
  margin: 0 !important;
  text-align: left !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-notes-wrapper .jumoku-product-image-price-notes {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: var(--jumoku-font-size-xs) !important;
  line-height: 1.1 !important;
  color: var(--jumoku-color-text-gray) !important;
  text-align: left !important;
  max-width: 600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-notes-wrapper .jumoku-product-image-price-notes li {
  position: relative !important;
  padding-left: 1.8em !important;
  padding-top: 0.5em !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-notes-wrapper .jumoku-product-image-price-notes li::before {
  content: "・" !important;
  position: absolute !important;
  left: 0.6em !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-notes-wrapper .jumoku-product-image-price-notes p {
  font-size: var(--jumoku-font-size-xs) !important;
  line-height: 1.1 !important;
  text-align: left !important;
  margin: 0 !important;
  padding-left: 2.4em !important;
}
.jumoku-product-image .jumoku-product-image-price .jumoku-product-image-price-notes-final {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.1 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin: 0 auto !important;
  margin-top: 30px !important;
}

/* ===== Gallery Section ===== */
/* セクション基本スタイル、container、h2、pスタイルは_02_sections.scssで定義 */
.jumoku-gallery-wrapper {
  margin-top: 10rem !important;
}
.jumoku-gallery-wrapper .jumoku-gallery-item p {
  text-align: center !important;
}

/* 4ブロック行：gridで縦横に均等なgap（Bootstrapの余白をリセット） */
.jumoku-gallery-cards-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 24px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.jumoku-gallery-cards-row > [class*=col-] {
  max-width: none !important;
  padding: 0 !important;
  min-width: 0 !important;
}

@media (min-width: 768px) {
  .jumoku-gallery-cards-row {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
/* ギャラリー4ブロック（2×2カード）：白背景・薄いグレー枠・左揃え */
.jumoku-gallery-card {
  background-color: var(--jumoku-color-bg-white) !important;
  border: 1px solid var(--jumoku-color-border) !important;
  border-radius: 0 !important;
  padding: 24px 28px !important;
  height: 100% !important;
  text-align: left !important;
}
.jumoku-gallery-card h3 {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.5 !important;
  color: var(--jumoku-color-text-dark) !important;
  margin: 0 0 12px !important;
}
.jumoku-gallery-card p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin: 0 !important;
}

/* ギャラリー下・説明ブロック（白背景・茶枠・左揃え・縦余白多め） */
.jumoku-gallery-final {
  margin-top: 32px !important;
  background-color: var(--jumoku-color-bg-white) !important;
  border: 1px solid var(--jumoku-color-accent) !important;
  border-radius: 0 !important;
  padding: 40px 32px !important;
  text-align: left !important;
}
.jumoku-gallery-final p {
  margin: 0 !important;
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-dark) !important;
}
.jumoku-gallery-final .jumoku-gallery-final-highlight {
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
}

/* ===== Introduction Results Section: 導入実績（Figma準拠） ===== */
/* セクション背景は_02_sections.scssで白指定 */
.jumoku-intro-results .jumoku-intro-results-content {
  background-color: var(--jumoku-color-bg-white) !important;
  border: 1px solid var(--jumoku-color-border) !important;
  padding: 32px 40px !important;
}
.jumoku-intro-results .jumoku-intro-results-lead {
  margin: 0 !important;
  color: var(--jumoku-color-text-gray) !important;
  line-height: 1.75 !important;
}
.jumoku-intro-results {
  /* 数値3カード（Figma: p-8 border bg-[#fafaf8]） */
}
.jumoku-intro-results .jumoku-intro-results-stats {
  max-width: 1024px;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  /* スマホ：縦並び・カード間に余白 */
}
@media (max-width: 767px) {
  .jumoku-intro-results .jumoku-intro-results-stats {
    flex-direction: column !important;
  }
  .jumoku-intro-results .jumoku-intro-results-stats > [class*=col-] {
    width: 100% !important;
    max-width: none !important;
    margin-bottom: 16px !important;
  }
  .jumoku-intro-results .jumoku-intro-results-stats > [class*=col-]:last-child {
    margin-bottom: 0 !important;
  }
}
.jumoku-intro-results .jumoku-intro-results-stat-card {
  background-color: var(--jumoku-color-bg-light) !important;
  border: 1px solid var(--jumoku-color-border) !important;
  padding: 32px !important;
  height: 100%;
}
@media (max-width: 767px) {
  .jumoku-intro-results .jumoku-intro-results-stat-card {
    padding: 24px 20px !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06) !important;
    min-height: 140px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }
}
.jumoku-intro-results .jumoku-intro-results-stat-number {
  font-size: 3rem !important;
  color: var(--jumoku-color-primary) !important;
  margin-bottom: 16px !important;
  line-height: 1 !important;
}
.jumoku-intro-results .jumoku-intro-results-stat-unit {
  font-size: var(--jumoku-font-size-base) !important;
  color: #5a5a5a !important;
  letter-spacing: 0.05em !important;
}
.jumoku-intro-results .jumoku-intro-results-stat-label {
  margin-top: 12px !important;
  font-size: 16px !important;
  color: #5a5a5a !important;
}
.jumoku-intro-results {
  /* 小見出し・リード */
}
.jumoku-intro-results .jumoku-intro-results-subtitle {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
}
.jumoku-intro-results .jumoku-intro-results-sublead {
  font-size: var(--jumoku-font-size-base) !important;
  color: #5a5a5a !important;
  line-height: 1.75 !important;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}
.jumoku-intro-results {
  /* 実際の施工例カード（Figma: aspect-[4/3] image, title, desc） */
}
.jumoku-intro-results .jumoku-intro-results-case img {
  width: 100% !important;
  aspect-ratio: 4/3 !important;
  object-fit: cover !important;
  display: block !important;
  background-color: var(--jumoku-color-border) !important;
}
.jumoku-intro-results .jumoku-intro-results-case-title {
  font-size: 14px !important;
  color: var(--jumoku-color-text-dark) !important;
  margin-bottom: 4px !important;
  text-align: center !important;
}
.jumoku-intro-results .jumoku-intro-results-case-desc {
  font-size: 12px !important;
  color: #5a5a5a !important;
  text-align: center !important;
  margin: 0 !important;
}
.jumoku-intro-results .jumoku-intro-results-note {
  font-size: 12px !important;
  color: #5a5a5a !important;
}
.jumoku-intro-results {
  /* ブロック（地域別・宗派別・規模別） */
}
.jumoku-intro-results .jumoku-intro-results-block {
  border: 1px solid var(--jumoku-color-border) !important;
  padding: 32px 48px !important;
}
.jumoku-intro-results .jumoku-intro-results-block-title {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
}
.jumoku-intro-results {
  /* 地域別バー（グリーン） */
}
.jumoku-intro-results .jumoku-intro-results-bars {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 24px !important;
}
@media (min-width: 768px) {
  .jumoku-intro-results .jumoku-intro-results-bars {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (min-width: 768px) {
  .jumoku-intro-results .jumoku-intro-results-bars-2col {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
.jumoku-intro-results .jumoku-intro-results-bar-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 16px !important;
  background-color: var(--jumoku-color-bg-light) !important;
}
.jumoku-intro-results .jumoku-intro-results-bar-label {
  font-size: 14px !important;
  color: var(--jumoku-color-text-dark) !important;
  flex-shrink: 0 !important;
  min-width: 7.5em !important;
}
.jumoku-intro-results .jumoku-intro-results-bar-wrap {
  flex: 1 !important;
  min-width: 0 !important;
  height: 8px !important;
  background-color: var(--jumoku-color-bg-light) !important;
  overflow: hidden !important;
}
.jumoku-intro-results .jumoku-intro-results-bar-fill {
  height: 100% !important;
  background-color: var(--jumoku-color-secondary) !important;
  transition: width 0.3s ease !important;
}
.jumoku-intro-results .jumoku-intro-results-bar-fill-primary {
  background-color: var(--jumoku-color-primary) !important;
}
.jumoku-intro-results .jumoku-intro-results-bar-value {
  color: var(--jumoku-color-primary) !important;
  font-size: var(--jumoku-font-size-base) !important;
  min-width: 2rem !important;
  text-align: right !important;
}
.jumoku-intro-results {
  /* 規模別（アクセント色バー） */
}
.jumoku-intro-results .jumoku-intro-results-scale-item {
  margin-bottom: 24px !important;
}
.jumoku-intro-results .jumoku-intro-results-scale-item:last-child {
  margin-bottom: 0 !important;
}
.jumoku-intro-results .jumoku-intro-results-scale-label {
  font-size: 14px !important;
  color: var(--jumoku-color-text-dark) !important;
}
.jumoku-intro-results .jumoku-intro-results-scale-value {
  color: var(--jumoku-color-primary) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
}
.jumoku-intro-results .jumoku-intro-results-scale-bar {
  height: 12px !important;
  background-color: var(--jumoku-color-bg-light) !important;
  overflow: hidden !important;
  margin-top: 8px !important;
}
.jumoku-intro-results .jumoku-intro-results-scale-fill {
  height: 100% !important;
  background-color: var(--jumoku-color-accent) !important;
  transition: width 0.3s ease !important;
}
.jumoku-intro-results .jumoku-intro-results-disclaimer {
  font-size: 12px !important;
  color: #5a5a5a !important;
  line-height: 1.75 !important;
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}

/* ===== Testimonials Section: 導入寺院様からのお言葉（Figmaデザイン準拠） ===== */
/* セクション基本スタイルは_02_sections.scssで定義 */
.jumoku-testimonials .jumoku-testimonials-cards {
  max-width: 1152px;
  display: flex !important;
  flex-wrap: wrap !important;
  margin: 0 auto !important;
}
.jumoku-testimonials .jumoku-testimonials-cards > [class*=col-] {
  min-width: 0;
  margin-bottom: 24px !important;
}
@media (min-width: 768px) {
  .jumoku-testimonials .jumoku-testimonials-cards > [class*=col-] {
    /* 2列・列間24px */
    flex: 0 0 calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;
    box-sizing: border-box !important;
    margin-right: 24px !important;
  }
}
@media (min-width: 768px) {
  .jumoku-testimonials .jumoku-testimonials-cards > [class*=col-]:nth-child(2n) {
    margin-right: 0 !important;
  }
}
.jumoku-testimonials .jumoku-testimonials-cards > [class*=col-]:nth-last-child(-n+2) {
  margin-bottom: 0 !important;
}
.jumoku-testimonials .jumoku-testimonial-card {
  background-color: var(--jumoku-color-bg-white) !important;
  border-radius: 0 !important;
  padding: 24px 32px !important;
  height: 100% !important;
  text-align: left !important;
}
@media (min-width: 768px) {
  .jumoku-testimonials .jumoku-testimonial-card {
    padding: 32px !important;
  }
}
.jumoku-testimonials {
  /* Figma: 左ボーダー4px（規格型=グリーン、オーダーメイド=アクセント） */
}
.jumoku-testimonials .jumoku-testimonial-card-border-l {
  border: none !important;
  border-left: 4px solid var(--jumoku-color-secondary) !important;
}
.jumoku-testimonials .jumoku-testimonial-card-accent {
  border-left-color: var(--jumoku-color-accent) !important;
}
.jumoku-testimonials {
  /* バッジ：Figmaは塗りつぶし（規格型=グリーン、オーダーメイド=アクセント） */
}
.jumoku-testimonials .jumoku-testimonial-badge {
  display: inline-block;
  font-size: 12px !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  letter-spacing: 0.05em !important;
  padding: 4px 10px !important;
  margin-bottom: 8px !important;
}
.jumoku-testimonials .jumoku-testimonial-badge-filled {
  background-color: var(--jumoku-color-secondary) !important;
  border: none !important;
  color: #fff !important;
}
.jumoku-testimonials .jumoku-testimonial-badge-filled.jumoku-testimonial-badge-custom {
  background-color: var(--jumoku-color-accent) !important;
  color: #fff !important;
}
.jumoku-testimonials {
  /* 旧スタイル（アウトラインバッジ）も併用可能 */
}
.jumoku-testimonials .jumoku-testimonial-badge:not(.jumoku-testimonial-badge-filled) {
  color: var(--jumoku-color-text) !important;
  background-color: var(--jumoku-color-bg-light, #f5f5f5) !important;
  border: 1px solid var(--jumoku-color-border) !important;
}
.jumoku-testimonials .jumoku-testimonial-title {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  line-height: 1.5 !important;
  color: var(--jumoku-color-text) !important;
  margin: 0 0 12px !important;
}
.jumoku-testimonials .jumoku-testimonial-text {
  font-size: 18px !important;
  line-height: 1.5 !important;
  color: var(--jumoku-color-text-dark) !important;
  margin: 0 0 16px !important;
}
.jumoku-testimonials .jumoku-testimonial-footer {
  font-size: 12px !important;
  color: #5a5a5a !important;
  margin: 0 !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--jumoku-color-border) !important;
}
.jumoku-testimonials .jumoku-testimonials-note {
  font-size: 12px !important;
  color: #5a5a5a !important;
  line-height: 1.75 !important;
  max-width: 48rem;
  margin-left: auto !important;
  margin-right: auto !important;
}
.jumoku-testimonials {
  /* 旧デザイン用（quote/attribution）も互換のため残す */
}
.jumoku-testimonials .jumoku-testimonial-quote {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text) !important;
  margin: 0 0 16px !important;
  border: none !important;
  padding: 0 !important;
}
.jumoku-testimonials .jumoku-testimonial-attribution {
  font-size: var(--jumoku-font-size-base) !important;
  color: var(--jumoku-color-text-gray) !important;
  margin: 0 !important;
}

/* ===== Process Section ===== */
/* セクション基本スタイルは_02_sections.scssで定義 */
/* Process - ステップカード */
.jumoku-process-step {
  position: relative !important;
  border: 1px solid var(--jumoku-color-border) !important;
  padding: 32px 40px !important;
  transition: border-color 0.3s ease !important;
  margin-bottom: 24px !important;
}

.jumoku-process-step:last-child {
  margin-bottom: 0 !important;
}

.jumoku-process-step:hover {
  border-color: var(--jumoku-color-secondary) !important;
}

/* 番号と本文を上下中央揃え、番号の右に余白 */
.jumoku-process-step .d-flex {
  align-items: center !important;
}

.jumoku-process-step .d-flex > .me-4 {
  margin-right: 28px !important;
  flex-shrink: 0 !important;
}

.jumoku-process-step .rounded-circle {
  width: 64px !important;
  height: 64px !important;
  border: 2px solid var(--jumoku-color-primary) !important;
  background-color: transparent !important;
  color: var(--jumoku-color-primary) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  font-size: var(--jumoku-font-size-base) !important;
  letter-spacing: 0.05em !important;
  flex-shrink: 0 !important;
}

.jumoku-process-step h3 {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
  margin-bottom: 12px !important;
}

.jumoku-process-step p {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-dark) !important;
  margin-bottom: 16px !important;
}

.jumoku-process-note {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 6px 16px !important;
  background-color: var(--jumoku-color-secondary-light) !important;
  color: var(--jumoku-color-secondary) !important;
  font-size: var(--jumoku-font-size-base) !important;
}

.jumoku-process-note span:first-child {
  font-size: var(--jumoku-font-size-base) !important;
}

/* Process - 接続線 */
.jumoku-process-step:not(:last-child)::after {
  content: "" !important;
  position: absolute !important;
  left: 32px !important;
  bottom: -24px !important;
  width: 1px !important;
  height: 24px !important;
  background-color: var(--jumoku-color-border) !important;
}

@media (max-width: 768px) {
  .jumoku-process-step:not(:last-child)::after {
    display: none !important;
  }
}
/* Process - 最後のボックス */
.jumoku-process-final {
  margin-top: 64px !important;
  padding: 32px 40px !important;
  background-color: var(--jumoku-color-bg-light) !important;
  border-left: 4px solid var(--jumoku-color-accent) !important;
  max-width: 896px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.jumoku-process-final h3 {
  font-size: 20px !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
  margin-bottom: 16px !important;
}

.jumoku-process-final ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.jumoku-process-final li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin-bottom: 12px !important;
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-dark) !important;
}

.jumoku-process-final li:last-child {
  margin-bottom: 0 !important;
}

.jumoku-process-final-dot {
  flex-shrink: 0 !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background-color: var(--jumoku-color-accent) !important;
  margin-top: 6px !important;
}

/* container、h2、pスタイルは_02_sections.scssで定義 */
/* ===== FAQ Section ===== */
/* セクション基本スタイルとcontainerスタイルは_02_sections.scssで定義 */
/* クリックで開閉 + なめらかアニメーション（JS で実高さを指定・!important は付けない） */
.jumoku-faq .accordion-collapse.collapse {
  max-height: 0;
  min-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  transition: max-height 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.jumoku-faq .accordion-collapse.collapse.show {
  min-height: 0;
  padding: 0;
  margin: 0;
  border: none;
  /* アニメーション後は JS が inline を外すので、開いた状態を維持 */
  max-height: none;
  transition: max-height 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.jumoku-faq .accordion-item {
  background-color: var(--jumoku-color-bg-white) !important;
  border: 1px solid var(--jumoku-color-border) !important;
  border-radius: 0 !important;
  margin-bottom: 16px !important;
  overflow: hidden !important;
  cursor: pointer !important;
}

.jumoku-faq .accordion-item:last-child {
  margin-bottom: 0 !important;
}

/* 閉じているときは item の高さを button だけに合わせる（閉じアニメーション中 .closing のときは適用しない） */
.jumoku-faq .accordion-item:has(.accordion-collapse:not(.show):not(.closing)) {
  display: flex !important;
  flex-direction: column !important;
}

.jumoku-faq .accordion-item:has(.accordion-collapse:not(.show):not(.closing)) .accordion-collapse {
  flex: 0 0 0 !important;
}

.jumoku-faq .accordion-header {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  flex-shrink: 0 !important;
}

.jumoku-faq .accordion-button {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0 !important;
  width: 100% !important;
  font-size: var(--jumoku-font-size-large) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 24px 32px !important;
  position: relative !important;
  text-align: left !important;
  transition: background-color 0.5s ease, color 0.5s ease !important;
}

/* タイトルは左側で折り返し、シェブロンは常にヘッダー右端（疑似要素 + mask-image） */
.jumoku-faq .accordion-button h3,
.jumoku-faq .accordion-button {
  flex: 1 !important;
  min-width: 0 !important;
  font-size: var(--jumoku-font-size-base) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
  margin: 0 !important;
  transition: color 0.5s ease !important;
}

.jumoku-faq .accordion-button::after {
  content: "" !important;
  flex-shrink: 0 !important;
  inline-size: 1em !important;
  aspect-ratio: 1 !important;
  mask-image: var(--icon-chevron-down) !important;
  mask-repeat: no-repeat !important;
  mask-position: center !important;
  mask-size: contain !important;
  -webkit-mask-image: var(--icon-chevron-down) !important;
  -webkit-mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  -webkit-mask-size: contain !important;
  /* 強制カラーモード適応下でもアイコンが可視化されるようにする */
  background: linear-gradient(currentColor 0 0), CanvasText !important;
  color: var(--jumoku-color-secondary) !important;
  transition: transform 0.3s ease, color 0.25s ease !important;
  margin-left: auto !important;
}

.jumoku-faq .accordion-button:not(.collapsed)::after {
  transform: rotate(180deg) !important;
  color: var(--jumoku-color-text-white) !important;
}

.jumoku-faq .accordion-button:not(.collapsed) {
  background-color: var(--jumoku-color-primary) !important;
  color: var(--jumoku-color-text-white) !important;
  box-shadow: none !important;
}

.jumoku-faq .accordion-button:not(.collapsed) h3,
.jumoku-faq .accordion-button:not(.collapsed) {
  color: var(--jumoku-color-text-white) !important;
}

/* 閉じた状態でホバー時は開いた状態と同じ色に */
.jumoku-faq .accordion-button.collapsed:hover {
  background-color: var(--jumoku-color-primary) !important;
  color: var(--jumoku-color-text-white) !important;
}

.jumoku-faq .accordion-button.collapsed:hover h3,
.jumoku-faq .accordion-button.collapsed:hover {
  color: var(--jumoku-color-text-white) !important;
}

.jumoku-faq .accordion-button.collapsed:hover::after {
  color: var(--jumoku-color-text-white) !important;
}

.jumoku-faq .accordion-button:focus {
  border-color: transparent !important;
  box-shadow: none !important;
}

.jumoku-faq .accordion-body {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-dark) !important;
  padding: 2em !important;
  border-left: 2px solid var(--jumoku-color-primary) !important;
  margin-left: 32px !important;
}

.jumoku-faq-footer {
  padding: 7em 2em !important;
}
.jumoku-faq-footer .jumoku-faq-footer-text {
  font-size: var(--jumoku-font-size-large) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-dark) !important;
}

/* ===== CTA Section ===== */
/* セクション基本スタイル（padding, margin, background）は_02_sections.scssで定義 */
/* section-container基本スタイルは_02_sections.scssで定義 */
/* CTA独自のpositionとz-index */
.jumoku-cta .section-container {
  position: relative !important;
  z-index: 2 !important;
}

/* h2スタイルは_02_sections.scssで共通定義 */
/* CTAセクションは背景が暗いため、h2の色のみ上書き */
.jumoku-cta h2 {
  color: var(--jumoku-color-text-white) !important;
}

.jumoku-cta-intro {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-white-90) !important;
  margin-bottom: 48px !important;
}

/* CTA - フォーム */
.jumoku-cta-form {
  background-color: var(--jumoku-color-bg-white-95) !important;
  backdrop-filter: blur(10px) !important;
  padding: 32px 48px !important;
  margin-bottom: 48px !important;
}

.jumoku-cta-form label,
.jumoku-cta-form-label {
  font-size: var(--jumoku-font-size-base) !important;
  color: var(--jumoku-color-text-dark) !important;
  margin-bottom: 8px !important;
  display: block !important;
}

.jumoku-cta-form .required {
  color: var(--jumoku-color-accent) !important;
}

.jumoku-cta-form .form-control,
.jumoku-cta-form input,
.jumoku-cta-form select,
.jumoku-cta-form textarea {
  width: 100% !important;
  padding: 12px 16px !important;
  border: 1px solid var(--jumoku-color-border) !important;
  font-size: var(--jumoku-font-size-base) !important;
  transition: border-color 0.3s ease !important;
  background-color: var(--jumoku-color-bg-white) !important;
}

.jumoku-cta-form .form-control:focus,
.jumoku-cta-form input:focus,
.jumoku-cta-form select:focus,
.jumoku-cta-form textarea:focus {
  outline: none !important;
  border-color: var(--jumoku-color-primary) !important;
  box-shadow: none !important;
}

.jumoku-cta-form textarea.form-control {
  resize: none !important;
  min-height: 144px !important;
}

.jumoku-cta-form-submit {
  width: 100% !important;
  padding: 16px !important;
  background-color: var(--jumoku-color-primary) !important;
  color: var(--jumoku-color-text-white) !important;
  border: none !important;
  font-size: var(--jumoku-font-size-base) !important;
  letter-spacing: 0.05em !important;
  cursor: pointer !important;
  transition: background-color 0.3s ease !important;
  margin-top: 24px !important;
}

.jumoku-cta-form-submit:hover {
  background-color: var(--jumoku-color-primary-dark) !important;
}

.jumoku-cta-form-privacy {
  font-size: var(--jumoku-font-size-base) !important;
  color: var(--jumoku-color-text-gray) !important;
  line-height: 1.75 !important;
  margin-top: 24px !important;
  margin-bottom: 0 !important;
}

/* CTA - 電話番号セクション */
.jumoku-cta-phone {
  margin-top: 48px !important;
  padding-top: 48px !important;
  border-top: 1px solid var(--jumoku-color-border-white-20) !important;
  text-align: center !important;
}

.jumoku-cta-phone p {
  font-size: var(--jumoku-font-size-base) !important;
  color: var(--jumoku-color-text-white-80) !important;
  margin-bottom: 24px !important;
}

.jumoku-cta-phone-number {
  font-size: 36px !important;
  color: var(--jumoku-color-text-white) !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 8px !important;
}

.jumoku-cta-phone-time {
  font-size: var(--jumoku-font-size-base) !important;
  color: var(--jumoku-color-text-white-70) !important;
}

/* ===== Company Info Section（Figmaデザイン準拠） ===== */
.jumoku-company-info {
  border-top: 1px solid var(--jumoku-color-border) !important;
}

.jumoku-company-info-section {
  padding-top: 96px !important;
  padding-bottom: 120px !important;
}

@media (min-width: 768px) {
  .jumoku-company-info-section {
    padding-top: 128px !important;
    padding-bottom: 160px !important;
  }
}
.jumoku-company-info-header {
  margin-bottom: 64px !important;
}

.jumoku-company-info-header h2 {
  margin-bottom: 24px !important;
}

.jumoku-company-info-description {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  max-width: 48rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 0 !important;
}

.jumoku-company-info-inner {
  max-width: 64rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.jumoku-company-info-cards {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  margin-bottom: 48px !important;
  gap: clamp(6px, 2%, 24px) !important;
}

.jumoku-company-info-cards > [class*=col-] {
  flex: 0 0 clamp(200px, 30%, 300px) !important;
  max-width: 300px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
}

.jumoku-company-info-card {
  width: 100% !important;
  max-width: 300px !important;
  height: 0 !important;
  padding-bottom: 100% !important;
  position: relative !important;
  box-sizing: border-box !important;
  background-color: var(--jumoku-color-bg-light) !important;
  border: 1px solid var(--jumoku-color-border) !important;
}
@media (max-width: 767px) {
  .jumoku-company-info-card {
    padding-bottom: 50% !important;
  }
}

.jumoku-company-info-card-inner {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  padding: clamp(5px, 4%, 24px) !important;
  box-sizing: border-box !important;
}

.jumoku-company-info-card-label {
  font-size: clamp(2rem, 3vw, 2.25rem) !important;
  line-height: 1.2 !important;
  color: var(--jumoku-color-accent) !important;
  margin-bottom: 12px !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
}

.jumoku-company-info-card-subtitle {
  font-size: clamp(20px, 2vw, 22px) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
  margin-bottom: 8px !important;
}

.jumoku-company-info-card p {
  font-size: var(--jumoku-font-size-small) !important;
  line-height: 1.6 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 0 !important;
  text-align: left !important;
}

.jumoku-company-info-main {
  padding: 32px 48px !important;
  border: 1px solid var(--jumoku-color-secondary) !important;
  background-color: var(--jumoku-color-bg-light) !important;
}

.jumoku-company-info-main-second {
  margin-top: 48px !important;
}
@media (max-width: 768px) {
  .jumoku-company-info-main-second {
    margin-top: 32px !important;
  }
}

.jumoku-company-info-main-intro {
  margin-bottom: 32px !important;
}
.jumoku-company-info-main-intro .jumoku-company-yomi {
  font-size: var(--jumoku-font-size-base) !important;
}

.jumoku-company-info-main h3 {
  font-size: var(--jumoku-font-size-h3) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important; /* 社名の下の余白（説明文との間） */
}

.jumoku-company-info-catch {
  font-size: var(--jumoku-font-size-base) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-primary) !important;
  margin-top: 0 !important;
  margin-bottom: 4px !important; /* キャッチコピーの下の余白（社名との間を詰める） */
}

.jumoku-company-info-main-text {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 0 !important;
}

.jumoku-company-info-items {
  margin-bottom: 0 !important;
}

.jumoku-company-info-item {
  display: flex !important;
  align-items: center !important;
  border-bottom: 1px solid var(--jumoku-color-border) !important;
  padding-bottom: 8px !important;
  margin-bottom: 12px !important;
}

.jumoku-company-info-item:last-child {
  margin-bottom: 0 !important;
}

/* 縦並び時：2列目先頭（事業内容）の上に余白を付け、所在地との隙間を他と同程度に */
@media (max-width: 767px) {
  .jumoku-company-info-items .col-md-6 + .col-md-6 .jumoku-company-info-item:first-child {
    margin-top: 12px !important;
  }
}
.jumoku-company-info-label {
  font-size: var(--jumoku-font-size-small) !important;
  color: var(--jumoku-color-text-gray) !important;
  width: 7rem !important;
  flex-shrink: 0 !important;
}

.jumoku-company-info-value {
  font-size: var(--jumoku-font-size-small) !important;
  color: var(--jumoku-color-text-dark) !important;
  flex: 1 !important;
}

.jumoku-company-info-link-wrap {
  margin-top: 32px !important;
}

.jumoku-company-info-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 12px 32px !important;
  border: 2px solid var(--jumoku-color-secondary) !important;
  color: var(--jumoku-color-secondary) !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important;
  letter-spacing: 0.05em !important;
}

.jumoku-company-info-link:hover {
  background-color: var(--jumoku-color-secondary) !important;
  color: var(--jumoku-color-text-white) !important;
}

.jumoku-company-info-link-icon {
  width: 1rem !important;
  height: 1rem !important;
}

.jumoku-company-info-message {
  margin-top: 48px !important;
  margin-bottom: 48px !important;
  padding: 24px 32px !important;
  background-color: var(--jumoku-color-bg-white) !important;
  text-align: center !important;
}

.jumoku-company-info-message h3 {
  font-size: var(--jumoku-font-size-base) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
  margin-bottom: 16px !important;
}

.jumoku-company-info-message p {
  font-size: var(--jumoku-font-size-small) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin-bottom: 0 !important;
}

/* ========================================
   Contact Form 7 - お問い合わせフォーム
   画像デザイン準拠（寺院向け・クリーンな見た目）
   ======================================== */
.jumoku-cta-form p {
  margin: 0 !important;
}

.jumoku-cta-form .cf-group {
  margin-bottom: 20px !important;
}

/* フォーム全体のラッパー（明るいグレー背景） */
.jumoku-cta-form {
  background-color: #f7f7f7 !important;
  backdrop-filter: none !important;
  padding: 32px 48px !important;
  margin-bottom: 48px !important;
  border-radius: 4px;
}

/* CF7 フォームコンテナ（送信成功時のフェードアウト用に transition） */
.jumoku-cta-form .wpcf7 {
  max-width: 100%;
  transition: opacity 0.4s ease;
}

/* フォームは基本1列（ブロック並び）・送信成功時のフェード用に transition を付与 */
.jumoku-cta-form .wpcf7-form {
  display: block !important;
}

.jumoku-cta-form .wpcf7-form > * {
  transition: opacity 0.4s ease !important;
}

/* cf-row の div だけ横並び */
.jumoku-cta-form .cf-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0 24px !important;
  margin-bottom: 20px !important;
}

.jumoku-cta-form .cf-row > * {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* ラベル */
.jumoku-cta-form .wpcf7-form label,
.jumoku-cta-form label {
  display: block !important;
  font-size: 1.1rem !important;
  color: #333 !important;
  margin-bottom: 8px !important;
  font-family: var(--jumoku-font-family-sans);
}

/* cf-title は黒文字 */
.jumoku-cta-form .cf-title {
  color: #000 !important;
  font-size: 1.1rem !important;
  line-height: 1.5 !important;
}

/* 必須項目：項目名の直後に「（必須）」を表示 */
.jumoku-cta-form .wpcf7-form .required .cf-title::after {
  content: "（必須）" !important;
  font-size: 0.8rem !important;
  color: #c00 !important;
  margin-left: 2px !important;
}

/* .required 側の「（必須）」は出さない（.cf-title::after で表示するため） */
.jumoku-cta-form .wpcf7-form span.required::before,
.jumoku-cta-form span.required::before {
  content: none !important;
}

/* 必須：アスタリスクは非表示 */
.jumoku-cta-form .wpcf7-form span.required,
.jumoku-cta-form span.required {
  font-size: 0 !important;
  color: #c00 !important;
}

/* span.required 内の項目名（cf-title）は表示を復元 */
.jumoku-cta-form .required .cf-title {
  font-size: 1.1rem !important;
  color: #000 !important;
}

/* label に required が付いている場合も項目名を表示 */
.jumoku-cta-form label.required {
  font-size: 1.1rem !important;
  color: #333 !important;
}

/* 入力フィールド共通（mixin で共通化・ネストで冗長さを削減） */
.jumoku-cta-form .wpcf7-form-control-wrap input[type=text],
.jumoku-cta-form .wpcf7-form-control-wrap input[type=email],
.jumoku-cta-form .wpcf7-form-control-wrap input[type=tel],
.jumoku-cta-form .wpcf7-form-control-wrap select,
.jumoku-cta-form .wpcf7-form-control-wrap textarea {
  width: 100% !important;
  background-color: #ffffff !important;
  border: 1px solid #ddd !important;
  border-radius: 4px !important;
  padding: 12px 16px !important;
  font-size: 1rem !important;
  color: #555 !important;
  font-family: var(--jumoku-font-family-sans);
  transition: border-color 0.2s ease, background-color 0.3s ease !important;
  box-sizing: border-box !important;
}
.jumoku-cta-form .wpcf7-form-control-wrap input:focus,
.jumoku-cta-form .wpcf7-form-control-wrap select:focus,
.jumoku-cta-form .wpcf7-form-control-wrap textarea:focus {
  outline: none !important;
  border-color: #2c4a5a !important;
  box-shadow: none !important;
}
.jumoku-cta-form .wpcf7-form-control-wrap {
  /* エラー時（input または wrap に .wpcf7-not-valid） */
}
.jumoku-cta-form .wpcf7-form-control-wrap input[type=text].wpcf7-not-valid,
.jumoku-cta-form .wpcf7-form-control-wrap input[type=email].wpcf7-not-valid,
.jumoku-cta-form .wpcf7-form-control-wrap input[type=tel].wpcf7-not-valid,
.jumoku-cta-form .wpcf7-form-control-wrap select.wpcf7-not-valid,
.jumoku-cta-form .wpcf7-form-control-wrap textarea.wpcf7-not-valid, .jumoku-cta-form .wpcf7-form-control-wrap.wpcf7-not-valid input[type=text], .jumoku-cta-form .wpcf7-form-control-wrap.wpcf7-not-valid input[type=email], .jumoku-cta-form .wpcf7-form-control-wrap.wpcf7-not-valid input[type=tel], .jumoku-cta-form .wpcf7-form-control-wrap.wpcf7-not-valid select, .jumoku-cta-form .wpcf7-form-control-wrap.wpcf7-not-valid textarea {
  background-color: #fff0f0 !important;
  border: 1px solid #d9534f !important;
}
.jumoku-cta-form .wpcf7-form-control-wrap {
  /* エラー欄フォーカス時は通常色に戻す */
}
.jumoku-cta-form .wpcf7-form-control-wrap input[type=text].wpcf7-not-valid:focus,
.jumoku-cta-form .wpcf7-form-control-wrap input[type=email].wpcf7-not-valid:focus,
.jumoku-cta-form .wpcf7-form-control-wrap input[type=tel].wpcf7-not-valid:focus,
.jumoku-cta-form .wpcf7-form-control-wrap select.wpcf7-not-valid:focus,
.jumoku-cta-form .wpcf7-form-control-wrap textarea.wpcf7-not-valid:focus, .jumoku-cta-form .wpcf7-form-control-wrap.wpcf7-not-valid input:focus, .jumoku-cta-form .wpcf7-form-control-wrap.wpcf7-not-valid select:focus, .jumoku-cta-form .wpcf7-form-control-wrap.wpcf7-not-valid textarea:focus {
  background-color: #fff !important;
  border-color: #2c4a5a !important;
}
.jumoku-cta-form input[type=text],
.jumoku-cta-form input[type=email],
.jumoku-cta-form input[type=tel],
.jumoku-cta-form select,
.jumoku-cta-form textarea {
  width: 100% !important;
  background-color: #ffffff !important;
  border: 1px solid #ddd !important;
  border-radius: 4px !important;
  padding: 12px 16px !important;
  font-size: 1rem !important;
  color: #555 !important;
  font-family: var(--jumoku-font-family-sans);
  transition: border-color 0.2s ease, background-color 0.3s ease !important;
  box-sizing: border-box !important;
}
.jumoku-cta-form input:focus,
.jumoku-cta-form select:focus,
.jumoku-cta-form textarea:focus {
  outline: none !important;
  border-color: #2c4a5a !important;
  box-shadow: none !important;
}

.jumoku-cta-form input::placeholder,
.jumoku-cta-form textarea::placeholder {
  color: #aaa !important;
}

/* テキストエリア（ご相談内容） */
.jumoku-cta-form .wpcf7-form-control-wrap textarea,
.jumoku-cta-form textarea {
  min-height: 180px !important;
  resize: vertical !important;
}

/* プライバシー・免責事項テキスト（送信ボタン上） */
.jumoku-cta-form .wpcf7-form p.wpcf7-acceptance,
.jumoku-cta-form .wpcf7-form p:has(.wpcf7-list-item) {
  font-size: 0.85rem !important;
  color: #666 !important;
  line-height: 1.6 !important;
  margin-top: 8px !important;
  margin-bottom: 20px !important;
}

/* 送信ボタン */
.jumoku-cta-form .wpcf7-form input[type=submit],
.jumoku-cta-form input[type=submit],
.jumoku-cta-form .wpcf7-submit {
  width: 100% !important;
  background-color: #2c4a5a !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 15px 30px !important;
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease !important;
  margin-top: 8px !important;
  font-family: var(--jumoku-font-family-sans);
}

.jumoku-cta-form .wpcf7-form input[type=submit]:hover,
.jumoku-cta-form input[type=submit]:hover,
.jumoku-cta-form .wpcf7-submit:hover {
  background-color: #243d4a !important;
}

/* 送信ボタン無効時（CF7 と同様） */
.jumoku-cta-form .wpcf7 .wpcf7-submit:disabled {
  cursor: not-allowed !important;
}

/* 送信中スピナー：送信ボタンの上下中央にオーバーレイ表示 */
.jumoku-cta-form .wpcf7-form p:has(.wpcf7-submit) {
  position: relative !important;
}

.jumoku-cta-form .wpcf7 .wpcf7-spinner {
  position: absolute !important;
  inset: 0 !important;
  margin: auto !important;
  width: 36px !important;
  height: 36px !important;
}

.jumoku-cta-form .wpcf7 .wpcf7-spinner::before {
  top: 6px !important;
  left: 6px !important;
  width: 9px !important;
  height: 9px !important;
  transform-origin: 12px 12px !important;
}

/* バリデーション：エラーメッセージ（文字）を非表示（入力欄の見た目は上記「入力フィールド共通」直後のエラー用で制御） */
.jumoku-cta-form .wpcf7-not-valid-tip {
  display: none !important;
}

/* 送信結果メッセージ（CF7 styles.css の form 状態・色に合わせて枠と背景を指定） */
.jumoku-cta-form .wpcf7 form .wpcf7-response-output {
  margin: 16px 0 0 !important;
  padding: 12px 16px !important;
  border-radius: 4px !important;
  font-size: 0.95rem !important;
  border: 2px solid #00a0d2 !important; /* CF7 デフォルト Blue */
  background-color: rgba(0, 160, 210, 0.08) !important;
  color: #333 !important;
  text-align: center !important;
}

/* 送信中・リセット中・初期表示では非表示（CF7 と同様） */
.jumoku-cta-form .wpcf7 form.init .wpcf7-response-output,
.jumoku-cta-form .wpcf7 form.resetting .wpcf7-response-output,
.jumoku-cta-form .wpcf7 form.submitting .wpcf7-response-output {
  display: none !important;
}

/* 送信成功後：JS で挿入する .jumoku-cf7-success-message を表示（CF7 の要素は aria-hidden で消えるため別要素で表示） */
.jumoku-cta-form.jumoku-cf7-success-visible {
  position: relative !important;
  min-height: 280px !important;
}

.jumoku-cta-form.jumoku-cf7-success-visible .jumoku-cf7-success-message {
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  padding: 12px 16px !important;
  font-size: 1.25rem !important;
  text-align: center !important;
  color: #333 !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  z-index: 10 !important;
  animation: jumoku-cf7-message-fadein 0.5s ease forwards !important;
}

.jumoku-cta-form.jumoku-cf7-success-visible .wpcf7 {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.4s ease !important;
}

/* 送信成功時：入力欄・送信ボタンをふわりと消し、メッセージをふわりと表示 */
/* form 自体に .wpcf7-form .sent が付くので form.sent でフォームを指定 */
.jumoku-cta-form .wpcf7 form.sent {
  position: relative !important;
  min-height: 200px !important;
}

/* フォーム直下の子のうち、メッセージ以外をフェードアウト */
.jumoku-cta-form .wpcf7 form.sent > *:not(.wpcf7-response-output) {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.4s ease !important;
}

/* メッセージを中央に重ねてフェードイン（子孫セレクタで確実に、z-index で前面に） */
.jumoku-cta-form .wpcf7 form.sent .wpcf7-response-output {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  opacity: 0 !important;
  animation: jumoku-cf7-message-fadein 0.5s ease 0.25s forwards !important;
  display: block !important;
  visibility: visible !important;
  z-index: 10 !important;
}

@keyframes jumoku-cf7-message-fadein {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* 送信成功：緑（#46b450） */
.jumoku-cta-form .wpcf7 form.sent .wpcf7-response-output {
  border-color: #46b450 !important;
  background-color: rgba(70, 180, 80, 0.12) !important;
}

/* 送信失敗・中止：赤（#dc3232） */
.jumoku-cta-form .wpcf7 form.failed .wpcf7-response-output,
.jumoku-cta-form .wpcf7 form.aborted .wpcf7-response-output {
  border-color: #dc3232 !important;
  background-color: rgba(220, 50, 50, 0.1) !important;
}

/* スパム：オレンジ（#f56e28） */
.jumoku-cta-form .wpcf7 form.spam .wpcf7-response-output {
  border-color: #f56e28 !important;
  background-color: rgba(245, 110, 40, 0.1) !important;
}

/* バリデーションエラー・未承諾・支払い必須：黄（#ffb900） */
.jumoku-cta-form .wpcf7 form.invalid .wpcf7-response-output,
.jumoku-cta-form .wpcf7 form.unaccepted .wpcf7-response-output,
.jumoku-cta-form .wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #ffb900 !important;
  background-color: rgba(255, 185, 0, 0.12) !important;
}

/* フォーム状態が付与されない環境用：response-output のクラスでも同色を指定 */
.jumoku-cta-form .wpcf7-response-output.wpcf7-mail-sent-ok {
  border: 2px solid #46b450 !important;
  background-color: rgba(70, 180, 80, 0.12) !important;
}

.jumoku-cta-form .wpcf7-response-output.wpcf7-validation-errors,
.jumoku-cta-form .wpcf7-response-output.wpcf7-mail-sent-ng {
  border: 2px solid #dc3232 !important;
  background-color: rgba(220, 50, 50, 0.1) !important;
}

.jumoku-cta-form .wpcf7-response-output.wpcf7-spam-blocked {
  border: 2px solid #f56e28 !important;
  background-color: rgba(245, 110, 40, 0.1) !important;
}

/* スマホ: cf-row を縦並びに */
@media (max-width: 576px) {
  .jumoku-cta-form {
    padding: 24px 20px !important;
  }
  .jumoku-cta-form .cf-row {
    flex-direction: column !important;
    gap: 20px 0 !important;
  }
}
/* ===== 天竺石紹介ページ ===== */
/* page-jumokuと同じ明朝系フォント（Noto Serif JP）を適用 */
.jumoku-tenjiku-page {
  overflow-x: hidden !important;
  font-family: var(--jumoku-font-family) !important;
}
.jumoku-tenjiku-page .section-container {
  width: 100% !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box !important;
}
.jumoku-tenjiku-page * {
  font-family: var(--jumoku-font-family) !important;
}
.jumoku-tenjiku-page {
  /* Bootstrap の負マージンでのはみ出しを抑止 */
}
.jumoku-tenjiku-page .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.jumoku-tenjiku-page [class*=col-] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.jumoku-tenjiku-page {
  /* 画像は画面幅に合わせて縮小のみ（拡大しない） */
}
.jumoku-tenjiku-page img {
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
}
.jumoku-tenjiku-page .jumoku-tenjiku {
  padding-top: 64px !important;
  padding-bottom: 64px !important;
}
.jumoku-tenjiku-page .jumoku-tenjiku-header .jumoku-tenjiku-title {
  font-size: var(--jumoku-font-size-h1) !important;
  font-weight: var(--jumoku-font-weight-medium) !important;
  color: var(--jumoku-color-text) !important;
  margin: 0 !important;
}
.jumoku-tenjiku-page .jumoku-tenjiku-header .jumoku-tenjiku-intro {
  font-size: var(--jumoku-font-size-base) !important;
  line-height: 1.75 !important;
  color: var(--jumoku-color-text-gray) !important;
  margin: 1.5rem 0 !important;
  max-width: 720px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.jumoku-tenjiku-page .jumoku-tenjiku-header .jumoku-tenjiku-back-link {
  display: inline-block;
  font-size: var(--jumoku-font-size-small) !important;
  color: var(--jumoku-color-primary) !important;
  text-decoration: none !important;
  margin-top: 1rem !important;
  transition: opacity 0.2s ease;
}
.jumoku-tenjiku-page .jumoku-tenjiku-header .jumoku-tenjiku-back-link:hover {
  opacity: 0.8;
}
.jumoku-tenjiku-page .jumoku-tenjiku-gallery {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
}
.jumoku-tenjiku-page .jumoku-tenjiku-gallery-item {
  width: 100%;
  text-align: center;
}
.jumoku-tenjiku-page .jumoku-tenjiku-gallery-item img {
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  display: block !important;
  box-shadow: 5px 5px 5px var(--jumoku-color-shadow-medium) !important;
}
.jumoku-tenjiku-page .jumoku-tenjiku-footer .jumoku-tenjiku-close-link {
  display: inline-block;
  font-size: var(--jumoku-font-size-small) !important;
  color: var(--jumoku-color-primary) !important;
  text-decoration: none !important;
  transition: opacity 0.2s ease;
}
.jumoku-tenjiku-page .jumoku-tenjiku-footer .jumoku-tenjiku-close-link:hover {
  opacity: 0.8;
}
.jumoku-tenjiku-page .jumoku-tenjiku-no-images {
  font-size: var(--jumoku-font-size-base) !important;
  color: var(--jumoku-color-text-gray-light) !important;
  padding: 3rem 1rem !important;
}

@media (max-width: 992px) {
  .jumoku-tenjiku-page .jumoku-tenjiku-header {
    margin-bottom: 32px !important;
  }
  .jumoku-tenjiku-page .jumoku-tenjiku-gallery {
    gap: 20px !important;
  }
}
@media (max-width: 768px) {
  .jumoku-tenjiku-page .section-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .jumoku-tenjiku-page .jumoku-tenjiku {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  .jumoku-tenjiku-page .jumoku-tenjiku-header {
    margin-bottom: 24px !important;
  }
  .jumoku-tenjiku-page .jumoku-tenjiku-header .jumoku-tenjiku-title {
    font-size: var(--jumoku-font-size-h1-mobile) !important;
    line-height: 1.3 !important;
  }
  .jumoku-tenjiku-page .jumoku-tenjiku-header .jumoku-tenjiku-back-link {
    font-size: var(--jumoku-font-size-base) !important;
  }
  .jumoku-tenjiku-page .jumoku-tenjiku-gallery {
    gap: 16px !important;
  }
  .jumoku-tenjiku-page .jumoku-tenjiku-footer {
    margin-top: 32px !important;
  }
}
/* ========================================
   レスポンシブ対応 - スマホ表示
   ======================================== */
/* ========================================
   レスポンシブ対応 - スマホ・タブレット表示
   ======================================== */
/* 横スクロール防止・コンテナ幅（タブレット以下） */
@media (max-width: 1399px) {
  .page-template-page-jumoku .section-container {
    width: 100% !important;
    max-width: 100% !important;
  }
}
@media (max-width: 992px) {
  .page-template-page-jumoku .section-container {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
/* Benefitsグリッド：768px〜900pxでも1列にして横スクロール防止 */
@media (max-width: 900px) {
  .jumoku-benefits-grid {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 768px) {
  /* Hero Section */
  .jumoku-hero {
    min-height: 600px;
  }
  .jumoku-hero .section-container {
    padding-top: 120px;
    padding-bottom: 64px;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .jumoku-hero h1 {
    font-size: var(--jumoku-font-size-h1-tablet);
    line-height: 1.3;
    letter-spacing: 1.6px;
  }
  .jumoku-hero p {
    font-size: 14px;
    line-height: 1.8;
  }
  .jumoku-hero-buttons {
    flex-direction: column;
    gap: 12px !important;
  }
  .jumoku-hero-btn-primary,
  .jumoku-hero-btn-secondary {
    width: 100%;
    height: 56px;
  }
  /* セクション共通 */
  .jumoku-greeting,
  .jumoku-current-situation,
  .jumoku-data,
  .jumoku-benefits,
  .jumoku-recommend-points,
  .jumoku-product-image,
  .jumoku-gallery,
  .jumoku-intro-results,
  .jumoku-testimonials,
  .jumoku-process,
  .jumoku-faq,
  .jumoku-cta,
  .jumoku-company-info {
    padding-top: 64px;
    padding-bottom: 64px;
  }
  /* Greeting Section - レスポンシブ */
  .jumoku-greeting {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }
  .jumoku-greeting .jumoku-greeting-title-wrapper {
    margin-bottom: 48px !important;
  }
  /* h2スタイルは_02_sections.scssで共通定義 */
  .jumoku-greeting h3 {
    font-size: var(--jumoku-font-size-h3-tablet) !important;
    line-height: 1.5 !important;
    letter-spacing: 1px !important;
  }
  .jumoku-greeting .jumoku-greeting-content {
    gap: 24px !important;
  }
  .jumoku-greeting .jumoku-greeting-content > div:first-child {
    padding-bottom: 24px !important;
  }
  .jumoku-greeting .jumoku-greeting-final {
    padding-top: 32px !important;
  }
  /* 見出し - h2は共通スタイル */
  section h2 {
    font-size: var(--jumoku-font-size-h2-tablet) !important;
    line-height: 1.2 !important;
    margin-bottom: 24px !important;
  }
  /* ヒーロー以外の各セクション：タイトル・小見出しをスマホで左右中央寄せ */
  .page-template-page-jumoku section:not(.jumoku-hero) h2,
  .page-template-page-jumoku section:not(.jumoku-hero) h3,
  .page-template-page-jumoku section:not(.jumoku-hero) .jumoku-recommend-important-title,
  .page-template-page-jumoku section:not(.jumoku-hero) .jumoku-data-speech-bubble-title,
  .page-template-page-jumoku section:not(.jumoku-hero) .jumoku-intro-results-case-title {
    text-align: center !important;
  }
  /* スマホ：イントロ・説明文は左寄せ */
  .jumoku-current-situation-description,
  .jumoku-benefits-intro,
  .recommend-points-intro,
  .product-image-intro,
  .jumoku-gallery-intro,
  .intro-results-intro,
  .testimonials-intro,
  .process-intro,
  .faq-intro,
  .jumoku-cta-intro,
  .jumoku-company-info-description,
  .jumoku-company-info-main-text,
  .jumoku-company-info-message-description {
    text-align: left !important;
  }
  .jumoku-data h3,
  .jumoku-benefits h3,
  .jumoku-company-info h3 {
    font-size: var(--jumoku-font-size-h3-tablet);
    line-height: 1.2;
    margin-bottom: 24px;
  }
  .jumoku-current-situation h3,
  .jumoku-situation-h3,
  .jumoku-data h3,
  .jumoku-recommend-points h3,
  .jumoku-product-image h3 {
    font-size: var(--jumoku-font-size-h3-tablet);
    line-height: 1.5;
    margin-bottom: 16px;
  }
  .jumoku-recommend-important {
    padding: 32px 24px;
  }
  .jumoku-recommend-important-title {
    font-size: var(--jumoku-font-size-h3-tablet);
    line-height: 1.5;
  }
  /* Product Image Section - カード余白 */
  .jumoku-product-image-card {
    padding: 20px 16px !important;
  }
  /* テキスト */
  .jumoku-greeting p,
  .jumoku-current-situation p,
  .jumoku-data p,
  .jumoku-benefits p {
    font-size: 14px;
    line-height: 1.8;
  }
  /* RECOMMEND POINTS以下は最小サイズ --jumoku-font-size-base を適用 */
  .jumoku-recommend-points p,
  .jumoku-product-image p,
  .jumoku-gallery p,
  .jumoku-process p,
  .jumoku-faq p,
  .jumoku-cta p,
  .jumoku-company-info p {
    font-size: var(--jumoku-font-size-base);
    line-height: 1.8;
  }
  /* Current Situation Section - 数字を上・左右中央（process-step 同様） */
  .jumoku-situation-card-header {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }
  .jumoku-current-situation-icon {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    font-size: var(--jumoku-font-size-base) !important;
  }
  .jumoku-current-situation .me-3 {
    margin-right: 12px !important;
  }
  /* Recommend Points Section - 数字を上・左右中央（process-step 同様） */
  .jumoku-recommend-points-card-inner {
    flex-direction: column !important;
    align-items: center !important;
  }
  .jumoku-recommend-points-card-body {
    text-align: left !important;
    width: 100% !important;
  }
  .jumoku-recommend-points .rounded-circle {
    width: 56px !important;
    height: 56px !important;
    font-size: var(--jumoku-font-size-base) !important;
  }
  /* Process Section - 数字を上・左右中央 */
  .jumoku-process .rounded-circle {
    width: 56px !important;
    height: 56px !important;
    font-size: var(--jumoku-font-size-base) !important;
  }
  .jumoku-process .me-4 {
    margin-right: 16px !important;
  }
  .jumoku-process .d-flex {
    flex-direction: column !important;
    align-items: center !important;
  }
  .jumoku-process .me-4 {
    margin-bottom: 16px !important;
    margin-right: 0 !important;
  }
  /* Gallery Section */
  .jumoku-gallery .col-md-4 {
    margin-bottom: 24px;
  }
  /* CTA Section */
  .jumoku-cta .bg-white {
    padding: 24px;
  }
  .jumoku-cta .h3 {
    font-size: var(--jumoku-font-size-h3-tablet);
  }
  .jumoku-cta-form {
    padding: 24px 16px !important;
  }
  .jumoku-cta-intro {
    margin-bottom: 32px !important;
  }
  /* FAQ Section */
  .jumoku-faq .accordion-button {
    padding: 16px 20px !important;
    font-size: var(--jumoku-font-size-base) !important;
  }
  .jumoku-faq .accordion-body {
    padding: 1.25em 20px !important;
    margin-left: 16px !important;
  }
  .jumoku-faq-footer {
    padding: 4em 1em !important;
  }
  /* Gallery Section */
  .jumoku-gallery-wrapper {
    margin-top: 4rem !important;
  }
  .jumoku-gallery-card {
    padding: 16px 20px !important;
  }
  .jumoku-gallery-final {
    padding: 24px 20px !important;
    margin-top: 24px !important;
  }
  .jumoku-gallery-cards-row {
    gap: 16px !important;
  }
  /* Company Info Section - カード縦並び・余白 */
  .jumoku-company-info-cards {
    flex-wrap: wrap !important;
    gap: 16px !important;
    margin-bottom: 32px !important;
  }
  .jumoku-company-info-cards > [class*=col-] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  .jumoku-company-info-card {
    max-width: 100% !important;
  }
  .jumoku-company-info-header {
    margin-bottom: 40px !important;
  }
  .jumoku-company-info-main {
    padding: 24px 20px !important;
  }
  .jumoku-company-info-message {
    padding: 16px 20px !important;
    margin-top: 32px !important;
  }
  .jumoku-company-info-link-wrap {
    margin-top: 24px !important;
  }
  /* 導入実績セクション */
  .jumoku-intro-results .jumoku-intro-results-content {
    padding: 24px 20px !important;
  }
  .jumoku-intro-results .jumoku-intro-results-block {
    padding: 24px 20px !important;
  }
  .jumoku-intro-results .jumoku-intro-results-stat-card {
    padding: 24px 16px !important;
  }
  .jumoku-intro-results .jumoku-intro-results-stat-number {
    font-size: 2rem !important;
  }
  /* お言葉セクション */
  .jumoku-testimonials .jumoku-testimonial-card {
    padding: 20px 16px !important;
  }
  /* Dataセクション - グラフまわり */
  .jumoku-data-chart-section {
    padding: 20px 16px !important;
  }
  .jumoku-data-chart-container {
    padding: 16px !important;
    min-height: 260px !important;
  }
  .jumoku-data-chart-container.circle-chart canvas {
    max-height: 320px !important;
    height: auto !important;
  }
  .jumoku-data-summary {
    padding: 16px !important;
  }
}
@media (max-width: 576px) {
  .jumoku-hero h1 {
    font-size: var(--jumoku-font-size-h1-mobile);
    line-height: 1.3;
  }
  /* h2は共通スタイル */
  section h2 {
    font-size: var(--jumoku-font-size-h2-mobile) !important;
  }
  .jumoku-greeting h3,
  .jumoku-data h3,
  .jumoku-benefits h3,
  .jumoku-company-info h3 {
    font-size: var(--jumoku-font-size-h3-mobile);
  }
  .jumoku-current-situation h3,
  .jumoku-situation-h3,
  .jumoku-data h3,
  .jumoku-recommend-points h3,
  .jumoku-product-image h3 {
    font-size: var(--jumoku-font-size-h3-mobile);
  }
  .jumoku-recommend-important-title {
    font-size: var(--jumoku-font-size-h3-mobile);
    line-height: 1.5;
  }
  /* CTA - 電話番号フォント縮小 */
  .jumoku-cta-phone-number {
    font-size: 26px !important;
  }
  /* FAQ・余白のさらに縮小 */
  .jumoku-faq .accordion-button {
    padding: 14px 16px !important;
  }
  .jumoku-faq .accordion-body {
    padding: 1em 16px !important;
    margin-left: 12px !important;
  }
  /* セクション余白（スマホ） */
  .jumoku-greeting,
  .jumoku-current-situation,
  .jumoku-data,
  .jumoku-benefits,
  .jumoku-recommend-points,
  .jumoku-product-image,
  .jumoku-gallery,
  .jumoku-intro-results,
  .jumoku-testimonials,
  .jumoku-process,
  .jumoku-faq,
  .jumoku-cta,
  .jumoku-company-info {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
/* ========================================
   スクロールナビゲーション
   ======================================== */
/* ========================================
   スクロールナビゲーション（右固定・グラスモーフィズム）
   シンプル実装：ラベルは max-width + opacity で表示切替のみ
   ======================================== */
/* ----------------------------------------
   対象: .jumoku-scroll-nav
   目的: ナビ本体のベース（PC・スマホ共通）。右固定・グラス風・開閉の transition 土台
   ---------------------------------------- */
.jumoku-scroll-nav {
  position: fixed !important;
  top: 24px !important;
  right: 20px !important;
  z-index: 1000 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
  background: rgba(255, 255, 255, 0.65) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06) !important;
  padding: 20px 10px !important;
  max-height: 70vh !important;
  overflow: hidden !important;
  transition: padding 1s ease, box-shadow 1s ease, border-color 1s ease !important;
  /* 対象: .jumoku-scroll-nav-list | 目的: 縦並び・均等割りでセクションリンクを並べる */
}
.jumoku-scroll-nav .jumoku-scroll-nav-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 1 !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-evenly !important;
  gap: 0 !important;
}
.jumoku-scroll-nav {
  /* 対象: .jumoku-scroll-nav-item | 目的: 1行分のラップ。is-active で現在セクションを強調 */
}
.jumoku-scroll-nav .jumoku-scroll-nav-item {
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 auto !important;
}
.jumoku-scroll-nav .jumoku-scroll-nav-item .jumoku-scroll-nav-dot {
  margin-inline-start: 12px !important;
}
.jumoku-scroll-nav .jumoku-scroll-nav-item.is-active .jumoku-scroll-nav-dot {
  background: var(--jumoku-color-primary) !important;
  transform: scale(1.4) !important;
  box-shadow: 0 0 0 3px rgba(var(--jumoku-color-primary-rgb), 0.25) !important;
  margin-inline-start: 12px !important;
}
.jumoku-scroll-nav .jumoku-scroll-nav-item.is-active .jumoku-scroll-nav-label {
  opacity: 1 !important;
  color: var(--jumoku-color-primary) !important;
  font-weight: 600 !important;
}
.jumoku-scroll-nav .jumoku-scroll-nav-item.is-active .jumoku-scroll-nav-link {
  background: rgba(var(--jumoku-color-primary-rgb), 0.08) !important;
}
.jumoku-scroll-nav {
  /* 対象: .jumoku-scroll-nav-link | 目的: ドット＋ラベルを横並び。ホバー時は背景・ドット強調 */
}
.jumoku-scroll-nav .jumoku-scroll-nav-link {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 8px 10px !important;
  min-height: 36px !important;
  height: 36px !important;
  box-sizing: border-box !important;
  text-decoration: none !important;
  color: var(--jumoku-color-text) !important;
  border-radius: 8px !important;
  transition: padding 1s ease, background 1s ease, color 1s ease !important;
}
@media (hover: hover) {
  .jumoku-scroll-nav .jumoku-scroll-nav-link:hover .jumoku-scroll-nav-dot {
    background: var(--jumoku-color-primary) !important;
    transform: scale(1.35) !important;
    box-shadow: 0 0 0 2px rgba(var(--jumoku-color-primary-rgb), 0.2) !important;
  }
  .jumoku-scroll-nav .jumoku-scroll-nav-link:hover .jumoku-scroll-nav-label {
    opacity: 0.9 !important;
    transition: max-width 1s ease, opacity 0.2s ease, color 0.2s ease !important; /* ホバー時は opacity のみ速く反応 */
  }
}
.jumoku-scroll-nav {
  /* 対象: .jumoku-scroll-nav-dot | 目的: セクション位置のインジケータ。アクティブ時は拡大・主色 */
}
.jumoku-scroll-nav .jumoku-scroll-nav-dot {
  width: 10px !important;
  height: 10px !important;
  padding-left: 6px !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  background: rgba(var(--jumoku-color-primary-rgb), 0.35) !important;
  transition: transform 1s ease, background 1s ease, box-shadow 1s ease !important;
}
.jumoku-scroll-nav {
  /* 対象: .jumoku-scroll-nav-label | 目的: セクション名表示。max-width/opacity で開閉時にアニメ */
}
.jumoku-scroll-nav .jumoku-scroll-nav-label {
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  opacity: 0.5 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  transition: max-width 1s ease, opacity 1s ease, color 1s ease !important;
}
.jumoku-scroll-nav {
  /* 対象: .jumoku-scroll-nav.is-scrolled | 目的: PC 縮小時。ヒーロー通過後・ホバーアウト時ともラベル非表示・ドットのみ・円形リンク */
}
.jumoku-scroll-nav.is-scrolled {
  padding: 20px 12px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04) !important;
}
.jumoku-scroll-nav.is-scrolled .jumoku-scroll-nav-label {
  max-width: 0 !important;
  opacity: 0 !important;
  transition: max-width 1s ease, opacity 1s ease, color 1s ease !important;
}
.jumoku-scroll-nav.is-scrolled .jumoku-scroll-nav-link {
  padding: 0 !important;
  min-width: 36px !important;
  width: 36px !important;
  height: 36px !important;
  aspect-ratio: 1 !important;
  border-radius: 50% !important;
  justify-content: flex-start !important; /* 閉じ時もテキストを左寄せのままにする */
  gap: 12px !important;
  transition: padding 1s ease, min-width 1s ease, width 1s ease, gap 1s ease, background 1s ease, color 1s ease !important;
}
.jumoku-scroll-nav.is-scrolled .jumoku-scroll-nav-item.is-active .jumoku-scroll-nav-link {
  background: rgba(var(--jumoku-color-primary-rgb), 0.08) !important;
}
.jumoku-scroll-nav.is-scrolled .jumoku-scroll-nav-dot {
  margin: 0 !important;
  margin-inline-start: 12px !important;
}
.jumoku-scroll-nav {
  /* 対象: .jumoku-scroll-nav:not(.is-scrolled) のラベル・リンク | 目的: hero 表示時は幅を数値にし、hero 出入り時も transition でなめらかに */
}
.jumoku-scroll-nav:not(.is-scrolled) .jumoku-scroll-nav-label {
  max-width: 240px !important;
}
.jumoku-scroll-nav:not(.is-scrolled) .jumoku-scroll-nav-link {
  aspect-ratio: auto !important;
  min-width: 240px !important;
  width: 240px !important;
  transition: padding 1s ease, min-width 1s ease, width 1s ease, background 1s ease, color 1s ease !important;
}
.jumoku-scroll-nav {
  /* 対象: .jumoku-scroll-nav.is-scrolled:hover（PC のみ min-width 1025px）| 目的: 縮小状態でホバー時にラベル再表示・リンク幅復帰（開閉とも同じ transition） */
}
@media (min-width: 1025px) {
  .jumoku-scroll-nav.is-scrolled:hover {
    padding: 20px 10px !important;
    border-color: rgba(var(--jumoku-color-primary-rgb), 0.35) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08) !important;
  }
  .jumoku-scroll-nav.is-scrolled:hover .jumoku-scroll-nav-label {
    max-width: 260px !important;
    opacity: 0.5 !important;
    transition: max-width 1s ease, opacity 1s ease, color 1s ease !important;
  }
  .jumoku-scroll-nav.is-scrolled:hover .jumoku-scroll-nav-item.is-active .jumoku-scroll-nav-label {
    opacity: 1 !important;
  }
  .jumoku-scroll-nav.is-scrolled:hover .jumoku-scroll-nav-link {
    padding: 8px 10px !important;
    min-width: 0 !important;
    width: 240px !important;
    aspect-ratio: auto !important;
    border-radius: 8px !important;
    gap: 12px !important;
    justify-content: flex-start !important;
    transition: padding 1s ease, min-width 1s ease, width 1s ease, gap 1s ease, background 1s ease, color 1s ease !important;
  }
  .jumoku-scroll-nav.is-scrolled:hover .jumoku-scroll-nav-link:hover .jumoku-scroll-nav-label {
    opacity: 1 !important;
    transition: max-width 1s ease, opacity 0.2s ease, color 1s ease !important; /* ホバー時は opacity のみ速く反応 */
  }
}
.jumoku-scroll-nav {
  /* 対象: .jumoku-scroll-nav（max-width 1024px）| 目的: スマホ時は右端フル高ストリップ・幅・開閉の transition */
}
@media (max-width: 1024px) {
  .jumoku-scroll-nav {
    top: 0 !important;
    right: 0 !important;
    z-index: 10000 !important;
    height: 100vh !important;
    max-height: none !important;
    border-radius: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    overflow-x: hidden !important;
    transition: width 1s ease, max-width 1s ease, padding 1s ease, box-shadow 1s ease, background 1s ease, border 1s ease !important;
  }
  .jumoku-scroll-nav .jumoku-scroll-nav-list {
    justify-content: space-evenly !important;
    padding-top: 10vw !important;
    padding-bottom: 20vw !important;
  }
  .jumoku-scroll-nav {
    /* 対象: .jumoku-scroll-nav:not(.is-open) | 目的: スマホ最小化時。PC同様・幅44px・ドットのみ・閉じ時は左寄せ＋gapでなめらか */
  }
  .jumoku-scroll-nav:not(.is-open) {
    width: 35px !important;
    padding: 48px 4px 24px !important;
    box-shadow: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: none !important;
  }
  .jumoku-scroll-nav:not(.is-open) .jumoku-scroll-nav-label {
    max-width: 0 !important;
    opacity: 0 !important;
    transition: max-width 1s ease, opacity 1s ease, color 1s ease !important;
  }
  .jumoku-scroll-nav:not(.is-open) .jumoku-scroll-nav-link {
    padding: 0 !important;
    min-width: 36px !important;
    width: 36px !important;
    height: 36px !important;
    aspect-ratio: 1 !important;
    border-radius: 50% !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    transition: padding 1s ease, min-width 1s ease, width 1s ease, gap 1s ease, background 1s ease, color 1s ease !important;
    -webkit-tap-highlight-color: transparent !important;
  }
  .jumoku-scroll-nav:not(.is-open) .jumoku-scroll-nav-link:focus,
  .jumoku-scroll-nav:not(.is-open) .jumoku-scroll-nav-link:active {
    outline: none !important;
    background: transparent !important;
  }
  .jumoku-scroll-nav:not(.is-open) .jumoku-scroll-nav-link:active .jumoku-scroll-nav-dot {
    background: rgba(var(--jumoku-color-primary-rgb), 0.35) !important;
    transform: none !important;
    box-shadow: none !important;
  }
  .jumoku-scroll-nav:not(.is-open) .jumoku-scroll-nav-dot {
    width: 4px !important;
    height: 4px !important;
    padding: 0 !important;
    margin-inline-start: 12px !important; /* 36px 中で 4px ドットを中央に */
  }
  .jumoku-scroll-nav:not(.is-open) .jumoku-scroll-nav-item.is-active .jumoku-scroll-nav-link {
    background: transparent !important;
  }
  .jumoku-scroll-nav:not(.is-open) .jumoku-scroll-nav-item.is-active .jumoku-scroll-nav-link:active .jumoku-scroll-nav-dot {
    background: var(--jumoku-color-primary) !important;
  }
  .jumoku-scroll-nav {
    /* 対象: .jumoku-scroll-nav.is-open | 目的: スマホ展開時。PC同様・幅85vw・ラベル表示・開閉 transition 統一 */
  }
  .jumoku-scroll-nav.is-open {
    width: 350px !important;
    max-width: 85vw !important;
    padding: 48px 20px 24px !important;
    background: rgba(255, 255, 255, 0.65) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06) !important;
  }
  .jumoku-scroll-nav.is-open .jumoku-scroll-nav-label {
    max-width: none !important;
    opacity: 0.7 !important;
    font-size: 20px !important;
    transition: max-width 1s ease, opacity 1s ease, color 1s ease !important;
  }
  .jumoku-scroll-nav.is-open .jumoku-scroll-nav-link {
    padding: 8px 12px !important;
    min-width: 0 !important;
    width: 280px !important;
    height: 36px !important;
    aspect-ratio: auto !important;
    border-radius: 8px !important;
    gap: 12px !important;
    justify-content: flex-start !important;
    align-items: center !important;
    transition: padding 1s ease, min-width 1s ease, width 1s ease, gap 1s ease, background 1s ease, color 1s ease !important;
  }
}

/* ----------------------------------------
   トグルボタン（ハンバーガー）
   対象: .jumoku-scroll-nav-toggle
   目的: スマホでメニュー展開/閉じるのトリガー
   ---------------------------------------- */
.jumoku-scroll-nav-toggle {
  display: none !important;
  position: fixed !important;
  top: 16px !important;
  right: 16px !important;
  z-index: 10001 !important;
  width: 44px !important;
  height: 44px !important;
  border: none !important;
  background: rgba(255, 255, 255, 0.9) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  border-radius: 10px !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  cursor: pointer !important;
  transition: transform 1s ease, box-shadow 1s ease !important;
}
.jumoku-scroll-nav-toggle:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
}
.jumoku-scroll-nav-toggle .jumoku-scroll-nav-toggle-bar {
  display: block !important;
  width: 20px !important;
  height: 2px !important;
  background: var(--jumoku-color-text) !important;
  border-radius: 1px !important;
  transition: transform 1s ease, opacity 1s ease !important;
}
.jumoku-scroll-nav-toggle[aria-expanded=true] .jumoku-scroll-nav-toggle-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg) !important;
}
.jumoku-scroll-nav-toggle[aria-expanded=true] .jumoku-scroll-nav-toggle-bar:nth-child(2) {
  opacity: 0 !important;
}
.jumoku-scroll-nav-toggle[aria-expanded=true] .jumoku-scroll-nav-toggle-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg) !important;
}
@media (max-width: 1024px) {
  .jumoku-scroll-nav-toggle {
    display: flex !important;
  }
}

/* ----------------------------------------
   お問い合わせボタン（右下固定）
   対象: .jumoku-fixed-contact
   目的: #contact セクションへのCTAリンク
   hero・contact セクション表示時は非表示（body.jumoku-fixed-contact-hidden）
   ---------------------------------------- */
/* 読み込み直後は非表示。JS で表示判定後に .jumoku-fixed-contact-initial-hide を外す → ふわりと表示 */
.jumoku-fixed-contact-initial-hide {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
@media (min-width: 769px) {
  .jumoku-fixed-contact-initial-hide {
    transform: translateY(12px) !important; /* PC: ふわり表示用にやや下から */
  }
}

body.jumoku-fixed-contact-hidden .jumoku-fixed-contact {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.5s ease, visibility 0.5s ease, transform 0.5s ease !important;
}

.jumoku-fixed-contact {
  position: fixed !important;
  bottom: 24px !important;
  right: 24px !important;
  z-index: 999 !important;
  display: inline-flex !important;
  gap: 8px !important;
  padding: 12px 20px !important;
  background: var(--jumoku-color-primary) !important;
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 12px !important;
  box-shadow: 0 0 10px 3px rgba(255, 255, 255, 0.26) !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  transition: opacity 0.6s ease-out, visibility 0.6s ease-out, transform 0.4s ease-out, box-shadow 0.3s ease !important;
}
.jumoku-fixed-contact:hover {
  color: #fff !important;
  transform: translateY(-10px) !important;
  transition: transform 0.5s ease !important;
}
@media (max-width: 768px) {
  .jumoku-fixed-contact {
    bottom: 0px !important;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 66.666% !important;
    max-width: 360px !important;
    padding: 12px 16px !important;
    font-size: 13px !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
}

/* ========================================
   印刷用スタイル
   ======================================== */
/* ========================================
   印刷用スタイル（@media print）
   ======================================== */
@media print {
  /* 非表示にする要素 */
  .page-template-page-jumoku .jumoku-scroll-nav,
  .page-template-page-jumoku .jumoku-hero-buttons,
  .page-template-page-jumoku .jumoku-hero-click-icon,
  .jumoku-debug-reload,
  .no-print, .jumoku-fixed-contact {
    display: none !important;
  }
  /* ヒーロー・セクション：背景色を印刷に反映（必要に応じて） */
  .page-template-page-jumoku .jumoku-hero,
  .page-template-page-jumoku section {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  /* ページ区切り：見出しの前で改ページを避ける */
  .page-template-page-jumoku section h2 {
    break-after: avoid;
  }
  .page-template-page-jumoku .jumoku-company-info-card,
  .page-template-page-jumoku .jumoku-situation-card,
  .jumoku-data-chart-section {
    break-inside: avoid;
  }
  /* リンクURLを表示（任意・不要なら削除可） */
  .page-template-page-jumoku a[href]::after {
    content: none; /* デフォルトでは出さない。表示する場合: " (" attr(href) ")"; */
  }
  /* 余白・レイアウト */
  .page-template-page-jumoku .jumoku-hero {
    min-height: auto !important;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .hilight-otera {
    background-color: rgb(0, 0, 95) !important;
    color: white !important;
  }
  .hilight-oterasama {
    background-color: rgb(0, 0, 255) !important;
    color: white !important;
  }
  .hilight-jiin {
    background-color: rgb(40, 80, 255) !important;
    color: white !important;
  }
  .hilight-gojiinsama {
    background-color: rgb(152, 152, 255) !important;
    color: white !important;
  }
  .hilight-o-danka-sama {
    background-color: orange !important;
    color: white !important;
  }
  .hilight-danka-sama {
    background-color: rgb(252, 110, 58) !important;
    color: white !important;
  }
  .hilight-danka {
    background-color: red !important;
    color: white !important;
  }
  .hilight-naoshi {
    background-color: rgb(14, 168, 0) !important;
    color: white !important;
  }
}
/* ========================================
確認用
======================================== */
/* === 製作用：リロード確認の更新日時（本番では WP_DEBUG を false にするか、このブロックを削除） === */
.jumoku-debug-reload {
  position: fixed !important;
  top: 8px !important;
  left: 8px !important;
  z-index: 99999 !important;
  padding: 4px 8px !important;
  background: rgba(0, 0, 0, 0.75) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-family: monospace !important;
  border-radius: 4px !important;
  pointer-events: none !important;
}

/*# sourceMappingURL=style.css.map */
