.elementor-kit-24{--e-global-color-primary:#374151;--e-global-color-secondary:#374151;--e-global-color-text:#374151;--e-global-color-accent:#374151;--e-global-color-6d7a24b:#374151;--e-global-color-8a87b79:#FBFBFB;--e-global-color-faf5c6e:#2E7D32;--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-weight:500;color:#374151;font-family:"M PLUS 1", Sans-serif;font-size:16px;font-weight:400;line-height:1.9em;letter-spacing:0.05em;}.elementor-kit-24 e-page-transition{background-color:#FFBC7D;}.elementor-kit-24 p{margin-block-end:0px;}.elementor-kit-24 a{font-family:"M PLUS 1", Sans-serif;}.elementor-kit-24 h1{color:#374151;font-family:"M PLUS 1", Sans-serif;font-size:32px;line-height:1.4em;}.elementor-kit-24 h2{color:#374151;font-family:"M PLUS 1", Sans-serif;font-size:28px;line-height:1.4em;letter-spacing:0.05em;}.elementor-kit-24 h3{color:#374151;font-family:"M PLUS 1", Sans-serif;font-size:24px;line-height:1.4em;letter-spacing:0.05em;}.elementor-kit-24 h4{color:#374151;font-family:"M PLUS 1", Sans-serif;}.elementor-kit-24 h5{color:var( --e-global-color-6d7a24b );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1200px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ===== レスポンシブ：1200px以下でメニューをハンバーガー表示に切り替える ===== */
@media (max-width: 1200px) {
  .elementor-nav-menu--layout-horizontal {
    display: none !important;
  }

  .elementor-menu-toggle {
    display: flex !important;
  }
}


/* ===== 1秒後に白マーカーが左→右に伸びる ===== */
.marker-animate-light {
  position: relative;
  display: inline-block;
  color: #374151;
  z-index: 0;
  padding: 0 0.15em;
}

.marker-animate-light::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 6px;
  z-index: -1;

  transform: scaleX(0);
  transform-origin: left center;

  /* ▼ ここがポイント */
  animation: markerFill 0.5s ease forwards;
  animation-delay: 1s; /* ← 1秒後に開始 */
}

@keyframes markerFill {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}


/* ===== 1秒後にダークマーカーが左→右に伸びて文字が白になる（確実版）===== */
.marker-animate-dark {
  position: relative;
  display: inline-block;
  padding: 0 0.2em;
  z-index: 0;
}

/* 文字は span の中身として最前面 */
.marker-animate-dark {
  color: #374151;                 /* 初期 */
  transition: color 0.15s ease;
}

/* マーカーは必ず背面へ */
.marker-animate-dark::before {
  content: "";
  position: absolute;
  inset: 0;                       /* left/top/width/height をまとめて指定 */
  background: #374151;            /* マーカー色 */
  border-radius: 6px;
  z-index: -1;                    /* ← 文字より下に固定 */

  transform: scaleX(0);
  transform-origin: left center;

  animation: markerFillDark 0.5s ease forwards;
  animation-delay: 1s;            /* 1秒後に開始 */
}

/* アニメ開始と同時に白文字にする（遅延を揃える） */
.marker-animate-dark {
  animation: textToWhite 0.01s linear forwards;
  animation-delay: 1s;            /* ← ここも 1秒で揃える */
}

@keyframes markerFillDark {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

@keyframes textToWhite {
  to { color: #ffffff; }
}



/* ===== グリーンのグラデ文字（#4CAF50 メイン）===== */
.gradient-text {
  background: linear-gradient(
    90deg,
    #2E7D32,  /* 少し濃いグリーン */
    #4CAF50,  /* メイン */
    #81C784   /* 明るいグリーン */
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ===== Single Post（ブログ投稿）H2 見出しデザイン ===== */
body.single-post .entry-content h2,
body.single-post .elementor-widget-theme-post-content h2 {
  position: relative;
  margin: 2.2em 0 1.2em;
  padding: 0.2em 0 0.55em 0.85em;  /* 左：縦棒分 / 下：区切り線 */
  font-weight: 700;               /* 太字 */
  font-size: 1.6em;              /* 一回り小さめ */
  line-height: 1.35;
  border-bottom: 2px solid #2E7D32;
}

/* 左の縦棒 */
body.single-post .entry-content h2::before,
body.single-post .elementor-widget-theme-post-content h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.25em;
  width: 4px;
  height: 1.05em;
  background: #2E7D32;
  border-radius: 2px;
}

/* スマホ調整 */
@media (max-width: 767px) {
  body.single-post .entry-content h2,
  body.single-post .elementor-widget-theme-post-content h2 {
    font-size: 1.08em;
    padding-left: 0.8em;
  }
  body.single-post .entry-content h2::before,
  body.single-post .elementor-widget-theme-post-content h2::before {
    width: 3px;
    height: 1em;
  }
}

/* Single Post タイトル直下に必ず区切り線を出す */
body.single-post h1.entry-title,
body.single-post .elementor-widget-post-title h1 {
  padding-bottom: 14px;
  border-bottom: 3px solid #2E7D32;
}/* End custom CSS */