/* ===== site.css ===== */
/* === TOP === */
*, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; }
  body { margin: 0; font-family: "Noto Sans JP", sans-serif; font-weight: 400; color: #2e2e2c; background: #f7f5f1; line-height: 2; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
  img, iframe { max-width: 100%; display: block; }
  a { color: inherit; text-decoration: none; }
  ul { list-style: none; margin: 0; padding: 0; }
  span.line-chunk { display: inline-block; overflow-wrap: anywhere; word-break: normal; }
  ::selection { background: #009B2E; color: #fff; }
  @keyframes coilTravel { to { transform: translateX(-64px); } }
  @keyframes coilTravelRev { to { transform: translateX(64px); } }
  @keyframes drawCoil { from { stroke-dashoffset: 1000; } to { stroke-dashoffset: 0; } }
  @keyframes heroPop { from { opacity: 0; transform: translateY(24px) scale(.9); } to { opacity: 1; transform: translateY(0) scale(1); } }
  @keyframes heroPopBig { 0% { opacity: 0; transform: translateY(8px) scale(.55); } to { opacity: 1; transform: translateY(0) scale(1); } }
  @keyframes heroImgReveal { from { opacity: 0; transform: scale(1.09); } to { opacity: 1; transform: scale(1); } }
  @keyframes heroFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes treesRise {
    0%   { opacity: 0; transform: scale(0); }
    50%  { opacity: 1; transform: scale(1.09); }
    68%  { transform: scale(.95); }
    83%  { transform: scale(1.03); }
    93%  { transform: scale(.99); }
    100% { opacity: 1; transform: scale(1); }
  }
  @keyframes treesRiseL {
    0%   { opacity: 0; transform: scaleX(-1) scale(0); }
    50%  { opacity: 1; transform: scaleX(-1) scale(1.09); }
    68%  { transform: scaleX(-1) scale(.95); }
    83%  { transform: scaleX(-1) scale(1.03); }
    93%  { transform: scaleX(-1) scale(.99); }
    100% { opacity: 1; transform: scaleX(-1) scale(1); }
  }
  @keyframes kidsWalk { from { opacity: 0; transform: translateX(-34px); } to { opacity: 1; transform: translateX(0); } }
  @keyframes kidPop { 0% { opacity: 0; transform: translateY(16px) scale(.2); } 55% { opacity: 1; } 100% { opacity: 1; transform: translateY(0) scale(1); } }
  @keyframes igMarchL { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @keyframes igMarchR { from { transform: translateX(-50%); } to { transform: translateX(0); } }
  @keyframes tbSway { 0%,100% { transform: rotate(-7deg); } 50% { transform: rotate(7deg); } }
  @keyframes tbBob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
  @container (min-width:840px){ .biz-rev > image-slot{ order:2; } .biz-rev .biz-txt{ order:1; } }
  @container people (min-width:840px){
    .people-arch .people-topfade{ display:none; }
    .people-arch .people-archwave{ display:block !important; }
  }
  /* スクロールで各セクションの内容がふわっと出てくる（下層ページと統一） */
  [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .7s cubic-bezier(.25,.7,.3,1), transform .7s cubic-bezier(.25,.7,.3,1); }
  /* ローディング表示中は本文の登場アニメを頭で一時停止し、ローディングが消える瞬間に再生する（裏で再生し終わるのを防ぐ） */
  html:not(.tb-ready) [data-screen-label] *, html:not(.tb-ready) [data-screen-label] *::before, html:not(.tb-ready) [data-screen-label] *::after { animation-play-state: paused !important; }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* === SITE HEADER（共通ヘッダー：header.html 用。インライン化できないセレクタ系のみ） === */
  .sh-root *, .sh-root *::before, .sh-root *::after { box-sizing: border-box; }
  .sh-root a { color: inherit; text-decoration: none; }
  @keyframes shDropIn { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: translateY(0); } }

  /* 960px未満：モバイル表示の切り替え */
  @media screen and (max-width: 959px) {
    .sh-desktop   { display: none !important; }
    .sh-hamburger { display: flex !important; }
  }
  @media screen and (min-width: 960px) {
    .sh-mobile-panel { display: none !important; }
  }

  /* デスクトップ ホバードロップダウン */
  .sh-navitem { position: relative; }
  .sh-dropdown-wrap {
    position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
    padding-top: 16px; z-index: 70; opacity: 0; pointer-events: none;
  }
  .sh-navitem:hover .sh-dropdown-wrap,
  .sh-navitem:focus-within .sh-dropdown-wrap {
    opacity: 1; pointer-events: auto; animation: shDropIn .22s cubic-bezier(.2,.7,.2,1) both;
  }
  .sh-navitem:hover .sh-caret,
  .sh-navitem:focus-within .sh-caret { transform: rotate(180deg); }

/* === PAGE HERO（下層ページのヒーロー：hero-*.html 用。共通） === */
  .ph-root *, .ph-root *::before, .ph-root *::after { box-sizing: border-box; }
  .ph-root a { color: inherit; text-decoration: none; }
  .ph-root .ph-crumb { transition: color .2s ease; }
  .ph-root .ph-crumb:hover { color: #FFEF09; }
  @keyframes phRise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes phImg { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1); } }
  @media (prefers-reduced-motion: reduce) { .ph-root *, .ph-root *::before, .ph-root *::after { animation: none !important; } }

/* === BREADCRUMB（パンくず：parts231） === */
  .parts231_breadcrumb.p-breadcrumb {
    display: none;
    background: #f5f5f5;
    padding: 20px 0;
  }
  /* === inquiry_patch.css（2026-06-19）上書き分のみ記述 === */
/* inquiry_add.css を直接変更せず、このファイルで差分を上書きする */

/* 導入文エリア — 上下余白を縮小・テキスト中央寄せ */
.parts210_section_content {
  padding: clamp(28px,3.5vw,44px) clamp(20px,5vw,56px) clamp(28px,3.5vw,44px) !important;
}
.parts210_content {
  text-align: center !important;
}

/* TEL ボックス — カード型 */
.tel-box {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  background: #fff !important;
  border: 1px solid #ddd8cf !important;
  border-radius: 14px !important;
  padding: 22px 48px 20px !important;
  max-width: 380px !important;
  margin: 28px auto 0 !important;
  gap: 4px !important;
}

.tel-box > span[style] {
  /* TEL ラベル（インラインstyleのまま流用） */
  display: block !important;
  line-height: 1 !important;
}

.tel-num {
  display: block !important;
  font-family: "Jost", sans-serif !important;
  font-size: clamp(30px,4vw,38px) !important;
  font-weight: 700 !important;
  letter-spacing: .03em !important;
  color: #0e5a2a !important;
  line-height: 1.2 !important;
}

.tel-note {
  display: block !important;
  font-family: "Noto Sans JP", sans-serif !important;
  font-size: 12.5px !important;
  color: #7a7060 !important;
  line-height: 1.6 !important;
  margin-top: 2px !important;
}

/* 必須バッジ — テキストを上下中央に揃える */
.parts213_form_wrap dt .required {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  height: 22px !important;
  padding: 0 9px !important;
}
@media (max-width: 768px) {
  .required {
    white-space: nowrap;
    width: auto;
    padding: 2px 8px;
  }
}


/* === ロード画面（全ページ共通） === */
@keyframes tbSway{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes tbBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
/* ロード表示中は本文の登場アニメを頭で一時停止し、ロード終了(.tb-ready)で再生 */
html:not(.tb-ready) [data-screen-label] *,
html:not(.tb-ready) [data-screen-label] *::before,
html:not(.tb-ready) [data-screen-label] *::after{ animation-play-state:paused !important; }
@media (prefers-reduced-motion: reduce){ *,*::before,*::after{ animation:none !important; transition:none !important; } }
  /* モバイルパネル：内部スクロールするがスクロールバーは隠す */
  .sh-mobile-panel { scrollbar-width: none; -ms-overflow-style: none; }
  .sh-mobile-panel::-webkit-scrollbar { width: 0; height: 0; display: none; }
  
/* === BLOG（parts131415_blog）完全版スタイル === */
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@600&family=Jost:wght@300;400&family=Noto+Sans+JP:wght@400;500;700&display=swap');

.parts131415_blog{ position:relative; overflow:hidden; background-color:var(--pb-bgcolor,#eaf6ee); background-image:var(--pb-bgimage,url('https://cdn.cuezilla-cms.com/enjoyworks-test24.tech/images/1417/blog-bg-watercolor.webp')); background-size:cover; background-position:center; background-repeat:no-repeat; padding:clamp(80px,12vw,160px) clamp(20px,5vw,56px); }
.parts131415_blog *,
.parts131415_blog *::before,
.parts131415_blog *::after{ box-sizing:border-box; }
.parts131415_blog .pb-inner{ position:relative; z-index:2; width:100%; max-width:1180px; margin:0 auto; }

/* 題字 */
.parts131415_blog .pb-head{ text-align:center; margin-bottom:clamp(48px,7vw,80px); }
.parts131415_blog .pb-eyebrow{ font-family:Caveat,cursive; font-weight:600; font-size:clamp(19px,2.4vw,23px); color:var(--pb-subcol,#009B2E); margin:0 0 8px; letter-spacing:.01em; }
.parts131415_blog .pb-heading{ font-family:Jost,sans-serif; font-weight:300; font-size:clamp(30px,5vw,52px); letter-spacing:.18em; color:var(--pb-textcol,#2e2e2c); line-height:1; }
.parts131415_blog .pb-lead{ font-family:'Noto Sans JP',sans-serif; font-weight:500; font-size:13px; letter-spacing:.32em; color:var(--pb-subcol,#009B2E); margin:16px 0 0; }

/* 件数ごと：1→2→3カラム。3件は固定3カラムで落ちない */
.parts131415_blog .pb-grid{ display:grid; gap:clamp(24px,3vw,40px); grid-template-columns:1fr; }
@media (min-width:560px){ .parts131415_blog .pb-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:900px){ .parts131415_blog .pb-grid{ grid-template-columns:repeat(3,1fr); } }

/* カード */
.parts131415_blog .pb-card{ display:block; background:transparent; color:var(--pb-textcol,#2e2e2c); text-decoration:none; transition:transform .45s cubic-bezier(.2,.7,.2,1),color .3s ease; }
.parts131415_blog .pb-card:hover{ transform:translateY(-7px); color:var(--pb-accent,#0e5a2a); }
.parts131415_blog .pb-cat{ font-family:Jost,sans-serif; font-weight:400; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--pb-catcol,#009B2E); margin:0 0 12px; }
.parts131415_blog_thumbnail{ border-radius:6px; overflow:hidden; margin-bottom:16px; box-shadow:0 16px 38px -26px rgba(40,36,28,0.5); }
.parts131415_blog_thumbnail img{ width:100%; height:240px; object-fit:cover; display:block; }
.parts131415_blog .pb-title{ font-family:'Noto Sans JP',sans-serif; font-weight:500; font-size:15px; line-height:1.7; margin:0; }

/* もっと見るボタン */
.parts131415_blog .pb-more-wrap{ text-align:center; margin-top:clamp(44px,5vw,64px); }
.parts131415_blog .pb-more{ display:inline-flex; align-items:center; gap:18px; border:1px solid #c4bfb4; border-radius:999px; padding:15px 40px; font-size:14px; letter-spacing:.06em; color:var(--pb-textcol,#2e2e2c); background:#fff; text-decoration:none; font-family:'Noto Sans JP',sans-serif; transition:background .3s,color .3s,border-color .3s; }
.parts131415_blog .pb-more:hover{ background:var(--pb-accent,#0e5a2a); color:#fff; border-color:var(--pb-accent,#0e5a2a); }
.parts131415_blog .pb-arrow{ font-family:Jost,sans-serif; font-weight:300; font-size:18px; }

/* 下端のうねうね（色は --pb-wave-fill、既定は白＝次セクション色に合わせる） */
.parts131415_blog .pb-wave{ position:absolute; bottom:-1px; left:0; right:0; height:clamp(34px,4.5vw,68px); pointer-events:none; z-index:1; background-color:var(--pb-wave-fill,#ffffff); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 68' preserveAspectRatio='none'%3E%3Cpath d='M0,68 L1200,68 L1200,34 C1010,6 880,58 700,34 C540,14 410,56 240,32 C140,18 70,46 0,30 Z' fill='%23000'/%3E%3C/svg%3E") no-repeat center/100% 100%; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 68' preserveAspectRatio='none'%3E%3Cpath d='M0,68 L1200,68 L1200,34 C1010,6 880,58 700,34 C540,14 410,56 240,32 C140,18 70,46 0,30 Z' fill='%23000'/%3E%3C/svg%3E") no-repeat center/100% 100%; }

/* === add.css 貼り付け ここから（ブログ /blog｜CueZilla parts222 + parts225） === */
/* 役割：CueZilla出力の実在クラスに対して見た目のみ調整。構造・入れ子は変更しない。
   方針：
   - 一覧ページ（カテゴリ未指定）= parts222_*（本文＋サイドバーの2カラム）
   - カテゴリページ（category_id あり）= parts225_*（サイドバー無し・全幅3カラム）
   - 子テンプレ(Blade)が付与する字体クラス（f_meiryo / f_bold / f_yugothic）に
     読み込み順で負けないよう、親要素を含めた2クラス以上の指定で堅牢化している。
   ブランドトーン：緑（#009B2E / #0e5a2a）。背景は #f7f5f1。 */

/* ───────────────────────────────────────────────
   共通トークン（参考）
   本文色 #2e2e2c ／ 日付 #a09a8e ／ 区切り #eee7da ／ 枠線 #d4cec2
   タイトル字体 "Noto Sans JP" ／ 英字・日付・カテゴリ・ページャ "Jost"
─────────────────────────────────────────────── */

/* =========================================================
   セクション枠（両レイアウト共通の見た目）
   ※ Blade側は container-fluid が付くが、下記 padding 指定で吸収
========================================================= */
.parts222_section,
.parts225_section {
  background:#f7f5f1 !important;
  padding:clamp(58px,8vw,104px) clamp(20px,5vw,56px) clamp(80px,11vw,140px) !important;
  box-sizing:border-box !important;   /* container-fluid の width:100% と padding を内側計算にして横スクロールを防止 */
  max-width:100% !important;
  overflow-x:clip !important;
}
/* ブログ各セクション配下は border-box で統一（テーマ未設定でも崩れない自己完結化） */
.parts222_section *,
.parts225_section * { box-sizing:border-box !important; }

/* 見出し h2（Blade は f_meiryo f_bold が付くが、子結合子で上書きして Jost light に） */
.parts222_section > h2,
.parts225_section > h2 {
  width:100% !important;
  max-width:1180px !important;
  margin:0 auto clamp(34px,4vw,52px) !important;
  text-align:center !important;
  font-family:"Jost","Noto Sans JP",sans-serif !important;
  font-weight:300 !important;
  font-size:clamp(26px,4.4vw,44px) !important;
  letter-spacing:.16em !important;
  color:#2e2e2c !important;
  line-height:1.3 !important;
}

/* =========================================================
   一覧ページ parts222（本文＋サイドバーの2カラム）
========================================================= */
.parts222_wrap {
  width:100% !important;
  max-width:1180px !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:clamp(40px,5vw,56px) !important;
}
@media (min-width:980px){
  .parts222_wrap {
    grid-template-columns:minmax(0,1fr) 300px !important;
    gap:clamp(36px,3.4vw,52px) !important;
    align-items:start !important;
  }
}

/* 旧flexレイアウト由来の幅制限をリセット（グリッドのマスに合わせて伸縮させる）
   ※これが無いと土台CSSの max-width が残り、スマホでサイドバーが激細に折れる／カード画像が縮む */
.parts222_main,
.parts222_sidebar {
  max-width:none !important;
  width:auto !important;
}
.parts222_post_wrap,
.parts225_post_wrap {
  max-width:none !important;
  width:auto !important;
  margin-bottom:0 !important;
}

/* 記事一覧グリッド（PC2列／タブレット2列／スマホ1列） */
.parts222_post_list {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:clamp(24px,3vw,36px) !important;
}
@media (min-width:560px){
  .parts222_post_list {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:clamp(24px,2.6vw,34px) !important;
  }
}

/* =========================================================
   カテゴリページ parts225（サイドバー無し・全幅3カラム）
========================================================= */
.parts225_wrap {
  width:100% !important;
  max-width:1180px !important;
  margin:0 auto !important;
  display:block !important;     /* aside が無いので1カラム（本文のみ） */
}
.parts225_main { width:100% !important; }

/* 記事一覧グリッド（PC3列／タブレット2列／スマホ1列） */
.parts225_post_list {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:clamp(24px,3vw,36px) !important;
}
@media (min-width:560px){
  .parts225_post_list {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:clamp(24px,2.4vw,32px) !important;
  }
}
@media (min-width:980px){
  .parts225_post_list {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:clamp(26px,2.2vw,34px) !important;
  }
}

/* =========================================================
   記事カード（parts222 / parts225 共通の見た目）
========================================================= */
.parts222_post_wrap > a,
.parts225_post_wrap > a {
  display:block !important;
  color:#2e2e2c !important;
  transition:transform .45s cubic-bezier(.2,.7,.2,1) !important;
}
.parts222_post_wrap > a:hover,
.parts225_post_wrap > a:hover { transform:translateY(-6px) !important; }

.parts222_post_img,
.parts225_post_img {
  aspect-ratio:4/3 !important;
  border-radius:10px !important;
  overflow:hidden !important;
  box-shadow:0 18px 40px -28px rgba(40,36,28,0.5) !important;
  background:#e9e4d9 !important;
}
.parts222_post_img img,
.parts225_post_img img {
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}

.parts222_post_status,
.parts225_post_status {
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  margin:16px 0 9px !important;
  flex-wrap:wrap !important;
}

/* 日付（Blade は f_yugothic 付与。親 .._post_status を含め2クラスで上書き） */
.parts222_post_status .parts222_post_date,
.parts225_post_status .parts225_post_date {
  font-family:"Jost",sans-serif !important;
  font-weight:400 !important;
  font-size:12.5px !important;
  color:#a09a8e !important;
  letter-spacing:.04em !important;
}

/* カテゴリバッジ（Blade は f_yugothic 付与。同上で堅牢化） */
.parts222_post_status .parts222_post_category,
.parts225_post_status .parts225_post_category {
  font-family:"Jost","Noto Sans JP",sans-serif !important;
  font-weight:500 !important;
  font-size:10.5px !important;
  letter-spacing:.10em !important;
  color:#fff !important;
  background:#009B2E !important;
  padding:3px 10px !important;
  border-radius:999px !important;
  line-height:1.6 !important;
}

/* タイトル（Blade は f_meiryo f_bold 付与。親 .._title-excerpt を含め2クラスで上書き） */
.parts222_post_title-excerpt .parts222_post_title,
.parts225_post_title-excerpt .parts225_post_title {
  font-family:"Noto Sans JP",sans-serif !important;
  font-weight:700 !important;
  font-size:15.5px !important;
  line-height:1.7 !important;
  color:#2e2e2c !important;
  margin:0 !important;
}
.parts222_post_wrap > a:hover .parts222_post_title,
.parts225_post_wrap > a:hover .parts225_post_title { color:#009B2E !important; }

/* =========================================================
   ページネーション（Blade では一覧・カテゴリ共に parts222_pagenation 固定）
========================================================= */
.parts222_pagenation {
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  align-items:center !important;
  gap:8px !important;
  margin-top:clamp(40px,5vw,60px) !important;
}
.parts222_pagenation a,
.parts222_pagenation span {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:42px !important;
  height:42px !important;
  padding:0 14px !important;
  border-radius:8px !important;
  font-family:"Jost",sans-serif !important;
  font-size:14px !important;
  color:#6a675e !important;
  border:1px solid #d4cec2 !important;
  background:#fff !important;
}
/* span 内に a がある入れ子（Blade構造）でも二重枠にならないよう調整 */
.parts222_pagenation span > a {
  min-width:auto !important;
  height:auto !important;
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  color:inherit !important;
}
.parts222_pagenation .pagination_num.current {
  background:#0e5a2a !important;
  color:#fff !important;
  border-color:#0e5a2a !important;
  font-weight:600 !important;
}
.parts222_pagenation a:hover,
.parts222_pagenation span:hover:not(.current) { border-color:#009B2E !important; color:#009B2E !important; }
/* 無効リンク（最初/前/次/最後の端） */
.parts222_pagenation a.pe-none { pointer-events:none !important; }

/* =========================================================
   記事末 署名バナー（お問い合わせ誘導｜モックアップ準拠）
========================================================= */
.parts222_contact_banner {
  display:block !important;
  margin-top:clamp(40px,5vw,60px) !important;
  border-radius:14px !important;
  overflow:hidden !important;
  box-shadow:0 16px 34px -22px rgba(40,36,28,0.55) !important;
  transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s cubic-bezier(.2,.7,.2,1) !important;
}
.parts222_contact_banner:hover {
  transform:translateY(-4px) !important;
  box-shadow:0 22px 44px -22px rgba(40,36,28,0.6) !important;
}
.parts222_contact_banner img {
  width:100% !important;
  height:auto !important;
  display:block !important;
}

/* =========================================================
   サイドバー（一覧ページのみ・parts222）
========================================================= */
.parts222_sidebar_wrap {
  background:#fff !important;
  border-radius:14px !important;
  padding:clamp(22px,2.4vw,28px) !important;
  box-shadow:0 22px 46px -36px rgba(40,36,28,0.4) !important;
  margin-bottom:clamp(20px,2.4vw,28px) !important;
}
.parts222_sidebar_wrap > h3 {
  font-family:"Noto Sans JP",sans-serif !important;
  font-weight:700 !important;
  font-size:14px !important;
  color:#fff !important;
  background:#0e5a2a !important;
  margin:-1px -1px 16px !important;
  padding:12px 18px !important;
  border-radius:12px 12px 4px 4px !important;
  letter-spacing:.04em !important;
}
.parts222_sidebar_wrap ul li { border-bottom:1px solid #eee7da !important; }
.parts222_sidebar_wrap ul li:last-child { border-bottom:none !important; }
.parts222_sidebar_wrap ul li a { display:block !important; padding:12px 4px !important; transition:color .3s ease !important; }
.parts222_sidebar_wrap ul li a:hover { color:#009B2E !important; }

.parts222_sidebar_wrap .parts222_sidebar_date {
  display:block !important;
  font-family:"Jost",sans-serif !important;
  font-size:11.5px !important;
  color:#a09a8e !important;
  margin-bottom:4px !important;
}
.parts222_sidebar_wrap .parts222_sidebar_post_title {
  font-family:"Noto Sans JP",sans-serif !important;
  font-size:13.5px !important;
  font-weight:500 !important;
  line-height:1.65 !important;
  color:inherit !important;
  margin:0 !important;
}
.parts222_sidebar_wrap.category_post_count ul li a {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
}
.parts222_sidebar_wrap .parts222_sidebar_post_category {
  font-family:"Noto Sans JP",sans-serif !important;
  font-size:13.5px !important;
  font-weight:500 !important;
  margin:0 !important;
}
.parts222_sidebar_wrap .parts222_sidebar_post_category_count {
  flex-shrink:0 !important;
  min-width:30px !important;
  text-align:center !important;
  font-family:"Jost",sans-serif !important;
  font-size:12px !important;
  color:#6a675e !important;
  border:1px solid #d4cec2 !important;
  border-radius:6px !important;
  padding:2px 6px !important;
}

.parts222_sidebar_wrap.category_post_count ul li {
  border-left:none !important;
  border-right:none !important;
}


/* =========================================================
   セクション枠
========================================================= */
.parts166_single_article {
  background:#f7f5f1 !important;
  padding:clamp(40px,6vw,72px) clamp(20px,5vw,56px) clamp(64px,9vw,110px) !important;
  box-sizing:border-box !important;
  max-width:100% !important;
  overflow-x:clip !important;
}
.parts166_single_article * { box-sizing:border-box !important; }

/* 読みやすい本文カラム（中央寄せ・最大860px） */
.parts166_single_article .container {
  width:100% !important;
  max-width:860px !important;
  margin:0 auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* =========================================================
   記事本体（白カード）
========================================================= */
.parts166_single_article article {
  background:#fff !important;
  border-radius:16px !important;
  padding:clamp(24px,4vw,52px) !important;
  box-shadow:0 24px 56px -40px rgba(40,36,28,0.45) !important;
}

/* タイトル h1（Blade は card-title f_meiryo f_bold 付与） */
.parts166_single_article article h1.card-title {
  font-family:"Noto Sans JP",sans-serif !important;
  font-weight:700 !important;
  font-size:clamp(22px,3.2vw,30px) !important;
  line-height:1.5 !important;
  letter-spacing:.01em !important;
  color:#2e2e2c !important;
  text-align:left !important;
  margin:0 0 14px !important;
  padding-bottom:18px !important;
  border-bottom:1px solid #eee7da !important;
}

/* 日付・カテゴリ行 */
.parts166_single_article .article_status {
  font-family:"Jost","Noto Sans JP",sans-serif !important;
  font-size:13px !important;
  color:#a09a8e !important;
  line-height:1.6 !important;
  margin:0 0 28px !important;
}
.parts166_single_article .article_status .article_date {
  font-family:"Jost",sans-serif !important;
  letter-spacing:.04em !important;
  margin-right:6px !important;
}
.parts166_single_article .article_status .article_category {
  display:inline-block !important;
  vertical-align:middle !important;
  font-family:"Jost","Noto Sans JP",sans-serif !important;
  font-weight:500 !important;
  font-size:10.5px !important;
  letter-spacing:.10em !important;
  color:#fff !important;
  background:#009B2E !important;
  padding:3px 10px !important;
  border-radius:999px !important;
  margin-left:6px !important;
}

/* 本文 */
.parts166_single_article article p {
  font-family:"Noto Sans JP",sans-serif !important;
  font-size:16px !important;
  line-height:1.95 !important;
  letter-spacing:.02em !important;
  color:#2e2e2c !important;
  margin:0 0 1.4em !important;
}

/* 本文中の画像 */
.parts166_single_article article img {
  max-width:100% !important;
  width:100% !important;
  height:auto !important;
  border-radius:10px !important;
  margin:12px 0 !important;
}

/* 本文見出し */
.parts166_single_article article h2,
.parts166_single_article article h3,
.parts166_single_article article h4,
.parts166_single_article article h5 {
  font-family:"Noto Sans JP",sans-serif !important;
  font-weight:700 !important;
  color:#2e2e2c !important;
  line-height:1.5 !important;
  letter-spacing:0 !important;
  margin:1.8em 0 .8em !important;
}
.parts166_single_article article h2 {
  font-size:21px !important;
  padding:6px 0 6px 14px !important;
  border-left:4px solid #009B2E !important;
}
.parts166_single_article article h3 {
  font-size:19px !important;
  padding-bottom:6px !important;
  border-bottom:2px solid #eee7da !important;
}
.parts166_single_article article h4 { font-size:17px !important; }
.parts166_single_article article h5 { font-size:15.5px !important; }

/* =========================================================
   署名ブロック
========================================================= */
.parts166_single_article .signature_wrap {
  font-family:"Noto Sans JP",sans-serif !important;
  font-size:13px !important;
  line-height:1.9 !important;
  letter-spacing:.02em !important;
  color:#6a675e !important;
  background:#fff !important;
  border:1px solid #eee7da !important;
  border-radius:12px !important;
  padding:18px 22px !important;
  margin-top:28px !important;
}
/* =========================================================
   記事詳細最近の投稿（白カード＋濃緑見出し｜サイドバーと同トーン）
========================================================= */
.parts166_single_article .recent_posts_wrap {
  background:#fff !important;
  border-radius:14px !important;
  padding:0 0 8px !important;
  box-shadow:0 22px 46px -36px rgba(40,36,28,0.4) !important;
  margin-top:40px !important;
  overflow:hidden !important;
}
.parts166_single_article .recent_posts_wrap .recent_post_title {
  font-family:"Noto Sans JP",sans-serif !important;
  font-weight:700 !important;
  font-size:14px !important;
  color:#fff !important;
  background:#0e5a2a !important;
  padding:13px 20px !important;
  letter-spacing:.04em !important;
}
.parts166_single_article .recent_posts_wrap ul {
  list-style:none !important;
  padding:0 20px !important;
  margin:0 !important;
}
.parts166_single_article .recent_posts_wrap ul li {
  border-bottom:1px solid #eee7da !important;
  margin:0 !important;
}
.parts166_single_article .recent_posts_wrap ul li:last-child { border-bottom:none !important; }
.parts166_single_article .recent_posts_wrap ul li a {
  display:block !important;
  padding:14px 4px !important;
  text-decoration:none !important;
  color:#2e2e2c !important;
  transition:color .3s ease !important;
}
.parts166_single_article .recent_posts_wrap ul li a:hover { color:#009B2E !important; }
.parts166_single_article .recent_posts_wrap .recent_post_date {
  display:block !important;
  font-family:"Jost",sans-serif !important;
  font-size:11.5px !important;
  color:#a09a8e !important;
  margin-bottom:5px !important;
}
.parts166_single_article .recent_posts_wrap ul li h3 {
  font-family:"Noto Sans JP",sans-serif !important;
  font-weight:500 !important;
  font-size:14px !important;
  line-height:1.6 !important;
  color:inherit !important;
  margin:0 !important;
}
/* =========================================================
   スマホ最適化（〜560px）｜PCと同じ世界観で再現
========================================================= */
@media screen and (max-width:560px){
  .parts166_single_article { padding:32px 16px 56px !important; }
  .parts166_single_article article {
    border-radius:12px !important;
    padding:22px 18px !important;
  }
  .parts166_single_article article h1.card-title {
    font-size:20px !important;
    line-height:1.45 !important;
    padding-bottom:14px !important;
    margin-bottom:12px !important;
  }
  .parts166_single_article .article_status { margin-bottom:22px !important; }
  .parts166_single_article article p { font-size:15px !important; line-height:1.85 !important; }
  .parts166_single_article article h2 { font-size:18px !important; }
  .parts166_single_article article h3 { font-size:17px !important; }
  .parts166_single_article article h4 { font-size:15.5px !important; }
  .parts166_single_article article h5 { font-size:14.5px !important; }

　.parts166_single_article .signature_wrap { font-size:12.5px !important; padding:16px 16px !important; }
  .parts166_single_article .recent_posts_wrap ul { padding:0 16px !important; }
  .parts166_single_article .recent_posts_wrap ul li a { padding:13px 4px !important; }
}

/* 導入文（parts210） */
.parts210_section_content { background:#f7f5f1 !important; padding:clamp(56px,8vw,96px) clamp(20px,5vw,56px) clamp(8px,1vw,16px) !important; }
.parts210_content_wrap { width:100% !important; max-width:760px !important; margin:0 auto !important; }
.parts210_content { font-family:"Noto Sans JP",sans-serif !important; font-size:clamp(14.5px,1.5vw,16px) !important; line-height:2.15 !important; color:#4a473f !important; text-align:center !important; }

/* TEL枠（parts210内）— 確認用に合わせる */
.parts210_content .tel-box { margin:26px auto 0 !important; display:flex !important; width:fit-content !important; flex-direction:column !important; align-items:center !important; gap:4px !important; padding:20px 36px !important; border:1px solid #d9d3c7 !important; border-radius:14px !important; background:#fff !important; }
.parts210_content .tel-box .tel-num { font-family:'Jost',sans-serif !important; font-weight:600 !important; font-size:clamp(26px,3.6vw,38px) !important; color:#0c5a26 !important; letter-spacing:.02em !important; line-height:1 !important; }
.parts210_content .tel-box .tel-note { font-size:12px !important; color:#9a958c !important; }
/* === add.css 貼り付け ここまで === */

/* === CEO portrait fix: show face in ellipse === */
img[src*="ceo"] {
  object-position: 50% 10% !important;
}