/* ============================================================
   RAKUFUL — Design System v3   (overlay on v1 base)
   Reference: brand mockups Sozai(1)(2)
   Multi-tonal premium palette + mockup component library.
   Loaded AFTER rakuful-design.css (priority 100) so it wins.
   ============================================================ */

:root{
  /* --- warm accent retuned: hot orange -> premium coral --- */
  --brand:#E9785C;
  --brand-deep:#D45F40;
  --brand-tint:rgba(233,120,92,.10);
  --sub:#F0A07E;

  /* --- new multi-tonal system (from mockup) --- */
  --navy:#2A241C;        /* ネイビー廃止 → ブランドの暖色ダーク（見出し/ダーク要素/ボタン等に一括反映） */
  --navy-2:#3C352B;
  --navy-deep:#1B1610;
  --navy-soft:#F2ECE0;   /* 淡い青タイント → 暖色の淡タイント */
  --coral:#E9785C;
  --coral-soft:#FBEAE3;
  --beige:#C9B393;
  --beige-2:#B89D77;
  --beige-soft:#F0E8DA;
  --sage:#7FA383;
  --sage-soft:#E7EFE7;
  --sky:#7FA8C9;
  --sky-soft:#E6EFF6;
  --pink:#E2A9B0;
  --pink-soft:#F8EBED;

  /* gradients retuned to coral/sky family */
  --grad-warm:linear-gradient(135deg,#E9785C 0%,#F0A07E 100%);
  --grad-future:linear-gradient(120deg,#E9785C 0%,#F0A07E 34%,#7FA8C9 78%,#1E3A5B 100%);
  --grad-fv:radial-gradient(120% 92% at 12% 18%, #FCFAF6 0%, #FAF7F2 46%, #F5EFE6 100%);

  --radius:20px;
  --radius-lg:28px;
}

/* ===== global accents that hardcoded the old orange ===== */
::selection{ background:var(--coral); color:#fff; }

/* ============================================================
   RHYTHM — tighten section padding (~25% less scroll)
   ============================================================ */
#index_content_builder .cb_content{ padding:clamp(58px,6.4vw,104px) clamp(24px,5vw,64px) !important; }
.rkf-head{ margin:0 auto clamp(30px,3.6vw,46px) !important; }
.rkf-cta{ margin-top:clamp(28px,3.4vw,42px) !important; }
#index_content_builder .banner_content{ padding:clamp(82px,9vw,140px) clamp(24px,5vw,64px) !important; }

/* 見出しタイトル ↔ 本文: 20px は大見出しに対して窮屈 → 適度な余白に
   （間延びは避けつつ「詰まりすぎ」を解消） */
.rkf-head .rkf-lead{ margin-top:clamp(22px,2.3vw,32px) !important; }
.rkfl-mvv-lead{ margin-top:clamp(22px,2.2vw,30px) !important; }
.rkf-message-body .rkf-msg-lead,.rkf-local-body .rkf-lead{ margin-top:clamp(16px,1.6vw,22px) !important; }
.rkf-split .bd h2{ margin-bottom:clamp(16px,1.7vw,22px) !important; }
/* 事業サークル: 名称を2行分の高さで予約 → 全EN(英字)ラベルのインデントを揃える
   （「撮影・レンタルスペース事業」の2行化で STUDIO だけ下にズレる問題を解消） */
.rkf-bizc{ gap:13px; }
.rkf-bizc .nm{ min-height:2.9em; display:flex; align-items:center; justify-content:center; }
.rkf-bizc .en{ margin-top:0; }

/* ============================================================
   改行位置の最適化 — Japanese phrase-aware line breaking
   見出し系: text-wrap:balance で行を均等化し孤立文字(「る。」等の
             1文字ぶら下がり)を防ぐ。
   本文系  : text-wrap:pretty で最終行のオーファンを防ぐ。
   両者に word-break:auto-phrase(文節境界)＋line-break:strict を併用。
   .kb で「ここは塊で折り返す」を明示（inline-block）。
   ============================================================ */
/* --- 見出し系: balance（行数を均等化、孤立文字を解消） --- */
.rkf-head h2,.rkfl-mvv-title,.rkf-split .bd h2,.rkf-message-body h2,
.rkf-local-body h2,.rkf-contact h2,
.rkf-pillbanner .ct .jp,.rkf-navcards.cols3 .rkf-navcard .tx .jp,
.rkf-darkcard h3,.rkf-consult .bd h3,.rkf-cbadge .cap,.rkf-step .lb .jp,
.rkf-future-card h3,
#index_content_builder .banner_content .catch,
body.home #header_slider_catch .catch{
  word-break:auto-phrase; line-break:strict; text-wrap:balance;
}
/* --- 本文系: pretty（最終行のぶら下がり1文字を防ぐ） --- */
.rkf-head .rkf-lead,.rkfl-mvv-lead,.rkf-tech-note,.rkf-people .rkf-lead,
.rkf-split .bd p,.rkf-darkcard p,.rkf-message-body .rkf-msg-lead,.rkf-message-body p,
.rkf-local-body .rkf-lead,.rkf-contact .rkf-lead,.rkf-future-card p,.rkf-people-note,
.rkf-navcards.cols3 .rkf-navcard .tx .desc,
#index_content_builder .banner_content .desc,
body.home #header_slider_catch .rkfl-hero-sub{
  word-break:auto-phrase; line-break:strict; text-wrap:pretty;
}
.kb{ display:inline-block; }
/* news/blog カード見出し: テーマが word-break:break-all を指定しており禁則が無効
   （開き括弧「が行末に来る等）。日本語の禁則処理を復活させる。 */
#index_content_builder .title_area .title,
#index_content_builder .title_area .title span,
#index_content_builder .post_list_title,
#index_content_builder .news_list .title,
#index_content_builder .blog_list .title{
  word-break:auto-phrase !important; line-break:strict !important; overflow-wrap:break-word;
}

/* ===== 日本語の文節改行をサイト全体に（テーマの break-all / 既定 normal を上書き） ===== */
html{ word-break:auto-phrase; line-break:strict; }
#header_slider .caption .catch_list .parent,
.interview_list .catch .parent,
#interview_header_inner .catch .parent,
#index_content_builder .text,.post_list .text,.archive_list .text,.p-postList__text,
h1,h2,h3,h4,h5,h6,p,li,dd,dt,th,td,caption,figcaption,blockquote,
.title,.title span,.desc,.cap,.caption,.catch,.sub_title,.lead{
  word-break:auto-phrase !important; line-break:strict !important; overflow-wrap:break-word;
}

/* ============================================================
   HERO — layer the balloon photo top-right; text stays on cream
   ============================================================ */
body.home #header_slider_wrap.type1,
body.home #header_slider_wrap.position_type1{
  background:
    linear-gradient(rgba(34,36,40,.026) 1px, transparent 1px) 0 0 / 100% 46px,
    linear-gradient(90deg, rgba(34,36,40,.026) 1px, transparent 1px) 0 0 / 46px 100%,
    radial-gradient(40% 50% at 84% 10%, rgba(233,120,92,.10), transparent 62%),
    radial-gradient(44% 54% at 104% 36%, rgba(127,168,201,.09), transparent 64%),
    radial-gradient(120% 92% at 12% 18%, #FCFAF6 0%, #FAF7F2 46%, #F5EFE6 100%) !important;
}
/* 風船写真：ラッパーの ::before に配置し cover＋線形マスクで全方向を 0→100% フェザー。
   視口非依存でハードエッジを解消。テキストは左下側（マスク透過）＝クリーム上に確保。 */
body.home #header_slider_wrap.type1::before{
  inset:0 !important; z-index:0 !important; animation:none !important; transform:none !important;
  background:url('../../uploads/2026/06/rkfl-hero-balloons.jpg') right top / cover no-repeat !important;
  -webkit-mask-image:linear-gradient(to bottom left, #000 33%, rgba(0,0,0,0) 80%);
          mask-image:linear-gradient(to bottom left, #000 33%, rgba(0,0,0,0) 80%);
}
/* watermark -> navy ink, a touch softer */
body.home #header_slider_wrap.type1::after{ color:rgba(42,36,28,.05) !important; }
@media (max-width:900px){
  body.home #header_slider_wrap.type1,
  body.home #header_slider_wrap.position_type1{
    background:
      radial-gradient(120% 92% at 12% 18%, #FCFAF6 0%, #FAF7F2 46%, #F5EFE6 100%) !important;
  }
  body.home #header_slider_wrap.type1::before{
    background-position:center top !important;
    -webkit-mask-image:linear-gradient(180deg, #000 30%, rgba(0,0,0,0) 72%) !important;
            mask-image:linear-gradient(180deg, #000 30%, rgba(0,0,0,0) 72%) !important;
  }
}

/* ============================================================
   DARK PANELS — unify to deep navy (premium, IT-credible)
   ============================================================ */
.rkfl-mvv{ background:linear-gradient(165deg,var(--navy) 0%,var(--navy-deep) 100%) !important; }
.rkfl-mvv::before{ background:radial-gradient(circle, rgba(233,120,92,.20), transparent 62%) !important; }
.rkfl-mvv-item{ border-top-color:rgba(233,120,92,.6) !important; }

/* page header fallback -> navy */
#page_header{
  background:
    radial-gradient(90% 120% at 88% 0%, rgba(233,120,92,.20), transparent 55%),
    radial-gradient(80% 120% at 0% 100%, rgba(127,168,201,.18), transparent 60%),
    linear-gradient(160deg,#3A322A 0%,#1B1610 100%) !important;
}

/* footer -> deep navy */
#footer{ background:linear-gradient(168deg,#2E271F 0%,#241E17 52%,#17130E 100%) !important; }  /* ネイビー廃止 → ブランドの暖色ダーク（白文字コントラスト十分） */
#footer #footer_banner .banner a::before{
  background:linear-gradient(115deg, rgba(26,20,14,.82), rgba(233,120,92,.5)) !important;
}

/* recruit CTA gradient -> coral->navy (still energetic, more premium) */
#index_content_builder .banner_content::before{
  background:linear-gradient(118deg, rgba(233,120,92,.60) 0%, rgba(233,120,92,.28) 40%, rgba(42,36,28,.82) 100%) !important;
}

/* hero CTA primary button -> coral gradient */
body.home #header_slider_catch .button{
  background:var(--grad-warm) !important;
  box-shadow:0 18px 34px -14px rgba(233,120,92,.5) !important;
}

/* tech panel — ネイビー廃止：MVVと同じ生成り＋彩りへ。文字は暗色、青は"ロゴにもある空色"アクセントとして継続 */
.rkf-tech{
  color:var(--ink) !important;
  background:
    radial-gradient(78% 116% at 90% -8%, rgba(127,168,201,.16), transparent 54%),
    radial-gradient(66% 92% at -6% 108%, rgba(233,120,92,.13), transparent 56%),
    radial-gradient(52% 72% at 50% 120%, rgba(240,196,120,.14), transparent 60%),
    linear-gradient(165deg,#FCF9F3,#F4EEE3) !important;
  border:1px solid rgba(127,168,201,.2) !important;
}
.rkf-tech::before{
  opacity:.5 !important;
  background:
    linear-gradient(rgba(30,41,59,.045) 1px, transparent 1px) 0 0 / 100% 42px,
    linear-gradient(90deg, rgba(30,41,59,.045) 1px, transparent 1px) 0 0 / 42px 100% !important;
}
.rkf-tech .rkf-head h2{ color:var(--ink) !important; }
.rkf-tech .rkf-head .rkf-lead{ color:var(--ink-2) !important; }
.rkf-tech .rkf-head .rkf-en,
.rkf-tech .rkf-head .rkf-en::before,
.rkf-tech .rkf-head .rkf-en::after{ color:var(--sky) !important; background:var(--sky) !important; }
.rkf-tech-card{ background:#fff !important; border:1px solid var(--line-2) !important; box-shadow:0 16px 38px -26px rgba(42,36,28,.4) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }
.rkf-tech-card h3{ color:var(--ink) !important; }
.rkf-tech-card p{ color:var(--ink-2) !important; }
.rkf-tech-card .rkf-ic{ background:rgba(233,120,92,.14) !important; }
.rkf-tech-card .rkf-ic svg{ stroke:var(--sky) !important; }
.rkf-tech-card::before{ background:linear-gradient(90deg,var(--sky),transparent) !important; }
.rkf-tech-note{ color:var(--ink) !important; border-top-color:rgba(30,41,59,.16) !important; }
.rkf-tech-note .em{ color:var(--coral) !important; }
.rkf-tech .rkf-cta a{ border-color:rgba(30,41,59,.4) !important; color:var(--ink) !important; }
.rkf-tech .rkf-cta a:hover{ background:var(--ink) !important; color:#fff !important; }

/* ============================================================
   SHARED — bilingual section eyebrow tweaks already exist (.rkf-en)
   New utility: soft band backgrounds for section rhythm
   ============================================================ */
.rkf-band-cream{ background:var(--paper-2) !important; }
.rkf-band-navy{ background:var(--navy-soft) !important; }
.rkf-band-sage{ background:var(--sage-soft) !important; }

/* ============================================================
   1. BUTTONS — mockup CTA set (coral / navy / beige / outline)
   ============================================================ */
.rkf-btns{ display:flex; flex-wrap:wrap; gap:14px; }
.rkf-btns.center{ justify-content:center; }
.rkf-btn{
  display:inline-flex; align-items:center; justify-content:space-between; gap:1.4em;
  min-width:230px; padding:17px 26px; border-radius:999px;
  font-family:var(--font-jp); font-weight:700; font-size:1rem; letter-spacing:.02em;
  text-decoration:none; border:1.6px solid transparent; cursor:pointer;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .35s, color .35s, border-color .35s;
}
.rkf-btn::after{ content:"→"; font-family:var(--font-en); font-weight:600; transition:transform .4s var(--ease); }
.rkf-btn:hover{ transform:translateY(-3px); }
.rkf-btn:hover::after{ transform:translateX(5px); }
.rkf-btn--coral{ background:var(--coral); color:#fff; box-shadow:0 16px 30px -16px rgba(233,120,92,.6); }
.rkf-btn--coral:hover{ box-shadow:0 24px 42px -16px rgba(233,120,92,.7); filter:brightness(1.03); }
.rkf-btn--navy{ background:var(--navy); color:#fff; box-shadow:0 16px 30px -16px rgba(42,36,28,.55); }
.rkf-btn--navy:hover{ box-shadow:0 24px 42px -16px rgba(42,36,28,.65); filter:brightness(1.06); }
.rkf-btn--beige{ background:var(--beige-soft); color:var(--navy); }
.rkf-btn--beige:hover{ background:var(--beige); color:#fff; }
.rkf-btn--outline{ background:transparent; color:var(--navy); border-color:rgba(42,36,28,.35); }
.rkf-btn--outline:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }
.rkf-btn--sm{ min-width:0; padding:13px 24px; font-size:.92rem; gap:.8em; }

/* ============================================================
   2. FEATURE PILLS — 成長企業 / グローバル展開 / 大阪・豊中発 …
   ============================================================ */
.rkf-pills{ display:flex; flex-wrap:wrap; justify-content:center; gap:13px; max-width:920px; margin:0 auto; }
.rkf-pill{
  display:inline-flex; align-items:center; gap:11px; padding:13px 24px 13px 18px; border-radius:999px;
  background:#fff; border:1px solid var(--line-2); box-shadow:var(--shadow-sm);
  font-family:var(--font-jp); font-weight:700; font-size:.96rem; color:var(--navy);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.rkf-pill:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.rkf-pill .ic{ width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; }
.rkf-pill .ic svg{ width:18px; height:18px; fill:none; stroke-width:1.7; }
.rkf-pill--coral .ic{ background:var(--coral-soft); } .rkf-pill--coral .ic svg{ stroke:var(--coral); }
.rkf-pill--navy  .ic{ background:var(--navy-soft); }  .rkf-pill--navy  .ic svg{ stroke:var(--navy); }
.rkf-pill--sage  .ic{ background:var(--sage-soft); }  .rkf-pill--sage  .ic svg{ stroke:var(--sage); }
.rkf-pill--sky   .ic{ background:var(--sky-soft); }   .rkf-pill--sky   .ic svg{ stroke:var(--sky); }
.rkf-pill--pink  .ic{ background:var(--pink-soft); }  .rkf-pill--pink  .ic svg{ stroke:#C97E88; }
.rkf-pill--beige .ic{ background:var(--beige-soft); } .rkf-pill--beige .ic svg{ stroke:var(--beige-2); }

/* ============================================================
   3. BUSINESS CIRCLES — 5 circular line-icon categories
   ============================================================ */
.rkf-bizcircles{ display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(18px,3.4vw,52px); max-width:var(--container); margin:0 auto; }
.rkf-bizc{ display:flex; flex-direction:column; align-items:center; gap:16px; text-decoration:none; width:140px; }
.rkf-bizc .ring{
  width:clamp(92px,9vw,116px); height:clamp(92px,9vw,116px); border-radius:50%;
  border:2px solid currentColor; display:flex; align-items:center; justify-content:center;
  background:#fff; transition:transform .5s var(--ease), box-shadow .5s var(--ease), background .4s;
}
.rkf-bizc .ring svg{ width:42%; height:42%; fill:none; stroke:currentColor; stroke-width:1.6; }
.rkf-bizc:hover .ring{ transform:translateY(-6px); box-shadow:0 20px 36px -18px currentColor; }
.rkf-bizc .nm{ font-family:var(--font-jp); font-weight:700; font-size:.98rem; color:var(--ink); text-align:center; line-height:1.45; }
.rkf-bizc .en{ font-family:var(--font-en); font-weight:600; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-top:-8px; }
.rkf-bizc--coral{ color:var(--coral); } .rkf-bizc--navy{ color:var(--navy); }
.rkf-bizc--sage{ color:var(--sage); }   .rkf-bizc--beige{ color:var(--beige-2); }
.rkf-bizc--sky{ color:var(--sky); }   .rkf-bizc--pink{ color:var(--pink); }

/* ============================================================
   4. IA NAV CARDS — image-backed cards: JP + EN + arrow
   事業紹介 / 企業理念 / 社長メッセージ / チームを知る / 働く環境
   ============================================================ */
.rkf-navcards{ display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(12px,1.4vw,18px); max-width:var(--container); margin:0 auto; }
.rkf-navcard{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:200px; border-radius:var(--radius); overflow:hidden; text-decoration:none;
  box-shadow:var(--shadow-sm); transition:transform .55s var(--ease), box-shadow .55s var(--ease);
}
.rkf-navcard:hover{ transform:translateY(-7px); box-shadow:var(--shadow); }
.rkf-navcard .bg{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .9s var(--ease); }
.rkf-navcard:hover .bg{ transform:scale(1.08); }
.rkf-navcard::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(21,41,63,.05) 0%, rgba(21,41,63,.34) 52%, rgba(21,41,63,.74) 100%); }
.rkf-navcard .tx{ position:relative; z-index:2; padding:22px 20px; }
.rkf-navcard .tx .jp{ display:block; font-family:var(--font-jp); font-weight:900; font-size:1.08rem; letter-spacing:.03em; color:#fff; }
.rkf-navcard .tx .en{ display:block; margin-top:5px; font-family:var(--font-en); font-weight:600; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.78); }
.rkf-navcard .tx .ar{ position:absolute; right:18px; bottom:22px; width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--navy); display:flex; align-items:center; justify-content:center; font-family:var(--font-en); transition:transform .4s var(--ease); }
.rkf-navcard:hover .tx .ar{ transform:translateX(4px); background:var(--coral); color:#fff; }
/* 3-up large variant (business feature cards) */
.rkf-navcards.cols3{ grid-template-columns:repeat(3,1fr); }
.rkf-navcards.cols3 .rkf-navcard{ min-height:300px; }
.rkf-navcards.cols3 .rkf-navcard .tx{ padding:28px 26px; }
.rkf-navcards.cols3 .rkf-navcard .tx .jp{ font-size:1.32rem; }
.rkf-navcards.cols3 .rkf-navcard .tx .desc{ display:block; margin-top:9px; max-width:88%; font-size:.9rem; line-height:1.8; color:rgba(255,255,255,.85); font-weight:500; }
.rkf-navcards.cols3 .rkf-navcard .tx .ar{ bottom:28px; right:26px; width:34px; height:34px; }

/* ============================================================
   5. PILL BANNERS — rounded-full photo banners with overlay text
   大阪・豊中から全国・世界へ / グローバル展開 / サステナビリティ …
   ============================================================ */
.rkf-pillbanners{ display:grid; gap:clamp(14px,1.8vw,22px); max-width:var(--container); margin:0 auto; }
.rkf-pillbanners.cols2{ grid-template-columns:1fr 1fr; }
.rkf-pillbanner{
  position:relative; display:flex; align-items:center; min-height:clamp(120px,13vw,158px);
  border-radius:999px; overflow:hidden; padding:0 clamp(34px,4vw,56px); text-decoration:none;
  box-shadow:var(--shadow-sm); transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.rkf-pillbanner:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.rkf-pillbanner .bg{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .9s var(--ease); }
.rkf-pillbanner:hover .bg{ transform:scale(1.07); }
.rkf-pillbanner::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(21,41,63,.62) 0%, rgba(21,41,63,.28) 56%, rgba(21,41,63,.08) 100%); }
.rkf-pillbanner .ct{ position:relative; z-index:2; }
.rkf-pillbanner .ct .jp{ display:block; font-family:var(--font-jp); font-weight:900; font-size:clamp(1.15rem,1.8vw,1.5rem); letter-spacing:.04em; color:#fff; line-height:1.4; }
.rkf-pillbanner .ct .en{ display:block; margin-top:6px; font-family:var(--font-en); font-weight:600; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.8); }
.rkf-pillbanner .ar{ position:absolute; right:clamp(28px,3.4vw,44px); top:50%; transform:translateY(-50%); z-index:2; width:40px; height:40px; border-radius:50%; border:1.5px solid rgba(255,255,255,.65); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-en); transition:transform .4s var(--ease), background .4s, border-color .4s; }
.rkf-pillbanner:hover .ar{ background:#fff; color:var(--navy); border-color:#fff; transform:translateY(-50%) translateX(4px); }

/* ============================================================
   6. RIBBON TAGS — flag-shaped category labels
   ============================================================ */
.rkf-ribbons{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.rkf-ribbon{
  position:relative; display:inline-flex; align-items:center; gap:9px;
  padding:11px 30px 11px 22px; color:#fff; font-family:var(--font-jp); font-weight:700; font-size:.92rem; letter-spacing:.04em;
  clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);
}
.rkf-ribbon svg{ width:17px; height:17px; fill:none; stroke:#fff; stroke-width:1.7; }
.rkf-ribbon--coral{ background:var(--coral); } .rkf-ribbon--navy{ background:var(--navy); }
.rkf-ribbon--beige{ background:var(--beige); }  .rkf-ribbon--sage{ background:var(--sage); }
.rkf-ribbon--outline{ background:#fff; color:var(--navy); border:1.5px solid var(--line); }
.rkf-ribbon--outline svg{ stroke:var(--navy); }

/* ============================================================
   7. 4-STEP FLOW — 企画 → 調達 → 販売 → 発送
   ============================================================ */
.rkf-flow{ display:flex; flex-wrap:wrap; align-items:stretch; justify-content:center; gap:10px; max-width:var(--container); margin:0 auto; }
.rkf-step{ flex:1 1 0; min-width:170px; position:relative; display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--line-2); border-radius:16px; padding:22px 22px; box-shadow:var(--shadow-sm); }
.rkf-step .no{ font-family:var(--font-en); font-weight:800; font-size:1.9rem; line-height:1; color:var(--coral); flex:none; }
.rkf-step .lb .jp{ display:block; font-family:var(--font-jp); font-weight:700; font-size:1rem; color:var(--ink); }
.rkf-step .lb .en{ display:block; margin-top:3px; font-family:var(--font-en); font-weight:600; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.rkf-step:not(:last-child)::after{ content:"→"; position:absolute; right:-13px; top:50%; transform:translateY(-50%); z-index:3; font-family:var(--font-en); color:var(--beige-2); font-size:1.1rem; }

/* ============================================================
   8. DARK FEATURE CARDS — 取引実績多数 / 安心・安全 / 海外発送
   ============================================================ */
.rkf-darkcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); max-width:var(--container); margin:0 auto; }
.rkf-darkcard{ position:relative; overflow:hidden; background:linear-gradient(160deg,var(--navy) 0%,var(--navy-deep) 100%); border-radius:var(--radius); padding:34px 30px; color:#fff; }
.rkf-darkcard::before{ content:""; position:absolute; right:-30%; top:-50%; width:80%; height:160%; background:radial-gradient(circle, rgba(127,168,201,.2), transparent 60%); pointer-events:none; }
.rkf-darkcard .ic{ width:54px; height:54px; border-radius:14px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.rkf-darkcard .ic svg{ width:28px; height:28px; fill:none; stroke:var(--coral); stroke-width:1.6; }
.rkf-darkcard h3{ position:relative; margin:0 0 8px; font-family:var(--font-jp); font-weight:900; font-size:1.18rem; letter-spacing:.03em; }
.rkf-darkcard p{ position:relative; margin:0; font-size:.92rem; line-height:1.9; color:rgba(255,255,255,.78); font-weight:500; }

/* ---- 強み/実績カード: 写真ヘッダー＋境界をまたぐアイコンバッジ（MVV同様の作り込み） ---- */
.rkf-strength-card.has-ph,.rkf-darkcard.has-ph{ padding:0; overflow:hidden; }
.rkf-sc-ph{ position:relative; display:block; aspect-ratio:16 / 10; overflow:hidden; }
.rkf-sc-ph .bg{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .9s var(--ease); will-change:transform; }
.rkf-sc-ph::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,28,42,.30), rgba(20,28,42,0) 55%); pointer-events:none; }
.rkf-sc-ph::before{ content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--grad-warm); z-index:2; }
.has-ph:hover .rkf-sc-ph .bg{ transform:scale(1.06); }
/* ダークカードは写真下端をネイビーへ馴染ませ、一体感を出す */
.rkf-darkcard.has-ph .rkf-sc-ph::after{ background:linear-gradient(to top, var(--navy-deep) 0%, rgba(21,41,63,0) 62%); }

/* テキスト領域＋アイコンバッジ（写真とテキストの境界をまたぐ白丸） */
.rkf-sc-tx{ position:relative; padding:36px clamp(20px,2vw,26px) clamp(24px,2.4vw,30px); }
.has-ph .rkf-ic,.has-ph .ic{
  position:absolute; top:0; left:clamp(20px,2vw,26px); transform:translateY(-50%); z-index:3; margin:0;
  width:52px; height:52px; border-radius:50%; background:#fff;
  box-shadow:0 10px 22px -8px rgba(42,36,28,.42); border:1px solid var(--line-2);
  display:flex; align-items:center; justify-content:center; transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.has-ph .rkf-ic svg,.has-ph .ic svg{ width:25px; height:25px; stroke:var(--coral) !important; fill:none; }
.has-ph:hover .rkf-ic,.has-ph:hover .ic{ transform:translateY(-50%) scale(1.09); box-shadow:0 14px 26px -8px rgba(233,120,92,.5); }

/* ============================================================
   9. CONSULT CARDS — image-top + text + circular arrow
   ============================================================ */
.rkf-consults{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,1.8vw,22px); max-width:var(--container); margin:0 auto; }
.rkf-consult{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line-2); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); text-decoration:none; transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.rkf-consult:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.rkf-consult .ph{ height:150px; overflow:hidden; }
.rkf-consult .ph .bg{ width:100%; height:100%; background-size:cover; background-position:center; transition:transform .9s var(--ease); }
.rkf-consult:hover .ph .bg{ transform:scale(1.07); }
.rkf-consult .bd{ padding:24px 26px 60px; }
.rkf-consult .bd .en{ font-family:var(--font-en); font-weight:600; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--coral); }
.rkf-consult .bd h3{ margin:8px 0 0; font-family:var(--font-jp); font-weight:900; font-size:1.16rem; line-height:1.55; color:var(--navy); }
.rkf-consult .ar{ position:absolute; right:24px; bottom:22px; width:38px; height:38px; border-radius:50%; background:var(--coral-soft); color:var(--coral); display:flex; align-items:center; justify-content:center; font-family:var(--font-en); transition:transform .4s var(--ease), background .4s, color .4s; }
.rkf-consult:hover .ar{ background:var(--coral); color:#fff; transform:translateX(4px); }

/* ============================================================
   10. CIRCLE PHOTO BADGES — circular image + caption below
   ============================================================ */
.rkf-cbadges{ display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(18px,3vw,40px); max-width:var(--container); margin:0 auto; }
.rkf-cbadge{ width:clamp(150px,15vw,184px); text-align:center; }
.rkf-cbadge .ph{ position:relative; width:100%; aspect-ratio:1; border-radius:50%; overflow:hidden; box-shadow:var(--shadow-sm); }
.rkf-cbadge .ph .bg{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .9s var(--ease); }
.rkf-cbadge:hover .ph .bg{ transform:scale(1.08); }
.rkf-cbadge .ph::after{ content:""; position:absolute; inset:0; border-radius:50%; box-shadow:inset 0 0 0 4px rgba(255,255,255,.7); }
.rkf-cbadge .cap{ margin-top:16px; font-family:var(--font-jp); font-weight:700; font-size:.95rem; line-height:1.55; color:var(--ink); }

/* ============================================================
   11. SPLIT FEATURE — image + text side by side (generic)
   ============================================================ */
.rkf-split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(26px,4vw,60px); align-items:center; max-width:var(--container); margin:0 auto; }
.rkf-split.rev{ direction:rtl; } .rkf-split.rev > *{ direction:ltr; }
.rkf-split .img{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3; box-shadow:var(--shadow); }
.rkf-split .img .bg{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 1.1s var(--ease); }
.rkf-split:hover .img .bg{ transform:scale(1.05); }
.rkf-split .img .badge{ position:absolute; left:18px; bottom:18px; z-index:2; padding:9px 18px; border-radius:999px; background:rgba(255,255,255,.92); font-family:var(--font-en); font-weight:700; font-size:11px; letter-spacing:.14em; color:var(--navy); }
.rkf-split .bd .rkf-en{ display:inline-flex; align-items:center; gap:12px; font-family:var(--font-en); font-weight:700; letter-spacing:.2em; font-size:12px; color:var(--coral); margin-bottom:14px; text-transform:uppercase; }
.rkf-split .bd .rkf-en::before{ content:""; width:24px; height:2px; background:var(--coral); opacity:.6; }
.rkf-split .bd h2{ margin:0 0 18px; font-family:var(--font-jp); font-weight:900; font-size:clamp(1.6rem,3vw,2.3rem); letter-spacing:.04em; line-height:1.34; color:var(--ink); }
.rkf-split .bd p{ margin:0 0 16px; color:var(--ink-2); font-size:1rem; line-height:1.88; font-weight:500; }

/* ============================================================
   12. QUICK TILES — NEWS / 採用 / 会社概要 quick access band
   ============================================================ */
.rkf-quicktiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.6vw,20px); max-width:var(--container); margin:0 auto; }
.rkf-qtile{ position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; min-height:128px; padding:26px 28px; border-radius:var(--radius); text-decoration:none; transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.rkf-qtile:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.rkf-qtile .en{ font-family:var(--font-en); font-weight:700; font-size:11px; letter-spacing:.2em; text-transform:uppercase; opacity:.8; }
.rkf-qtile .jp{ margin-top:6px; font-family:var(--font-jp); font-weight:900; font-size:1.2rem; letter-spacing:.03em; }
.rkf-qtile .ar{ position:absolute; right:22px; top:50%; transform:translateY(-50%); font-family:var(--font-en); font-size:1.2rem; transition:transform .4s var(--ease); }
.rkf-qtile:hover .ar{ transform:translate(4px,-50%); }
.rkf-qtile--coral{ background:var(--coral); color:#fff; }
.rkf-qtile--navy{ background:var(--navy); color:#fff; }
.rkf-qtile--beige{ background:var(--beige-soft); color:var(--navy); }

/* ===== TECH split (photo + stacked cards) ===== */
.rkf-tech-split{ display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(22px,3vw,40px); align-items:stretch; margin-bottom:clamp(8px,1.5vw,16px); }
.rkf-tech-split .rkf-tech-grid{ grid-template-columns:1fr; gap:14px; }
.rkf-tech-photo{ position:relative; border-radius:18px; overflow:hidden; min-height:300px; }
.rkf-tech-photo .bg{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 1.1s var(--ease); }
.rkf-tech:hover .rkf-tech-photo .bg{ transform:scale(1.05); }
.rkf-tech-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg, rgba(19,36,58,.12), rgba(19,36,58,.58)); }
.rkf-tech-photo .tag{ position:absolute; left:18px; bottom:18px; z-index:2; font-family:var(--font-en); font-weight:700; font-size:11px; letter-spacing:.18em; color:#fff; padding:8px 16px; border-radius:999px; background:rgba(42,36,28,.42); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
@media (max-width:860px){ .rkf-tech-split{ grid-template-columns:1fr; } .rkf-tech-photo{ min-height:200px; } }

/* ===== 社長メッセージ : ambient image as background + legibility scrim ===== */
.rkf-message-photo{ background-size:cover !important; background-position:center 20% !important; }
/* 社長写真：どの端末でも適切なポートレートで表示（旧: SP/タブレットで極小の横長に潰れていた） */
@media (max-width:900px){
  .rkf-message-photo{ width:min(400px,78%) !important; max-width:none !important; margin:0 auto !important; aspect-ratio:4/5 !important; }
}
.rkf-message-photo::before{ color:rgba(233,120,92,.65) !important; z-index:3; }
.rkf-message-photo::after{ content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(180deg, rgba(21,41,63,.04) 0%, rgba(21,41,63,.5) 100%); }
.rkf-message-photo .rkf-photo-tag{ z-index:3; }
.rkf-message-photo .rkf-photo-tag .nm{ font-family:var(--font-en) !important; letter-spacing:.16em; }

/* reduced-motion: ensure 2nd hero CTA (採用情報) + sub are visible (base CSS missed them) */
@media (prefers-reduced-motion: reduce){
  body.home #header_slider_catch .rkfl-cta-2,
  body.home #header_slider_catch .rkfl-hero-sub{ opacity:1 !important; transform:none !important; }
}

/* ============================================================
   SITEMAP page + footer sitemap polish
   ============================================================ */
.rkf-sitemap{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3.5vw,48px); max-width:var(--container); margin:0 auto; }
.rkf-sitemap .col h2{ font-family:var(--font-jp); font-weight:900; font-size:1.12rem; color:var(--navy); margin:0 0 16px; padding-bottom:12px; border-bottom:2px solid var(--coral); letter-spacing:.03em; }
.rkf-sitemap .col h2 .en{ display:block; font-family:var(--font-en); font-weight:600; font-size:10px; letter-spacing:.2em; color:var(--muted); margin-top:4px; text-transform:uppercase; }
.rkf-sitemap ul{ list-style:none; margin:0 0 26px; padding:0; }
.rkf-sitemap li{ margin:0 0 2px; }
#page_content .post_content .rkf-sitemap li a,
.rkf-sitemap li a{ display:flex; align-items:center; gap:9px; padding:9px 6px; border-radius:8px; color:var(--ink-2); text-decoration:none !important; font-weight:500; font-size:.95rem; transition:background .3s, color .3s, padding .3s; }
.rkf-sitemap li a::before{ content:"›"; color:var(--coral); font-family:var(--font-en); font-weight:700; }
.rkf-sitemap li a:hover{ background:var(--coral-soft); color:var(--coral); padding-left:12px; }
.rkf-sitemap li.sub a{ font-size:.88rem; color:var(--muted); padding-left:18px; }
.rkf-sitemap li.sub a::before{ content:"–"; }
@media (max-width:760px){ .rkf-sitemap{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .rkf-sitemap{ grid-template-columns:1fr; } }

/* ============================================================
   フッターメニュー: 3列を均等gridで整列
   テーマ既定 (#footer_menu width:1030px + .footer_menu width:calc(100%/3)
   + flex-wrap:wrap) はサブピクセル丸めで3列目が折返し・中央落ち → grid で是正。
   区切りはネイビーに馴染む微光ライン、過大padding(58/60/98)も適正化。
   ============================================================ */
#footer #footer_menu{
  width:auto !important; max-width:900px; margin:0 auto;
  display:grid !important; grid-template-columns:repeat(3,1fr); align-items:stretch;
  padding:clamp(26px,3vw,40px) clamp(16px,3vw,30px) clamp(30px,3.6vw,44px) !important;
}
#footer #footer_menu .footer_menu{
  width:auto !important; min-width:0; box-sizing:border-box;
  padding:2px clamp(22px,3vw,46px) !important;
  border-left:1px solid rgba(255,255,255,.13); border-right:0 !important;
}
#footer #footer_menu .footer_menu:first-of-type{ border-left:0; }
#footer #footer_menu ul.menu{ margin:0; padding:0; list-style:none; }
#footer #footer_menu li{ margin:0 0 15px 0 !important; }
#footer #footer_menu li:last-child{ margin-bottom:0 !important; }
#footer #footer_menu a{
  display:block; color:rgba(251,249,245,.82) !important; font-family:var(--font-jp);
  font-size:.95rem; letter-spacing:.03em; line-height:1.65; text-decoration:none;
  transition:color .3s var(--ease), transform .3s var(--ease);
}
#footer #footer_menu a:hover{ color:#fff !important; transform:translateX(3px); }
/* 子項目（└ 接頭辞：news_category / category のフラット項目）を控えめ・小さめに */
#footer #footer_menu a[href*="_category/"],
#footer #footer_menu a[href*="/category/"]{ color:rgba(251,249,245,.58) !important; font-size:.87rem; letter-spacing:.02em; }
/* 3列目の親項目（お知らせ/ブログ）を少し強調し、サブグループを見せる */
#footer #footer_menu .footer_menu:last-of-type a:not([href*="category"]){ font-weight:700; margin-top:9px; }
#footer #footer_menu .footer_menu:last-of-type ul > li:first-child a{ margin-top:0; }
/* レスポンシブ: 2列 → 1列 */
@media (max-width:760px){
  #footer #footer_menu{ grid-template-columns:1fr 1fr; max-width:520px; }
  #footer #footer_menu .footer_menu:nth-of-type(odd){ border-left:0; }
  #footer #footer_menu .footer_menu{ padding:6px clamp(18px,4vw,34px) !important; }
}
@media (max-width:460px){
  #footer #footer_menu{ grid-template-columns:1fr; max-width:300px; gap:0; }
  #footer #footer_menu .footer_menu{ border-left:0 !important; padding:0 !important; }
  #footer #footer_menu .footer_menu + .footer_menu{ margin-top:22px; padding-top:22px !important; border-top:1px solid rgba(255,255,255,.12); }
}

/* ============================================================
   LOGO — 支給ブランドロゴ（星バースト＋ラクフル）の表示サイズ
   元画像800x210(3.8:1)。高さ固定・幅autoで比率維持しヘッダー/フッターに収める
   ============================================================ */
/* PC=pc_logo_image / SP=mobile_logo_image を明示制御。
   テーマの非表示指定は #header_logo(id) 前提だが当ヘッダーは .logo(class) 構造のため効かず、
   PCで両ロゴが二重表示される不具合 → ここで明示。切替はテーマと同じ750px。 */
#header .logo a .pc_logo_image{ height:42px !important; width:auto !important; display:block !important; }
#header .logo a .mobile_logo_image{ display:none !important; }
#footer #footer_logo .logo a .pc_logo_image{ height:46px !important; width:auto !important; display:block !important; }
#footer #footer_logo .logo a .mobile_logo_image{ display:none !important; }
@media (max-width:750px){
  #header .logo a .pc_logo_image{ display:none !important; }
  #header .logo a .mobile_logo_image{ display:inline-block !important; height:34px !important; width:auto !important; }
  #footer #footer_logo .logo a .pc_logo_image{ display:none !important; }
  #footer #footer_logo .logo a .mobile_logo_image{ display:inline-block !important; height:38px !important; width:auto !important; }
}

/* footer下部ユーティリティメニュー: テーマ既定の薄灰背景(#f3f3f3)がネイビーで浮く
   → 透過＋明色リンク＋区切り線でフッターに馴染ませる */
#footer #footer_menu_bottom{ background:transparent !important; padding:6px 0 2px !important; }
#footer #footer_menu_bottom ul.menu{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:0; margin:0; padding:0; list-style:none; }
#footer #footer_menu_bottom li{ position:relative; margin:0 !important; padding:2px 22px !important; }
#footer #footer_menu_bottom li:not(:last-child)::after{ content:""; position:absolute; right:0; top:50%; transform:translateY(-50%); width:1px; height:12px; background:rgba(255,255,255,.18); }
#footer #footer_menu_bottom li a{ color:rgba(251,249,245,.62) !important; font-size:.86rem; letter-spacing:.03em; text-decoration:none; transition:color .3s; }
#footer #footer_menu_bottom li a:hover{ color:#fff !important; }

/* ============================================================
   フッター：キネティック マーキー（文字モーション）＋ メニューのテキストロール
   no-company.co.jp のフッターに着想。JSで #footer_menu の直後に注入。
   ============================================================ */
#footer .rkfl-fmarq{
  position:relative; margin:clamp(26px,3.4vw,42px) 0 0; padding:clamp(18px,2.6vw,30px) 0;
  margin-left:calc(-1 * clamp(24px,5vw,64px)); margin-right:calc(-1 * clamp(24px,5vw,64px));
  overflow:hidden; border-top:1px solid rgba(251,249,245,.10); border-bottom:1px solid rgba(251,249,245,.10);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
}
#footer .rkfl-fmarq-row{ display:flex; overflow:hidden; }
#footer .rkfl-fmarq-row + .rkfl-fmarq-row{ margin-top:clamp(4px,.8vw,12px); }
#footer .rkfl-fmarq-row.rev{ opacity:.62; }
#footer .rkfl-fmarq-track{
  display:flex; flex:0 0 auto; align-items:center; white-space:nowrap; will-change:transform;
  animation:rkfl-fmarq-l 46s linear infinite;
}
#footer .rkfl-fmarq-row.rev .rkfl-fmarq-track{ animation:rkfl-fmarq-r 56s linear infinite; }
@keyframes rkfl-fmarq-l{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes rkfl-fmarq-r{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
#footer .rkfl-fmarq-word{
  display:inline-block; font-weight:800; line-height:1; padding:0 .3em; cursor:default;
  transition:color .38s var(--ease), -webkit-text-stroke-color .38s var(--ease), transform .38s var(--ease);
}
#footer .rkfl-fmarq-word.jp{ font-family:var(--font-jp); font-size:clamp(1.45rem,3.4vw,2.9rem); color:rgba(251,249,245,.9); }
#footer .rkfl-fmarq-word.en{
  font-family:var(--font-en); font-size:clamp(1.65rem,4.1vw,3.5rem); text-transform:uppercase; letter-spacing:.015em;
  color:transparent; -webkit-text-stroke:1.4px rgba(251,249,245,.5);
}
#footer .rkfl-fmarq-sep{ display:inline-block; padding:0 .06em; color:var(--brand); font-size:clamp(.9rem,2vw,1.7rem); transform:translateY(-.05em); }
/* ロールオーバー：帯にマウスが乗ると停止、単語は浮いてコーラルに点灯 */
#footer .rkfl-fmarq:hover .rkfl-fmarq-track{ animation-play-state:paused; }
#footer .rkfl-fmarq-word:hover{ transform:translateY(-5px); }
#footer .rkfl-fmarq-word.jp:hover{ color:var(--brand); }
#footer .rkfl-fmarq-word.en:hover{ color:var(--brand); -webkit-text-stroke-color:transparent; }

/* フッターメニュー：ホバーで文字がロール（下からコーラルの複製が上がる） */
#footer #footer_menu a.rkfl-roll{ display:inline-block; overflow:hidden; height:1.65em; line-height:1.65; vertical-align:top; }
#footer #footer_menu a.rkfl-roll:hover{ transform:none; padding-left:0 !important; }
#footer #footer_menu a.rkfl-roll .rkfl-rollset{ display:block; transition:transform .44s cubic-bezier(.2,.7,.2,1); }
#footer #footer_menu a.rkfl-roll .rkfl-rollset > span{ display:block; height:1.65em; line-height:1.65; white-space:nowrap; }
#footer #footer_menu a.rkfl-roll .rkfl-rollset > span.b{ color:var(--brand) !important; }
#footer #footer_menu a.rkfl-roll:hover .rkfl-rollset{ transform:translateY(-1.65em); }

@media (max-width:520px){ #footer .rkfl-fmarq{ padding:clamp(18px,5vw,30px) 0; } }
@media (prefers-reduced-motion:reduce){
  #footer .rkfl-fmarq-track{ animation:none !important; transform:translateX(0) !important; }
  #footer .rkfl-fmarq-row.rev .rkfl-fmarq-track{ animation:none !important; }
}

/* ============================================================
   下層ページ本文: 画像（適材適所）＋ 関連ページ（蜘蛛の巣内部リンク）
   ============================================================ */
#page_content .post_content .rkfl-bodyimg{ margin:clamp(26px,3.6vw,42px) 0 !important; }
.rkfl-bodyimg img{ width:100%; height:auto; border-radius:var(--radius); box-shadow:var(--shadow); display:block; }
.rkfl-bodyimg figcaption.wp-element-caption{ margin-top:13px; font-size:.86rem; color:var(--muted); text-align:center; line-height:1.7; letter-spacing:.02em; }
/* 縦位置ポートレート（代表写真）: 中央寄せで幅制限 */
.rkfl-bodyimg--portrait{ max-width:340px; margin-left:auto !important; margin-right:auto !important; }
.rkfl-bodyimg--portrait img{ border-radius:var(--radius-lg); }
/* 環境ポートレート（横位置・社長×ブランドロゴ）: 誌面的なフィーチャー画像として堂々と */
.rkfl-bodyimg--feature{ max-width:min(100%,640px); margin-left:auto !important; margin-right:auto !important; }
.rkfl-bodyimg--feature img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-lg,0 24px 60px -22px rgba(21,41,63,.34)); }
.rkfl-bodyimg--feature figcaption.wp-element-caption{ font-family:var(--font-jp); font-weight:700; color:var(--navy); font-size:.92rem; }

#page_content .post_content .rkfl-related{ margin:clamp(40px,6vw,72px) 0 6px; }
.rkfl-related-h{ display:block; font-family:var(--font-jp); font-weight:900; font-size:1.2rem; color:var(--navy); letter-spacing:.04em; margin:0 0 18px; padding-bottom:12px; border-bottom:2px solid var(--coral); }
.rkfl-related-h .en{ font-family:var(--font-en); font-weight:600; font-size:11px; letter-spacing:.2em; color:var(--muted); margin-left:12px; }
.rkfl-related-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
#page_content .post_content .rkfl-rel-card{ position:relative; display:flex; flex-direction:column; gap:5px; padding:20px 52px 20px 22px; border:1px solid var(--line-2); border-radius:16px; background:#fff; text-decoration:none !important; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s; }
#page_content .post_content .rkfl-rel-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--coral); }
.rkfl-rel-card .t{ font-family:var(--font-jp); font-weight:700; font-size:1.02rem; color:var(--navy); }
.rkfl-rel-card .d{ font-size:.85rem; color:var(--muted); line-height:1.6; }
.rkfl-rel-card .ar{ position:absolute; right:18px; top:50%; transform:translateY(-50%); width:30px; height:30px; border-radius:50%; background:var(--coral-soft); color:var(--coral); display:flex; align-items:center; justify-content:center; font-family:var(--font-en); transition:transform .4s var(--ease),background .4s,color .4s; }
.rkfl-rel-card:hover .ar{ background:var(--coral); color:#fff; transform:translateY(-50%) translateX(3px); }
@media (max-width:600px){ .rkfl-related-grid{ grid-template-columns:1fr; } }

/* ============================================================
   取引先・取扱ブランド（会社概要）: 主要取引先リスト＋ロゴウォール
   すべてに“仕掛け”を——タイルはホバーで浮上・彩度復帰、リビールは段差ウェーブ。
   ============================================================ */
#page_content .post_content .rkfl-brands{ margin:clamp(44px,6vw,76px) 0 8px; }
.rkfl-brands .rkfl-brands-lead{ max-width:66ch; color:var(--muted); font-size:.98rem; line-height:1.9; margin:2px 0 6px; }

/* h3 の件数バッジ */
.rkfl-brands .rkfl-bg-count{
  display:inline-block; margin-left:13px; padding:3px 12px; border-radius:999px; vertical-align:middle;
  background:var(--coral-soft); color:var(--brand-deep);
  font-family:var(--font-en); font-weight:700; font-size:11.5px; letter-spacing:.09em;
}

/* --- 主要取引先: 上質なカラム型リスト --- */
.rkfl-partner-card{
  margin:20px 0 4px; padding:clamp(20px,2.6vw,32px) clamp(20px,3vw,38px);
  background:linear-gradient(180deg,#ffffff 0%,#FBFAF8 100%);
  border:1px solid var(--line-2); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm);
}
.rkfl-partner-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:0 30px; }
#page_content .post_content .rkfl-partner-list li{
  position:relative; margin:0; padding:12px 6px 12px 24px;
  font-family:var(--font-jp); font-weight:600; color:var(--navy); font-size:.98rem; letter-spacing:.01em;
  border-bottom:1px dashed var(--line); transition:color .3s var(--ease), padding-left .3s var(--ease);
}
.rkfl-partner-list li::before{
  content:""; position:absolute; left:3px; top:50%; transform:translateY(-50%);
  width:7px; height:7px; border-radius:50%; background:var(--coral); box-shadow:0 0 0 4px var(--coral-soft);
  transition:transform .3s var(--ease);
}
#page_content .post_content .rkfl-partner-list li:hover{ color:var(--brand-deep); padding-left:28px; }
.rkfl-partner-list li:hover::before{ transform:translateY(-50%) scale(1.25); }

/* --- ロゴウォール（アパレル/おもちゃ） --- */
.rkfl-brandgroup{ margin-top:22px; }
.rkfl-logo-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(148px,1fr)); gap:14px; }
#page_content .post_content .rkfl-logo{
  display:flex; align-items:center; justify-content:center; aspect-ratio:5 / 2; padding:14px 18px;
  background:#fff; border:1px solid var(--line-2); border-radius:14px; overflow:hidden;
  box-shadow:0 2px 10px -6px rgba(42,36,28,.20);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.rkfl-logo img{
  max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain;
  filter:saturate(.9); opacity:.92; transition:filter .5s var(--ease), opacity .5s var(--ease), transform .55s var(--ease);
}
/* motion.css の .rkfl-vis{transform:none!important} を越えてホバー浮上させる（高詳細度＋!important） */
#page_content .post_content .rkfl-logo:hover{
  transform:translateY(-5px) !important; border-color:rgba(233,120,92,.5);
  box-shadow:0 18px 34px -18px rgba(42,36,28,.42);
}
.rkfl-logo:hover img{ filter:saturate(1.06); opacity:1; transform:scale(1.05); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* global guard: never allow horizontal scroll/cutting on mobile */
html,body{ overflow-x:hidden; max-width:100%; }

/* ============================================================
   CONTENT TABLE — 事業紹介ページ等の表を全端末で崩さない
   テーマ design-plus.css の「1文字潰れ／mobile white-space:nowrap」を上書き。
   figure を横スクロールコンテナ化し、table は table-layout:fixed ＋
   明示的な列比率で決定的にレイアウト（狭い画面では横スクロール）。
   ============================================================ */
.post_content .wp-block-table{
  display:block !important;
  width:100%;
  margin:1.9em 0 !important;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  white-space:normal !important;              /* mobile の nowrap を無効化 */
  border-radius:14px;
  box-shadow:0 12px 30px -22px rgba(42,36,28,.30);
}
.post_content .wp-block-table table{
  width:100% !important;
  max-width:none !important;                  /* グローバル max-width:100% を無効化（列潰れ防止） */
  table-layout:fixed;                         /* 列幅を決定的に */
  margin:0 !important;
  border-collapse:separate; border-spacing:0;
  background:#fff; font-size:15px;
  border:1px solid #EAE3D6; border-radius:14px;
  overflow:hidden;
}
/* 4列表のみ最小幅を確保（PCで内容列を十分に。狭い画面では下でカード化） */
.post_content .wp-block-table:has(thead th:nth-child(4)) table{ min-width:560px; }
/* 4列（カテゴリー／売上構成／取扱点数／内容）の比率 */
.post_content .wp-block-table th:nth-child(1),
.post_content .wp-block-table td:nth-child(1){ width:18%; }
.post_content .wp-block-table th:nth-child(2),
.post_content .wp-block-table td:nth-child(2){ width:15%; }
.post_content .wp-block-table th:nth-child(3),
.post_content .wp-block-table td:nth-child(3){ width:16%; }
.post_content .wp-block-table th:nth-child(4),
.post_content .wp-block-table td:nth-child(4){ width:51%; }
/* 表バランス是正：4列以外は table-layout:auto にし、内容に応じた自然な列幅へ
   （4列用の固定幅18/15/16/51%を継承して項目列が膨張していたのを一括解消） */
.post_content .wp-block-table:not(:has(td:nth-child(4))):not(:has(th:nth-child(4))) table{ table-layout:auto !important; }
.post_content .wp-block-table:not(:has(td:nth-child(4))):not(:has(th:nth-child(4))) th,
.post_content .wp-block-table:not(:has(td:nth-child(4))):not(:has(th:nth-child(4))) td{ width:auto !important; }
/* 項目/値表（各行 th 見出し＋td 値）：項目列は改行させず自然に詰める */
.post_content .wp-block-table:has(tbody th):not(:has(td:nth-child(3))) tbody th{ white-space:nowrap; }
.post_content .wp-block-table th,
.post_content .wp-block-table td{
  padding:14px 18px !important;
  line-height:1.75 !important;
  text-align:left; vertical-align:top;
  border:0 !important;
  border-bottom:1px solid #EFE9DE !important;
  background:transparent !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:anywhere;
  color:#2A2C30;
}
.post_content .wp-block-table thead th{
  background:var(--navy) !important; color:#fff !important;
  font-weight:700 !important; white-space:nowrap;
  border-bottom:0 !important; letter-spacing:.02em;
}
.post_content .wp-block-table thead th:first-child{ border-top-left-radius:13px; }
.post_content .wp-block-table thead th:last-child{ border-top-right-radius:13px; }
.post_content .wp-block-table tbody td:first-child{ font-weight:600; color:var(--navy); }
.post_content .wp-block-table tbody tr:nth-child(even) td{ background:#FBF3EE !important; } /* コーラル極薄ゼブラ */
.post_content .wp-block-table tbody tr:last-child td{ border-bottom:0 !important; }
@media (max-width:767px){
  .post_content .wp-block-table table{ font-size:14px; }
  .post_content .wp-block-table th,
  .post_content .wp-block-table td{ padding:11px 13px !important; }
}
/* モバイル：4列表はカード型へ組み替え（横スクロール不要で全項目を可読に） */
@media (max-width:600px){
  .post_content .wp-block-table:has(thead th:nth-child(4)){ overflow:visible; box-shadow:none; border-radius:0; }
  .post_content .wp-block-table:has(thead th:nth-child(4)) table{ min-width:0; border:0; background:transparent; }
  .post_content .wp-block-table:has(thead th:nth-child(4)) thead{
    position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); border:0;
  }
  .post_content .wp-block-table:has(thead th:nth-child(4)) tbody tr{
    display:block; background:#fff; border:1px solid #EAE3D6; border-radius:12px;
    margin:0 0 12px; padding:4px 2px; box-shadow:0 8px 22px -18px rgba(42,36,28,.30);
  }
  .post_content .wp-block-table:has(thead th:nth-child(4)) tbody tr:nth-child(even) td{ background:transparent !important; }
  .post_content .wp-block-table:has(thead th:nth-child(4)) tbody td{
    display:flex; align-items:flex-start; gap:12px; width:auto !important;
    padding:8px 16px !important; border:0 !important; line-height:1.7 !important;
  }
  .post_content .wp-block-table:has(thead th:nth-child(4)) tbody td:first-child{
    font-size:16px; font-weight:700; color:var(--navy);
    padding:12px 16px 10px !important; margin-bottom:2px; border-bottom:1px solid #F0E9DD !important;
  }
  .post_content .wp-block-table:has(thead th:nth-child(4)) tbody td:nth-child(n+2)::before{
    flex:0 0 4.6em; color:#8C8676; font-weight:700; font-size:12px; letter-spacing:.02em; padding-top:2px;
  }
  .post_content .wp-block-table:has(thead th:nth-child(4)) tbody td:nth-child(2)::before{ content:"売上構成"; }
  .post_content .wp-block-table:has(thead th:nth-child(4)) tbody td:nth-child(3)::before{ content:"取扱点数"; }
  .post_content .wp-block-table:has(thead th:nth-child(4)) tbody td:nth-child(4)::before{ content:"内容"; }

  /* 2列表（用語／説明）：見出しを隠し、用語＝タイトル＋説明のカードに */
  .post_content .wp-block-table:not(:has(thead th:nth-child(3))){ overflow:visible; box-shadow:none; border-radius:0; }
  .post_content .wp-block-table:not(:has(thead th:nth-child(3))) table{ min-width:0; border:0; background:transparent; }
  .post_content .wp-block-table:not(:has(thead th:nth-child(3))) thead{
    position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); border:0;
  }
  .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody tr{
    display:block; background:#fff; border:1px solid #EAE3D6; border-radius:12px;
    margin:0 0 12px; padding:14px 16px; box-shadow:0 8px 22px -18px rgba(42,36,28,.30);
  }
  .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody tr:nth-child(even) td{ background:transparent !important; }
  .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody td{ display:block; width:auto !important; border:0 !important; padding:0 !important; }
  .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody td:first-child{
    font-size:16px; font-weight:700; color:var(--navy); margin-bottom:6px;
  }
  .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody td:last-child{ color:#2A2C30; line-height:1.72; }
}

@media (max-width:1000px){
  .rkf-navcards{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:860px){
  /* grid/flex children default to min-width:auto → can't shrink below content → overflow.
     force them to shrink + wrap long JP strings. (fixes MVV/数字/強み right-edge cutting) */
  .rkfl-mvv-grid > *,.rkf-tech-grid > *,.rkfl-stats > *,.rkf-strength-grid > *,
  .rkf-darkcards > *,.rkf-pills > *,.rkf-cbadges > *,.rkf-flow > *,.rkf-bizcircles > *,
  .rkf-future-card,.rkf-navcard,.rkf-pillbanner,.rkf-message,.rkf-local{ min-width:0; }
  .rkfl-mvv-lead,.rkfl-mvv-item p,.rkfl-mvv-credo span,.rkf-lead,.rkf-tech-note,.rkf-tech-card p,
  .rkf-pill,.rkfl-stat-label,.rkf-strength-card p,.rkf-darkcard p,.rkf-cbadge .cap,.rkf-addr .ad{ overflow-wrap:anywhere; }
  .rkfl-mvv-grid{ grid-template-columns:1fr; }
  .rkf-navcards{ grid-template-columns:repeat(2,1fr); }
  .rkf-navcards.cols3{ grid-template-columns:1fr 1fr; }
  .rkf-darkcards{ grid-template-columns:1fr; }
  .rkf-consults{ grid-template-columns:1fr; }
  .rkf-pillbanners.cols2{ grid-template-columns:1fr; }
  .rkf-split{ grid-template-columns:1fr; }
  .rkf-split.rev{ direction:ltr; }
  .rkf-split .img{ aspect-ratio:16/10; }
  .rkf-quicktiles{ grid-template-columns:1fr; }
  .rkf-step{ flex:1 1 100%; }
  .rkf-step:not(:last-child)::after{ content:"↓"; right:50%; bottom:-15px; top:auto; transform:translateX(50%); }
  /* 取引先: 3→2列 / ロゴ: タイルをやや小さく */
  .rkfl-partner-list{ grid-template-columns:repeat(2,1fr); gap:0 22px; }
  .rkfl-logo-grid{ grid-template-columns:repeat(auto-fill,minmax(128px,1fr)); gap:12px; }
}
@media (max-width:680px){
  /* dark panels: trim padding so text breathes within viewport */
  .rkfl-mvv{ padding:clamp(30px,7vw,44px) !important; border-radius:20px; }
  .rkf-tech{ padding:clamp(28px,6vw,40px) !important; border-radius:20px; }
  .rkfl-mvv-credo{ gap:8px 18px; }
  /* business feature cards: one per row, full content */
  .rkf-navcards.cols3{ grid-template-columns:1fr; }
  .rkf-navcards.cols3 .rkf-navcard{ min-height:188px; }
  .rkf-navcards.cols3 .rkf-navcard .tx .desc{ max-width:100%; }
  /* pill banner text a touch smaller */
  .rkf-pillbanner{ min-height:108px; padding:0 26px; }
  .rkf-pillbanner .ar{ display:none; }
  /* circle badges 2-up */
  .rkf-cbadge{ width:44%; }
  /* hero CTA: stack full-width, no overflow */
  body.home #header_slider_catch .rkfl-cta-group{ flex-direction:column; align-items:stretch; width:100%; max-width:330px; gap:12px; }
  body.home #header_slider_catch .button,
  body.home #header_slider_catch .rkfl-cta-2{ justify-content:center; width:100%; box-sizing:border-box; }
}
@media (max-width:560px){
  .rkf-navcards{ grid-template-columns:1fr; }
  .rkf-btn{ min-width:0; width:100%; box-sizing:border-box; }
  /* business circles: clean 3 / 2 per row */
  .rkf-bizcircles{ gap:22px 10px; }
  .rkf-bizc{ width:30%; min-width:92px; }
  .rkf-bizc .nm{ font-size:.86rem; }
  /* stats: 2 columns already; pills wrap */
  .rkf-pills{ gap:9px; }
  .rkf-pill{ font-size:.88rem; padding:11px 18px 11px 14px; }
  /* 取引先: 2→1列 / ロゴ: 2列を確保しつつ余白圧縮 */
  .rkfl-partner-list{ grid-template-columns:1fr; }
  .rkfl-partner-card{ padding:18px 20px; }
  .rkfl-logo-grid{ grid-template-columns:repeat(auto-fill,minmax(116px,1fr)); gap:10px; }
  #page_content .post_content .rkfl-logo{ padding:12px 14px; }
}

/* ============================================================
   JOY BAND — 下層ページの「楽しいがいっぱい」ビジュアル演出
   （子どもたち＋風船の写真をシネマティックな帯で。ラクフルらしい多幸感）
   ============================================================ */
#page_content .post_content .rkfl-joy{
  position:relative; margin:clamp(44px,6vw,80px) 0; border-radius:26px; overflow:hidden;
  min-height:clamp(300px,36vw,460px); display:flex; align-items:center; isolation:isolate;
  box-shadow:0 34px 66px -36px rgba(42,36,28,.55);
}
.rkfl-joy-bg{ position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:center 42%;
  transform:scale(1.05); transition:transform 1.3s var(--ease); display:block; margin:0; max-width:none; border-radius:0; }
.rkfl-joy:hover .rkfl-joy-bg{ transform:scale(1.1); }
.rkfl-joy-ov{ position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(125% 135% at 6% 58%, rgba(21,41,63,.78) 0%, rgba(21,41,63,.40) 38%, rgba(21,41,63,0) 72%),
    linear-gradient(0deg, rgba(21,41,63,.34), rgba(21,41,63,0) 42%); }
.rkfl-joy-in{ position:relative; z-index:3; padding:clamp(30px,5vw,66px); max-width:min(660px,76%); color:#fff; }
.rkfl-joy-en{ display:inline-block; font-family:var(--font-en,'Outfit',sans-serif); font-weight:700; font-size:12px;
  letter-spacing:.26em; text-transform:uppercase; color:#fff; background:rgba(233,120,92,.94);
  padding:7px 15px; border-radius:100px; margin:0 0 16px; box-shadow:0 8px 18px -8px rgba(233,120,92,.6); }
.rkfl-joy-jp{ margin:0; font-family:var(--font-jp); font-weight:900; line-height:1.32; letter-spacing:.02em;
  font-size:clamp(1.7rem,3.9vw,3rem); text-shadow:0 5px 26px rgba(21,41,63,.55); }
.rkfl-joy-jp .em{ color:#FFD79E; }
.rkfl-joy-jp .kb{ display:inline-block; }
.rkfl-joy-sub{ margin:15px 0 0; font-size:clamp(.92rem,1.25vw,1.08rem); font-weight:600; line-height:1.85;
  color:rgba(255,255,255,.95); text-shadow:0 2px 14px rgba(21,41,63,.55); max-width:34em; }
/* floating balloons（ブランドモチーフ・ゆらゆら） */
.rkfl-joy-balloons{ position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
.rkfl-joy-balloons i{ position:absolute; width:var(--s,30px); height:calc(var(--s,30px)*1.22);
  background:var(--c,#E9785C); border-radius:50% 50% 47% 47%; opacity:.9;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.16)); animation:rkfl-bob var(--d,6s) ease-in-out var(--dl,0s) infinite; }
.rkfl-joy-balloons i::after{ content:""; position:absolute; left:50%; bottom:-13px; width:1px; height:15px;
  background:rgba(255,255,255,.65); transform:translateX(-50%); }
@keyframes rkfl-bob{ 0%,100%{ transform:translateY(0) rotate(-5deg); } 50%{ transform:translateY(-16px) rotate(5deg); } }
@media (max-width:680px){
  #page_content .post_content .rkfl-joy{ min-height:clamp(300px,72vw,420px); border-radius:20px; }
  .rkfl-joy-in{ max-width:92%; }
  .rkfl-joy-ov{ background:
    linear-gradient(0deg, rgba(21,41,63,.80) 4%, rgba(21,41,63,.30) 52%, rgba(21,41,63,.10) 100%); }
  .rkfl-joy-in{ align-self:flex-end; }
  .rkfl-joy-balloons i{ --s:22px !important; }
}
@media (prefers-reduced-motion:reduce){
  .rkfl-joy-balloons i{ animation:none; }
  .rkfl-joy:hover .rkfl-joy-bg{ transform:scale(1.05); }
}

/* ============================================================
   MVV — アート化：多層オーロラ＋きらめき＋カード磨き
   （フラットなネイビーを、奥行きと多幸感のある面へ）
   ============================================================ */
.rkfl-mvv{
  background:
    radial-gradient(78% 116% at 90% -12%, rgba(233,120,92,.20) 0%, transparent 54%),
    radial-gradient(68% 92% at -8% 110%, rgba(127,168,201,.18) 0%, transparent 55%),
    linear-gradient(158deg, #1E3A5B 0%, #16293F 54%, #11203A 100%) !important;
}
/* 漂うオーロラ（奥行きと生命感） */
.rkfl-mvv::before{
  content:""; position:absolute !important;
  inset:-22% !important; left:auto !important; right:auto !important; top:auto !important; width:auto !important; height:auto !important;
  background:
    radial-gradient(36% 42% at 24% 30%, rgba(233,120,92,.32), transparent 60%),
    radial-gradient(34% 40% at 76% 38%, rgba(127,168,201,.26), transparent 60%),
    radial-gradient(30% 36% at 62% 84%, rgba(226,169,176,.22), transparent 62%) !important;
  filter:blur(16px); pointer-events:none; z-index:0 !important;
  animation:rkfl-aurora 22s ease-in-out infinite alternate;
}
@keyframes rkfl-aurora{
  0%{ transform:translate3d(-3%,-2%,0) scale(1.02); }
  50%{ transform:translate3d(3%,2%,0) scale(1.09); }
  100%{ transform:translate3d(-2%,3%,0) scale(1.05); }
}
/* きらめきの粒（ブランドの多幸感・星モチーフ） */
.rkfl-mvv::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:
    radial-gradient(1.6px 1.6px at 12% 22%, rgba(255,255,255,.75), transparent 60%),
    radial-gradient(1.4px 1.4px at 33% 66%, rgba(255,255,255,.5), transparent 60%),
    radial-gradient(2.2px 2.2px at 67% 17%, rgba(255,215,158,.85), transparent 60%),
    radial-gradient(1.5px 1.5px at 83% 51%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(1.5px 1.5px at 52% 88%, rgba(255,255,255,.5), transparent 60%),
    radial-gradient(2.4px 2.4px at 89% 77%, rgba(233,120,92,.75), transparent 60%),
    radial-gradient(1.4px 1.4px at 46% 34%, rgba(255,255,255,.45), transparent 60%),
    radial-gradient(1.8px 1.8px at 22% 82%, rgba(127,168,201,.7), transparent 60%);
  animation:rkfl-twinkle 5.5s ease-in-out infinite;
}
@keyframes rkfl-twinkle{ 0%,100%{ opacity:.5 } 50%{ opacity:1 } }
/* カード：磨りガラス＋大きな番号＋ホバー強化 */
.rkfl-mvv-item{
  background:linear-gradient(180deg, rgba(255,255,255,.078), rgba(255,255,255,.028)) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.rkfl-mvv-item:hover{ box-shadow:0 30px 60px -22px rgba(0,0,0,.52) !important; border-color:rgba(233,120,92,.5) !important; }
.rkfl-mvv-body{ position:relative; }
.rkfl-mvv-body::after{
  position:absolute; top:15px; right:17px; font-family:var(--font-en,'Outfit',sans-serif);
  font-weight:800; font-size:2.4rem; line-height:1; color:rgba(255,255,255,.10); letter-spacing:.02em; pointer-events:none;
}
.rkfl-mvv-item:nth-child(1) .rkfl-mvv-body::after{ content:"01"; }
.rkfl-mvv-item:nth-child(2) .rkfl-mvv-body::after{ content:"02"; }
.rkfl-mvv-item:nth-child(3) .rkfl-mvv-body::after{ content:"03"; }
/* ブランドの星（きらめき）モチーフ＝見出し脇のアート焦点 */
.rkfl-mvv-head{ position:relative; }
.rkfl-mvv-head::before, .rkfl-mvv-head::after{
  content:""; position:absolute; pointer-events:none; z-index:0;
  background:radial-gradient(circle at 50% 50%, rgba(255,224,178,.58), rgba(233,120,92,.30) 46%, transparent 72%);
  clip-path:polygon(50% 0, 59% 41%, 100% 50%, 59% 59%, 50% 100%, 41% 59%, 0 50%, 41% 41%);
}
.rkfl-mvv-head::after{ top:-8px; right:5%; width:clamp(64px,8vw,120px); aspect-ratio:1; opacity:.82;
  animation:rkfl-spin 24s linear infinite, rkfl-twinkle 4.2s ease-in-out infinite; }
.rkfl-mvv-head::before{ top:82px; right:1%; width:clamp(24px,3.2vw,50px); aspect-ratio:1; opacity:.6;
  animation:rkfl-spin 30s linear infinite reverse, rkfl-twinkle 5s ease-in-out .6s infinite; }
@keyframes rkfl-spin{ to{ transform:rotate(360deg); } }
@media (max-width:680px){
  .rkfl-mvv-head::after{ right:2%; opacity:.66; }
  .rkfl-mvv-head::before{ display:none; }
}
@media (prefers-reduced-motion:reduce){
  .rkfl-mvv::before,.rkfl-mvv::after,.rkfl-mvv-head::before,.rkfl-mvv-head::after{ animation:none; }
}

/* ============================================================
   KIDSpo 実写ギャラリー（/business 店舗運営事業）— 自社ブランドの実写で信頼と多幸感
   ============================================================ */
.post_content .rkfl-kidspo{ margin:clamp(20px,2.6vw,34px) 0 clamp(30px,4vw,46px); }
.post_content .rkfl-kidspo-lead{ display:flex; align-items:baseline; gap:14px; margin:0 0 16px; flex-wrap:wrap; }
.post_content .rkfl-kidspo-lead .en{ font-family:var(--font-en,'Outfit',sans-serif); font-weight:800; font-size:1.15rem; letter-spacing:.05em; color:var(--coral); }
.post_content .rkfl-kidspo-lead p{ margin:0; color:#5A5346; font-weight:600; font-size:.95rem; line-height:1.7; }
.post_content .rkfl-kidspo-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(8px,1vw,14px); }
.post_content .rkfl-kidspo-grid figure{ margin:0; aspect-ratio:4/3; overflow:hidden; border-radius:16px; position:relative; box-shadow:0 14px 28px -18px rgba(42,36,28,.42); background:#EAE3D6; }
.post_content .rkfl-kidspo-grid figure::after{ content:""; position:absolute; inset:0; border:2px solid transparent; border-radius:16px; transition:border-color .4s var(--ease); pointer-events:none; }
.post_content .rkfl-kidspo-grid figure:hover::after{ border-color:rgba(233,120,92,.65); }
.post_content .rkfl-kidspo-grid img{ width:100%; height:100%; object-fit:cover; display:block; margin:0; max-width:none; border-radius:0; transition:transform .8s var(--ease); }
.post_content .rkfl-kidspo-grid figure:hover img{ transform:scale(1.07); }
.post_content .rkfl-kidspo-grid figure:first-child{ grid-column:span 2; grid-row:span 2; aspect-ratio:auto; }
@media (max-width:640px){
  .post_content .rkfl-kidspo-grid{ grid-template-columns:repeat(2,1fr); }
  .post_content .rkfl-kidspo-grid figure:first-child{ grid-column:span 2; grid-row:span 1; aspect-ratio:16/10; }
}

/* ============================================================
   MVV — 明るい生成り＋彩り＋ロゴ（華やかリニューアル / 最終上書き）
   ダークなMVV面を、ラクフルらしい多幸感のある明るい面へ転換。
   ロゴはセクション右上の空きゾーン（背景レイヤー）に配置＝本文と非干渉。
   ============================================================ */
.rkfl-mvv{
  color:var(--ink,#2A2A26) !important;
  background:
    url('../../uploads/2026/07/rkfl-logo-color-v.png') no-repeat top clamp(34px,4.5vw,58px) right clamp(30px,4vw,58px),
    radial-gradient(74% 110% at 90% -12%, rgba(233,120,92,.16), transparent 55%),
    radial-gradient(66% 92% at -8% 110%, rgba(127,168,201,.18), transparent 56%),
    radial-gradient(52% 74% at 52% 122%, rgba(240,196,120,.16), transparent 60%),
    linear-gradient(168deg,#FCF8F1 0%,#F7EFE2 100%) !important;
  background-size:clamp(84px,9vw,122px) auto, auto, auto, auto, auto !important;
  border:1px solid rgba(233,120,92,.16) !important;
}
/* オーロラ：淡い三色グローに再配色 */
.rkfl-mvv::before{
  background:
    radial-gradient(34% 40% at 22% 28%, rgba(233,120,92,.20), transparent 62%),
    radial-gradient(32% 38% at 78% 36%, rgba(127,168,201,.20), transparent 62%),
    radial-gradient(30% 34% at 60% 86%, rgba(240,196,120,.22), transparent 64%) !important;
  filter:blur(16px) !important;
}
/* きらめき：明るい背景でも映える三色コンフェッティ */
.rkfl-mvv::after{
  background-image:
    radial-gradient(2.2px 2.2px at 12% 22%, rgba(233,120,92,.9), transparent 60%),
    radial-gradient(2px 2px at 33% 66%, rgba(127,168,201,.85), transparent 60%),
    radial-gradient(2.6px 2.6px at 67% 17%, rgba(240,188,84,.95), transparent 60%),
    radial-gradient(2px 2px at 83% 51%, rgba(233,120,92,.75), transparent 60%),
    radial-gradient(1.9px 1.9px at 52% 88%, rgba(127,168,201,.78), transparent 60%),
    radial-gradient(2.6px 2.6px at 89% 77%, rgba(240,188,84,.9), transparent 60%),
    radial-gradient(1.9px 1.9px at 46% 34%, rgba(233,120,92,.62), transparent 60%),
    radial-gradient(2.1px 2.1px at 22% 82%, rgba(127,168,201,.8), transparent 60%),
    radial-gradient(2px 2px at 74% 62%, rgba(240,188,84,.72), transparent 60%) !important;
}
/* 見出し脇の回転スター2つ→右上ロゴに集約するため非表示 */
.rkfl-mvv-head::before,.rkfl-mvv-head::after{ display:none !important; }
/* 見出し・リード：明所向けにダーク文字へ */
.rkfl-mvv-title{ color:var(--ink,#2A2A26) !important; }
.rkfl-mvv-lead{ color:var(--ink-2,#5A5346) !important; }
/* カード：白基調＋やわらかな影＋彩りの縁 */
.rkfl-mvv-item{
  background:#fff !important; border:1px solid var(--line-2,#EFE9DF) !important;
  box-shadow:0 18px 42px -26px rgba(42,36,28,.42) !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
}
.rkfl-mvv-item:hover{ box-shadow:0 32px 62px -24px rgba(42,36,28,.44) !important; border-color:rgba(233,120,92,.5) !important; }
.rkfl-mvv-item p{ color:var(--ink-2,#5A5346) !important; }
/* 大きな番号ウォーターマーク：珊瑚の淡色に */
.rkfl-mvv-body::after{ color:rgba(233,120,92,.18) !important; }
/* credo：ダーク文字＋三色ドット、境界も明色 */
.rkfl-mvv-credo{ border-top-color:rgba(233,120,92,.30) !important; }
.rkfl-mvv-credo span{ color:var(--ink,#2A2A26) !important; }
.rkfl-mvv-credo span:nth-child(3n+1)::before{ background:var(--coral,#E9785C) !important; }
.rkfl-mvv-credo span:nth-child(3n+2)::before{ background:var(--sage,#7FA383) !important; }
.rkfl-mvv-credo span:nth-child(3n)::before{ background:#EFB43C !important; }
/* CTA：ダーク文字 */
.rkfl-mvv-cta a{ color:var(--ink,#2A2A26) !important; }
/* モバイル：右上ロゴは重なり回避のため背景から外す */
@media (max-width:680px){
  .rkfl-mvv{
    background:
      radial-gradient(82% 104% at 90% -12%, rgba(233,120,92,.16), transparent 56%),
      radial-gradient(72% 92% at -8% 112%, rgba(127,168,201,.18), transparent 58%),
      linear-gradient(168deg,#FCF8F1 0%,#F7EFE2 100%) !important;
    background-size:auto !important;
  }
}

/* ============================================================
   ホワイト企業認定 ブランドページ (.rkfl-wc / 固定ページ whitecompany)
   「制度の解説」から「第三者評価で語るブランドページ」へ。静かだが説得力のある証明。
   ============================================================ */
.post_content .rkfl-wc{ margin:0; }
.post_content .rkfl-wc > section{ margin-bottom:clamp(46px,6.5vw,82px); }  /* margin:0指定だと子の中央寄せ(margin:auto)を打ち消すため bottom のみに */
.post_content .rkfl-wc > section:last-child{ margin-bottom:0; }
.post_content .rkfl-wc-eyebrow,.post_content .rkfl-wc-eyebrow2{ display:inline-block; font-family:var(--font-en); font-weight:700; letter-spacing:.24em; font-size:11px; color:var(--brand); text-transform:uppercase; }
/* Hero: バッジ右・見出し左（生成り＋空トーンのやわらかパネル。派手な金色や中央巨大バッジを避ける） */
.post_content .rkfl-wc-hero{ display:grid; grid-template-columns:1.28fr .72fr; gap:clamp(22px,3.5vw,52px); align-items:center; padding:clamp(28px,4vw,48px) clamp(26px,3.6vw,48px); border-radius:24px; border:1px solid rgba(127,168,201,.2); background:radial-gradient(120% 150% at 90% 2%, rgba(127,168,201,.16), transparent 56%), linear-gradient(165deg,#FCF9F3,#F3EDE1); }
.post_content .rkfl-wc-title{ margin:14px 0 0; font-family:var(--font-jp); font-weight:900; color:var(--ink); font-size:clamp(1.5rem,3vw,2.35rem); line-height:1.5; letter-spacing:.02em; }
.post_content .rkfl-wc-lead{ margin:16px 0 0; color:var(--ink-2); font-size:clamp(.95rem,1.1vw,1.02rem); line-height:1.9; font-weight:500; }
.post_content .rkfl-wc-hero-badge{ text-align:center; }
.post_content .rkfl-wc-hero-badge img{ display:block; width:auto; height:auto; max-width:min(216px,64%); max-height:262px; margin:0 auto; filter:drop-shadow(0 18px 30px rgba(42,36,28,.2)); }
/* Fact: 事実を明確に（左に珊瑚の縦罫） */
.post_content .rkfl-wc-fact{ padding:clamp(22px,3vw,32px) clamp(24px,3vw,40px); border-radius:18px; background:#fff; border:1px solid var(--line-2); border-left:4px solid var(--brand); box-shadow:0 18px 44px -30px rgba(42,36,28,.4); }
.post_content .rkfl-wc-kicker{ display:block; margin-bottom:10px; font-family:var(--font-jp); font-weight:800; font-size:.92rem; color:var(--brand); letter-spacing:.06em; }
.post_content .rkfl-wc-fact p{ margin:0; color:var(--ink); font-size:clamp(1rem,1.3vw,1.12rem); line-height:1.9; font-weight:500; }
.post_content .rkfl-wc-fact b{ color:var(--brand-deep,#C2410C); font-weight:800; }
/* Criteria: 認定の視点（中央寄せ折返しグリッド。ありがちな大量アイコンカードにしない） */
.post_content .rkfl-wc-sechead{ text-align:center; max-width:760px; margin:0 auto clamp(26px,3.4vw,40px); }
.post_content .rkfl-wc-sechead h2{ margin:12px 0 0; font-family:var(--font-jp); font-weight:900; color:var(--ink); font-size:clamp(1.35rem,2.4vw,1.9rem); line-height:1.5; border:0; padding:0; }
.post_content .rkfl-wc-secsub{ margin:14px 0 0; color:var(--ink-2); font-size:.96rem; line-height:1.9; }
.post_content .rkfl-wc-crit-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(14px,1.8vw,22px); }
.post_content .rkfl-wc-crit{ position:relative; flex:0 1 clamp(240px,30%,304px); padding:26px 24px 24px; border-radius:16px; background:#fff; border:1px solid var(--line-2); box-shadow:0 14px 34px -26px rgba(42,36,28,.38); transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.post_content .rkfl-wc-crit:hover{ transform:translateY(-5px); box-shadow:0 26px 50px -28px rgba(42,36,28,.42); }
.post_content .rkfl-wc-crit::before{ content:""; position:absolute; left:0; top:24px; width:3px; height:22px; background:var(--grad-warm); border-radius:0 3px 3px 0; }
.post_content .rkfl-wc-crit-no{ font-family:var(--font-en); font-weight:800; font-size:1.05rem; color:var(--coral,#E9785C); letter-spacing:.04em; }
.post_content .rkfl-wc-crit h3{ margin:8px 0 9px; font-family:var(--font-jp); font-weight:800; color:var(--ink); font-size:1.02rem; line-height:1.5; padding:0; border:0; }
.post_content .rkfl-wc-crit p{ margin:0; color:var(--ink-2); font-size:.88rem; line-height:1.8; font-weight:500; }
/* Why: 思想（ネイビーパネル・理念と接続） */
.post_content .rkfl-wc-why{ padding:clamp(34px,5vw,60px) clamp(28px,4vw,56px); border-radius:24px; color:var(--ink); text-align:center; position:relative; overflow:hidden; border:1px solid rgba(233,120,92,.16); background:radial-gradient(88% 120% at 12% 0%, rgba(233,120,92,.12), transparent 55%), radial-gradient(80% 110% at 90% 100%, rgba(127,168,201,.14), transparent 58%), linear-gradient(160deg,#FCF9F3,#F4EEE3); }
.post_content .rkfl-wc-why .rkfl-wc-eyebrow2{ color:var(--brand); }
.post_content .rkfl-wc-why h2{ margin:14px auto 0; max-width:720px; color:var(--ink) !important; font-family:var(--font-jp); font-weight:900; font-size:clamp(1.4rem,2.6vw,2.05rem); line-height:1.55; border:0; padding:0; }
.post_content .rkfl-wc-why p{ margin:20px auto 0; max-width:720px; color:var(--ink-2); font-size:1rem; line-height:2; font-weight:500; }
/* Not goal */
.post_content .rkfl-wc-notgoal{ text-align:center; max-width:760px; margin-left:auto; margin-right:auto; }
.post_content .rkfl-wc-notgoal .rkfl-wc-kicker{ font-size:clamp(1.2rem,2.2vw,1.6rem); font-family:var(--font-jp); font-weight:900; color:var(--ink); margin-bottom:14px; letter-spacing:.02em; }
.post_content .rkfl-wc-notgoal p{ margin:0; color:var(--ink-2); font-size:1rem; line-height:1.95; font-weight:500; }
/* CTA: 温度感のある採用導線 */
.post_content .rkfl-wc-cta{ text-align:center; }
.post_content .rkfl-wc-cta h2{ margin:0; font-family:var(--font-jp); font-weight:900; color:var(--ink); font-size:clamp(1.3rem,2.3vw,1.75rem); border:0; padding:0; }
.post_content .rkfl-wc-cta p{ margin:14px auto 24px; max-width:600px; color:var(--ink-2); font-size:.98rem; line-height:1.9; }
.post_content .rkfl-wc-cta-btn{ display:inline-flex; align-items:center; gap:.6em; padding:16px 40px; border-radius:999px; background:var(--grad-warm,linear-gradient(135deg,#E9785C,#F0A07E)); color:#fff !important; font-weight:800; text-decoration:none; box-shadow:0 18px 34px -16px rgba(233,120,92,.6); transition:transform .35s var(--ease), box-shadow .35s; }
.post_content .rkfl-wc-cta-btn span{ transition:transform .35s var(--ease); }
.post_content .rkfl-wc-cta-btn:hover{ transform:translateY(-3px); box-shadow:0 24px 44px -16px rgba(233,120,92,.7); }
.post_content .rkfl-wc-cta-btn:hover span{ transform:translateX(4px); }
@media (max-width:820px){
  .post_content .rkfl-wc-hero{ grid-template-columns:1fr; text-align:center; }
  .post_content .rkfl-wc-hero-badge{ order:-1; }
  .post_content .rkfl-wc-hero-badge img{ max-width:148px; max-height:200px; }
  .post_content .rkfl-wc-title br.pc,.post_content .rkfl-wc-why br.pc{ display:none; }
}

/* ホワイト企業認定 信頼ライン（会社概要・採用などに最小展開：小バッジ＋一行＋専用ページ導線） */
.post_content a.rkfl-certline{ display:flex; align-items:center; gap:clamp(14px,2vw,20px); max-width:580px; margin:clamp(18px,2.4vw,28px) 0; padding:15px 20px; border:1px solid rgba(233,120,92,.28); border-radius:16px; background:linear-gradient(120deg,#FFFDF9,#FBF5EA); box-shadow:0 14px 34px -26px rgba(42,36,28,.34); text-decoration:none; transition:transform .4s var(--ease), box-shadow .4s, border-color .4s; }
.post_content a.rkfl-certline:hover{ transform:translateY(-3px); box-shadow:0 22px 44px -24px rgba(42,36,28,.4); border-color:rgba(233,120,92,.5); }
.post_content a.rkfl-certline .rkfl-certline-badge{ flex:0 0 auto; width:auto !important; height:54px !important; margin:0 !important; border-radius:0 !important; box-shadow:none !important; }
.post_content a.rkfl-certline .rkfl-certline-tx{ flex:1 1 auto; min-width:0; }
.post_content a.rkfl-certline .rkfl-certline-tx b{ display:block; font-family:var(--font-jp); font-weight:800; font-size:1rem; color:var(--ink); letter-spacing:.02em; }
.post_content a.rkfl-certline .rkfl-certline-sub{ display:block; margin-top:3px; font-size:.82rem; color:var(--muted); line-height:1.6; }
.post_content a.rkfl-certline .rkfl-certline-arw{ flex:0 0 auto; font-family:var(--font-en); font-weight:700; font-size:.82rem; color:var(--brand); white-space:nowrap; }
@media (max-width:560px){ .post_content a.rkfl-certline{ flex-wrap:wrap; gap:12px; } .post_content a.rkfl-certline .rkfl-certline-arw{ width:100%; } }

/* 代表あいさつヒーロー（写真左の余白に一文をフェードイン）— /recruit/ */
.post_content .rkfl-ceo-greet{ position:relative; margin:clamp(24px,3.4vw,40px) 0; border-radius:var(--radius-lg,20px); overflow:hidden; box-shadow:var(--shadow-lg,0 24px 60px -22px rgba(21,41,63,.34)); }
.post_content .rkfl-ceo-greet-img{ display:block; width:100%; height:auto; margin:0; border-radius:0; box-shadow:none; }
.post_content .rkfl-ceo-greet-cap{ position:absolute; left:0; top:0; bottom:0; width:48%; display:flex; align-items:center; padding:0 clamp(20px,3.2vw,46px); }
.post_content .rkfl-ceo-greet-cap::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(252,249,243,.8) 0%, rgba(252,249,243,.44) 58%, rgba(252,249,243,0) 100%); pointer-events:none; }
.post_content .rkfl-ceo-greet-cap p{ position:relative; margin:0; font-family:var(--font-jp); font-weight:900; font-size:clamp(1rem,2vw,1.55rem); line-height:1.75; color:var(--ink); letter-spacing:.02em; opacity:0; transform:translateY(16px); transition:opacity 1.05s var(--ease), transform 1.05s var(--ease); }
.post_content .rkfl-ceo-greet-cap p b{ color:var(--brand); }
.post_content .rkfl-ceo-greet.rkfl-vis .rkfl-ceo-greet-cap p{ opacity:1; transform:none; }
@media (max-width:600px){
  .post_content .rkfl-ceo-greet-cap{ width:64%; padding:0 15px; }
  .post_content .rkfl-ceo-greet-cap::before{ background:linear-gradient(90deg, rgba(252,249,243,.88) 0%, rgba(252,249,243,.52) 72%, rgba(252,249,243,0) 100%); }
}
@media (prefers-reduced-motion:reduce){ .post_content .rkfl-ceo-greet-cap p{ opacity:1; transform:none; transition:none; } }

/* ============================================================
   Wave1 暖色化 (2026-07-06)
   下層ページヘッダー(#page_header)の画像を、被写体の色温度に依らず
   ブランドの暖色トーンへ寄せ、白見出しの可読性も確保。
   ============================================================ */
#page_header .overlay{
  position:absolute !important; inset:0 !important;
  background:
    linear-gradient(180deg, rgba(28,22,16,.14) 0%, rgba(28,22,16,.50) 100%),
    linear-gradient(120deg, rgba(233,120,92,.46) 0%, rgba(224,150,110,.22) 46%, rgba(42,30,20,.44) 100%) !important;
  opacity:1 !important;
}
/* 画像が無い(フォールバック)ヘッダーも暖色に（sky radialを排除） */
#page_header{
  background:
    radial-gradient(90% 120% at 88% 0%, rgba(233,120,92,.24), transparent 55%),
    radial-gradient(80% 120% at 0% 100%, rgba(240,196,120,.16), transparent 60%),
    linear-gradient(160deg,#3A322A 0%,#1B1610 100%) !important;
}
/* 白見出し・サブに微シャドウで可読性を底上げ */
#page_header #page_header_inner h1.catch{ text-shadow:0 2px 22px rgba(24,16,10,.5) !important; }
#page_header #page_header_inner .sub_title{ text-shadow:0 1px 12px rgba(24,16,10,.5) !important; }

/* ============================================================
   Wave3先行 (2026-07-06) スマホ表の可読性
   2列表(募集要項/会社概要 等)のカード化で、値セル(td)が端に密着する
   不具合を解消。ラベル(th)と左右を揃え、下に余白を確保。
   design.css の #page_content...tr(ID詳細度) に勝つため #page_content を付与。
   ============================================================ */
@media (max-width:600px){
  #page_content .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody th,
  #page_content .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody td{
    padding-left:18px !important; padding-right:18px !important;
  }
  #page_content .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody td:first-child,
  #page_content .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody th:first-child{
    padding-top:14px !important;
  }
  #page_content .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody td:last-child{
    padding-bottom:14px !important;
  }
}

/* ============================================================
   Wave2/4 (2026-07-06) TOP本編＋一覧ページ
   ============================================================ */
/* NO IMAGE（テーマ既定gif）→ 暖色ブランドプレースホルダ */
[style*="no_image1.gif"]{
  background:
    radial-gradient(120% 100% at 22% 18%, rgba(233,120,92,.20), transparent 58%),
    radial-gradient(120% 120% at 86% 90%, rgba(240,196,120,.18), transparent 60%),
    linear-gradient(150deg,#F5EEE0 0%,#EADFC9 100%) !important;
}
/* アーカイブの巨大プレースホルダ(1450x700)を隠し、暖色の細いタイトル帯へ */
[style*="image_1450x700"]{ display:none !important; }
body.blog #page_header,
body.archive #page_header,
body.category #page_header{
  min-height:clamp(200px,24vw,290px) !important; height:auto !important;
}
/* ブログカード：タイトルを2行で統一（見切れ・高さ不揃い防止） */
#index_content_builder .cb_blog_list .blog_list .item .title{
  display:-webkit-box !important; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
/* カテゴリチップ：暖色ダークに統一 */
#index_content_builder .cb_blog_list .blog_list .item .category a,
#index_content_builder .cb_news_list .item .category a{
  background:rgba(42,36,28,.66) !important;
}

/* ============================================================
   Wave3/5 (2026-07-06) フッター・表・ボタン・寒色残
   ============================================================ */
/* フッターバナーカード：暗すぎるオーバーレイを弱め写真を活かす（左は文字用に確保） */
#footer #footer_banner .banner a::before{
  background:linear-gradient(105deg, rgba(24,18,12,.72) 0%, rgba(24,18,12,.38) 52%, rgba(233,120,92,.24) 100%) !important;
}
/* CTAボタンのペア幅を揃える（短いボタンが貧弱に見えるのを防ぐ） */
#page_content .post_content .wp-block-button__link{ min-width:210px; justify-content:center; }
/* ホワイト企業 why パネルの sky radial を暖色へ */
.post_content .rkfl-wc-why{
  background:
    radial-gradient(88% 120% at 12% 0%, rgba(233,120,92,.12), transparent 55%),
    radial-gradient(80% 110% at 90% 100%, rgba(240,196,120,.14), transparent 58%),
    linear-gradient(160deg,#FCF9F3,#F4EEE3) !important;
}
/* 会社概要など2列表：デスクトップでラベル列を折り返さない（「代表者・役／員」の孤立防止） */
@media (min-width:601px){
  #page_content .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody td:first-child,
  #page_content .post_content .wp-block-table:not(:has(thead th:nth-child(3))) tbody th:first-child{
    white-space:nowrap; min-width:9em;
  }
}

/* ホワイト企業 認定視点カード：3列に整え「05」の孤立を解消（最終行は中央寄せ） */
.post_content .rkfl-wc-crit-grid{ display:flex; flex-wrap:wrap; justify-content:center; }
.post_content .rkfl-wc-crit{ flex:0 1 calc(33.333% - 16px) !important; min-width:230px; max-width:340px; }

/* ####################################################################
   RAKUFUL 全面磨き上げ (2026-07-06) — 統一デザインシステム / 回遊 / 一覧再設計 / 記事 / 内部リンク / SP
   design2.css 末尾に追記（priority100・後読み層）。基盤トークンは :root で全体に伝播。
   #################################################################### */

/* ============================================================
   00 FOUNDATION — 余白・タイポ・コンテナ 統一トークン
   ============================================================ */
:root{
  --sp-1:4px;  --sp-2:8px;  --sp-3:12px; --sp-4:16px;
  --sp-5:20px; --sp-6:24px; --sp-7:32px; --sp-8:40px;
  --sp-9:48px; --sp-10:64px; --sp-11:80px; --sp-12:96px;

  --section-y:clamp(48px,5vw,84px);
  --section-y-tight:clamp(40px,4vw,64px);
  --section-y-cta:clamp(64px,7.5vw,112px);
  --section-x:clamp(24px,5vw,64px);

  --section-head-gap:clamp(30px,3.4vw,44px);
  --flow-lead:clamp(16px,1.6vw,22px);
  --flow-p:1.5em;
  --flow-cta:clamp(28px,3.2vw,44px);

  --container-text:1080px;
  --measure-lead:42em;
  --measure-body:36em;

  --fs-display:clamp(2.4rem,6vw,5rem);  --lh-display:1.14;
  --fs-h1:clamp(1.9rem,4.4vw,3rem);     --lh-h1:1.28;
  --fs-h2:clamp(1.85rem,3.4vw,2.7rem);  --lh-h2:1.3;
  --fs-h3:clamp(1.15rem,1.7vw,1.4rem);  --lh-h3:1.5;
  --fs-card:1.12rem;                    --lh-card:1.5;
  --fs-lead:clamp(1rem,1.1vw,1.1rem);   --lh-lead:1.82;
  --fs-body:1rem;                       --lh-body:1.8;
  --fs-sm:.92rem;                       --lh-sm:1.8;
  --fs-cap:.84rem;                      --lh-cap:1.7;

  --fs-eyebrow:12px; --ls-eyebrow:.22em;
  --fs-micro:11px;   --ls-micro:.16em;

  --ls-display:.012em; --ls-h1:.03em; --ls-h2:.035em; --ls-card:.02em;

  --card-pad:clamp(24px,2.2vw,30px);
  --card-pad-lg:clamp(40px,4.8vw,72px);
  --gap-cards:clamp(16px,2vw,26px);
  --gap-tight:clamp(12px,1.4vw,18px);
  --gap-loose:clamp(24px,3vw,40px);
}
@media (max-width:640px){
  :root{
    --section-y:clamp(34px,8.5vw,46px);
    --section-y-tight:clamp(30px,7vw,40px);
    --section-y-cta:clamp(48px,12vw,72px);
    --section-head-gap:clamp(24px,6vw,32px);
    --flow-lead:clamp(12px,3.5vw,18px);
    --flow-cta:clamp(22px,5vw,32px);
    --card-pad:clamp(20px,5vw,26px);
  }
}

/* --- セクション縦リズム（間延び直撃） --- */
#index_content_builder .cb_content{ padding:var(--section-y) var(--section-x) !important; }
#index_content_builder .banner_content{ padding:var(--section-y-cta) var(--section-x) !important; }

/* --- 見出しブロック↔本体 / 見出し↔リード --- */
#index_content_builder .cb_header{ margin-bottom:var(--section-head-gap); }
.rkf-head{ margin:0 auto var(--section-head-gap) !important; }
.rkf-head .rkf-lead{ margin-top:var(--flow-lead) !important; }
.rkfl-mvv-lead{ margin-top:var(--flow-lead) !important; }
#index_content_builder .header_desc{ margin-top:var(--flow-lead); }

/* --- リードの行間・行長統一 --- */
.rkf-head .rkf-lead,.rkfl-mvv-lead,#index_content_builder .header_desc,
.rkf-message-body .rkf-msg-lead,.rkf-contact .rkf-lead,.rkf-local-body .rkf-lead{
  line-height:var(--lh-lead); max-width:var(--measure-lead); margin-left:auto; margin-right:auto;
}
/* --- カード内小本文の行間 --- */
.rkf-tech-card p,.rkf-strength-card p,.rkf-darkcard p,.rkf-future-card p,
.rkfl-mvv-item p,#index_content_builder .cb_box_content .item .content_top_inner .desc{
  line-height:var(--lh-body);
}
#page_content .post_content{ line-height:1.85; }

/* --- セクション見出しH2の一本化 --- */
#index_content_builder .cb_header .headline,
.rkf-head h2,.rkfl-mvv-title,
.rkf-local-body h2,.rkf-contact h2,.rkf-message-body h2{
  font-size:var(--fs-h2); line-height:var(--lh-h2); letter-spacing:var(--ls-h2);
}
body.home #header_slider_catch .catch{ font-size:var(--fs-display); line-height:var(--lh-display); letter-spacing:var(--ls-display); }
#page_header #page_header_inner h1.catch{ font-size:var(--fs-h1); line-height:var(--lh-h1); letter-spacing:var(--ls-h1); }

/* --- eyebrow統一 --- */
#index_content_builder .cb_header .sub_title,
.rkf-head .rkf-en,.rkfl-eyebrow,
.rkf-message-body .rkf-en,.rkf-local-body .rkf-en,.rkf-contact .rkf-en{
  font-size:var(--fs-eyebrow); letter-spacing:var(--ls-eyebrow);
}

/* --- カード内padding / grid gap --- */
.rkf-tech-card,.rkf-strength-card{ padding:var(--card-pad); }
.rkfl-mvv{ padding:var(--card-pad-lg) !important; }
.rkf-tech{ padding:var(--card-pad-lg); }
#index_content_builder .cb_box_content .box_content,
.rkf-strength-grid,.rkf-tech-grid,.rkf-darkcards{ gap:var(--gap-cards); }
.rkfl-mvv-grid{ gap:var(--gap-cards); }
.rkf-navcards{ gap:var(--gap-tight); }
.rkf-split,.rkf-message,.rkf-local{ gap:var(--gap-loose); }

/* --- コンテナ/本文幅 --- */
#page_content .post_content{ max-width:var(--container-text); }

/* ============================================================
   01 TOP TEMPO — 章の分節・次の1スクロール・CTAリズム
   ============================================================ */
/* B-1 最初の1スクロールを寄せる（PICK UP二重パディング解消） */
#index_content_builder .cb_content:has(.rkf-pickup),
#index_content_builder .cb_content.num1{
  padding-top:var(--section-y-tight) !important;
  padding-bottom:var(--section-y-tight) !important;
  position:relative;
}
.rkf-pickup{ padding-top:0; }

/* B-2 章の分節：長いライト面にリズム（背景バンド） */
#index_content_builder .cb_content:has(.rkf-numbers),
#index_content_builder .cb_content:has(.rkf-people),
#index_content_builder .cb_content.num6,
#index_content_builder .cb_content.num9{ background:var(--paper-2); }

/* B-3 セクション末CTAギャップの統一 */
#index_content_builder .rkf-cta{ margin-top:var(--flow-cta) !important; }
.rkfl-mvv-cta{ margin-top:var(--flow-cta); }
.rkf-local-actions{ margin-top:var(--flow-cta); }
#index_content_builder .cb_link_button{ margin-top:var(--flow-cta); }

/* B-4 章の連続スレッド（縦1pxライン） */
#index_content_builder .cb_content{ position:relative; }
#index_content_builder .cb_content:has(.rkf-biz)::before,
#index_content_builder .cb_content:has(.rkf-tech)::before,
#index_content_builder .cb_content:has(.rkf-strength)::before,
#index_content_builder .cb_content.num3::before,
#index_content_builder .cb_content.num5::before,
#index_content_builder .cb_content.num7::before{
  content:""; position:absolute; top:0; left:50%;
  width:1px; height:var(--section-y); transform:translateX(-.5px);
  background:linear-gradient(var(--line), transparent);
  pointer-events:none; z-index:0;
}

/* B-5 社長メッセージ 見出し-本文リズム是正 */
.rkf-message-body h2{ margin:0 0 var(--sp-3); }
.rkf-message-body .rkf-msg-lead{ margin:0 0 var(--sp-5); }
.rkf-message-body p{ margin:0 0 var(--sp-4); line-height:var(--lh-body); }
.rkf-message-sign{ margin-top:var(--sp-6); }

/* B-6 採用バナー→相談CTAの二重締めを圧縮 */
#index_content_builder .cb_content:has(.rkf-contact),
#index_content_builder .cb_content.num14{
  padding-top:var(--section-y-tight) !important;
  padding-bottom:var(--section-y-tight) !important;
}

/* ============================================================
   02 SLIDER — 「これから、世界と未来へ。」横スライド カルーセル
   ============================================================ */
.rkf-future-track{
  display:flex;
  gap:var(--gap-cards,clamp(16px,2vw,24px));
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:6px 4px 20px; margin:0 -4px;
  scroll-padding-left:4px;
  overscroll-behavior-x:contain;
  cursor:grab;
}
.rkf-future-track::-webkit-scrollbar{ display:none; }
.rkf-future-track.rkf-dragging{ cursor:grabbing; scroll-snap-type:none; }
.rkf-future-card{
  flex:0 0 auto; width:clamp(236px,76vw,296px);
  scroll-snap-align:center;
  box-sizing:border-box; position:relative;
  background:#fff; border:1px solid var(--line-2); border-radius:18px;
  padding:var(--card-pad,clamp(24px,2.2vw,30px)); padding-bottom:46px;
  box-shadow:var(--shadow-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.rkf-future-card:hover,
.rkf-future-card:focus-within{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:rgba(233,120,92,.30); }
.rkf-future-card::before{ content:""; position:absolute; left:0; top:26px; width:3px; height:26px; background:var(--grad-warm); border-radius:0 3px 3px 0; }
.rkf-future-card .rkf-num{ font-family:var(--font-en); font-weight:800; font-size:2.2rem; line-height:1; color:var(--brand); opacity:.18; letter-spacing:-.02em; }
.rkf-future-en{ display:block; margin:10px 0 6px; font-family:var(--font-en); font-weight:700; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--brand); }
.rkf-future-card h3{ margin:0 0 10px; font-family:var(--font-jp); font-weight:900; font-size:1.08rem; line-height:1.5; color:var(--ink); }
.rkf-future-card p{ margin:0; color:var(--ink-2); font-size:.91rem; line-height:var(--lh-body,1.8); font-weight:500; }
.rkf-future-link{ position:absolute; inset:0; z-index:2; border-radius:inherit; -webkit-tap-highlight-color:transparent; }
.rkf-future-link:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; }
.rkf-future-arrow{
  position:absolute; right:18px; bottom:14px; z-index:3;
  width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--font-en); font-size:1rem; color:var(--brand); background:rgba(233,120,92,.10);
  transition:transform .4s var(--ease), background .4s, color .4s; pointer-events:none;
}
.rkf-future-card:hover .rkf-future-arrow,
.rkf-future-card:focus-within .rkf-future-arrow{ background:var(--brand); color:#fff; transform:translateX(3px); }
.rkf-progress{ height:3px; background:var(--line); border-radius:3px; max-width:240px; margin:14px auto 0; overflow:hidden; }
.rkf-progress span{ display:block; height:100%; width:8%; background:var(--grad-warm); border-radius:3px; transition:none; }
@media (min-width:721px){
  .rkf-future-track{ padding:8px 4px 10px; }
  .rkf-future-card{ width:clamp(300px,31vw,340px); scroll-snap-align:start; }
  .rkf-future-card p{ font-size:.93rem; }
}
/* 旧 design.css:810 の折返しグリッド(@media min-width:861)を打ち消す */
@media (min-width:861px){
  .rkf-future-track{ flex-wrap:nowrap !important; overflow-x:auto !important; overflow-y:hidden !important; justify-content:flex-start !important; scroll-snap-type:x proximity !important; }
}
@media (prefers-reduced-motion: reduce){
  .rkf-future-track{ scroll-snap-type:x mandatory; }
}

/* ============================================================
   03 BLOG / NEWS ARCHIVE — 実アーカイブをTOPの世界観へ（役割差別化）
   ============================================================ */
body.blog #blog_archive,
body.category #blog_archive,
body.archive #blog_archive,
body.post-type-archive-news #news_archive{
  width:auto !important; max-width:var(--container); margin:0 auto !important;
  padding:var(--section-y) var(--section-x) !important;
}
/* --- ブログ = 企業メディア（3カラム縦カード） --- */
body.blog #blog_archive .blog_list,
body.category #blog_archive .blog_list,
body.archive #blog_archive .blog_list{
  display:grid !important; grid-template-columns:repeat(3,1fr);
  gap:var(--gap-cards); max-width:var(--container); margin:0 auto !important;
}
#blog_archive .blog_list .item{
  position:relative; width:auto !important; height:auto !important;
  margin:0 !important; float:none !important;
  background:#fff !important; border:1px solid var(--line-2); border-radius:20px;
  overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .55s var(--ease);
}
#blog_archive .blog_list .item:hover{ transform:translateY(-9px); box-shadow:var(--shadow); border-color:transparent; }
#blog_archive .blog_list .item > a{
  display:flex !important; flex-direction:column; width:100% !important; height:auto !important;
  position:static !important; text-decoration:none; background:transparent !important;
}
#blog_archive .blog_list .item .image_wrap{
  order:0; position:static !important; width:auto !important; height:auto !important;
  aspect-ratio:16/10; margin:0 !important; overflow:hidden; line-height:0;
}
#blog_archive .blog_list .item .image{
  width:100% !important; height:100% !important; display:block; margin:0;
  background-size:cover !important; background-position:center !important;
  transition:transform .9s var(--ease);
}
#blog_archive .blog_list .item:hover .image{ transform:scale(1.06); }
#blog_archive .blog_list .item .image:before{ display:none !important; content:none !important; }
#blog_archive .blog_list .item .title_area{
  order:1; position:static !important; right:auto !important; top:auto !important;
  width:auto !important; height:auto !important; background:transparent !important;
  padding:var(--card-pad) var(--card-pad) 0 !important; box-sizing:border-box;
}
#blog_archive .blog_list .item .title{
  margin:0 !important; top:auto !important; transform:none !important; max-height:none !important;
  font-family:var(--font-jp); font-weight:700; font-size:var(--fs-card); line-height:1.6; color:var(--ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
#blog_archive .blog_list .item .title span{ color:inherit; }
#blog_archive .blog_list .item .date{
  order:2; position:static !important; left:auto !important; bottom:auto !important;
  display:block; margin:0 !important; padding:10px var(--card-pad) var(--card-pad) !important;
  font-family:var(--font-en); font-weight:600; font-size:.84rem; letter-spacing:.04em; color:var(--muted) !important;
}
#blog_archive .blog_list .item .category{
  position:absolute !important; top:12px !important; left:12px !important; right:auto !important; bottom:auto !important;
  width:auto !important; height:auto !important; margin:0 !important; padding:0 !important; z-index:3;
}
#blog_archive .blog_list .item .category a{
  display:inline-flex !important; align-items:center; min-width:0 !important; width:auto !important; height:auto !important;
  line-height:1 !important; padding:6px 13px 6px 11px !important; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.06em; color:#fff !important; text-decoration:none;
  background:rgba(42,36,28,.66) !important; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
#blog_archive .blog_list .item .category a::before{
  content:""; width:7px; height:7px; border-radius:50%; margin-right:7px; flex:0 0 auto; background:var(--coral);
}
#blog_archive .blog_list .item .category a[href*="/category/business/"]::before{ background:var(--coral); }
#blog_archive .blog_list .item .category a[href*="/category/csr/"]::before{      background:var(--sage); }
#blog_archive .blog_list .item .category a[href*="/category/recruit/"]::before{  background:var(--pink); }
#blog_archive .blog_list .item .category a[href*="/category/column/"]::before{   background:var(--sky); }
#blog_archive .blog_list .item .category a[href*="/category/blog/"]::before{     background:var(--beige); }
/* Featured（/blog/先頭のみ全幅ヒーロー） */
body.blog:not(.paged) #blog_archive .blog_list .item:first-child{ grid-column:1 / -1; }
body.blog:not(.paged) #blog_archive .blog_list .item:first-child > a{
  display:grid !important; grid-template-columns:1.3fr 1fr; grid-template-rows:1fr auto; min-height:clamp(320px,32vw,430px);
}
body.blog:not(.paged) #blog_archive .blog_list .item:first-child .image_wrap{
  grid-column:1; grid-row:1 / 3; aspect-ratio:auto !important; height:100% !important; min-height:100%;
}
body.blog:not(.paged) #blog_archive .blog_list .item:first-child .title_area{
  grid-column:2; grid-row:1; align-self:end; padding:var(--card-pad-lg) var(--card-pad-lg) 6px !important;
}
body.blog:not(.paged) #blog_archive .blog_list .item:first-child .title_area::before{
  content:"FEATURED / 注目記事"; display:block; margin-bottom:14px;
  font-family:var(--font-en); font-size:var(--fs-eyebrow); letter-spacing:var(--ls-eyebrow);
  font-weight:700; text-transform:uppercase; color:var(--brand);
}
body.blog:not(.paged) #blog_archive .blog_list .item:first-child .title{ font-size:var(--fs-h3); line-height:1.5; -webkit-line-clamp:3; }
body.blog:not(.paged) #blog_archive .blog_list .item:first-child .date{
  grid-column:2; grid-row:2; align-self:start; padding:0 var(--card-pad-lg) var(--card-pad-lg) !important;
}
body.blog:not(.paged) #blog_archive .blog_list .item:first-child .date::after{
  content:"　記事を読む →"; color:var(--brand); font-weight:700; letter-spacing:.02em;
}
/* no-image プレースホルダ（暖色グラデ＋気泡＋ワードマーク） */
#blog_archive .blog_list .item .image[style*="no_image1.gif"]{
  position:relative;
  background:
    radial-gradient(120% 100% at 20% 15%, rgba(233,120,92,.22), transparent 58%),
    radial-gradient(120% 120% at 86% 92%, rgba(255,149,28,.18), transparent 60%),
    linear-gradient(150deg,#F7F0E4 0%,#EBDFCB 100%) !important;
}
#blog_archive .blog_list .item .image[style*="no_image1.gif"]::before{
  content:""; position:absolute; right:-8%; bottom:-14%; width:46%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 32% 30%, rgba(233,120,92,.34), rgba(233,120,92,.10) 70%);
}
#blog_archive .blog_list .item .image[style*="no_image1.gif"]::after{
  content:"RAKUFUL"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-en); font-weight:800; letter-spacing:.28em; text-indent:.28em;
  font-size:clamp(1rem,2.3vw,1.5rem); color:rgba(42,36,28,.16);
}
/* ブログ用カテゴリナビ（JS注入） */
#blog_archive .rkf-blognav{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:0 0 var(--section-head-gap); }
#blog_archive .rkf-blognav a{
  padding:9px 20px; border-radius:999px; font-size:.86rem; font-weight:600; text-decoration:none;
  color:var(--ink-2); background:transparent; border:1px solid var(--line);
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
#blog_archive .rkf-blognav a:hover{ border-color:var(--coral); color:var(--brand-deep); }
#blog_archive .rkf-blognav a.is-active{ background:var(--ink); color:#fff; border-color:var(--ink); }

/* --- お知らせ = 正式発表（簡潔リスト） --- */
#news_archive .category_list{
  display:flex !important; flex-wrap:wrap; justify-content:center; gap:10px;
  margin:0 0 var(--section-head-gap) !important; padding:0; font-size:1rem !important;
}
#news_archive .category_list li{ display:inline-block; margin:0 !important; font-size:1rem; list-style:none; }
#news_archive .category_list li a{
  display:block; padding:9px 22px; border-radius:999px; font-size:.86rem; font-weight:600;
  color:var(--ink-2) !important; background:transparent; border:1px solid var(--line); text-decoration:none;
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
#news_archive .category_list li.active a,
#news_archive .category_list li a:hover{ background:var(--ink); color:#fff !important; border-color:var(--ink); }
#news_archive .news_list_wrap{ max-width:920px; margin:0 auto; }
#news_archive .news_list .item{ margin:0 !important; }
#news_archive .news_list .item a{
  display:grid !important; grid-template-columns:108px 132px 1fr; align-items:center; gap:20px;
  height:auto !important; min-height:0 !important; padding:22px 16px !important;
  background:transparent !important; border:0 !important; border-bottom:1px solid var(--line) !important; border-radius:12px;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
#news_archive .news_list .item a:hover{
  background:#fff !important; padding-left:24px !important; box-shadow:var(--shadow-sm); border-bottom-color:transparent !important;
}
#news_archive .news_list .item:last-of-type a{ border-bottom:1px solid var(--line) !important; }
#news_archive .news_list .date{
  margin:0 !important; font-family:var(--font-en); font-weight:600; font-size:.9rem; letter-spacing:.04em; color:var(--muted);
}
#news_archive .news_list .category{
  justify-self:start; min-width:0 !important; width:auto !important; height:auto !important; line-height:1 !important;
  margin:0 !important; padding:6px 14px !important; border:1px solid transparent !important; border-radius:999px !important;
  font-size:11px; font-weight:700; letter-spacing:.06em; text-align:center; white-space:nowrap;
  color:var(--brand) !important; background:var(--coral-soft) !important;
}
#news_archive .news_list .category.news_cat_id15{ color:var(--ink-2) !important; background:var(--paper-3) !important; }
#news_archive .news_list .category.news_cat_id16{ color:var(--brand-deep) !important; background:var(--coral-soft) !important; }
#news_archive .news_list .category.news_cat_id17{ color:#4E6B51 !important; background:var(--sage-soft) !important; }
#news_archive .news_list .title{
  margin:0 !important; font-weight:500; font-size:1rem; line-height:1.6; color:var(--ink);
  white-space:normal !important; text-overflow:clip !important;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
#news_archive .news_list .item a:hover .title{ color:var(--brand-deep); }
#news_archive .entry-more{
  cursor:pointer; margin:var(--section-head-gap) auto 0 !important;
  width:auto !important; min-width:220px; height:auto !important; line-height:1 !important;
  padding:16px 40px !important; border-radius:999px !important;
  border:1px solid var(--line) !important; background:#fff !important; color:var(--ink) !important; box-shadow:var(--shadow-sm);
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease), transform .35s var(--ease);
}
#news_archive .entry-more:hover{ background:var(--brand) !important; color:#fff !important; border-color:var(--brand) !important; transform:translateY(-2px); box-shadow:var(--shadow); }
#news_archive .entry-more span{ font-size:.92rem !important; font-weight:600; }
#news_archive .entry-loading{ color:var(--muted); }

/* --- ページネーション暖色統一 --- */
#blog_archive .page_navi, #news_archive .page_navi{ margin:var(--section-head-gap) 0 0 !important; }
#blog_archive .page_navi ul, #news_archive .page_navi ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0; }
#blog_archive .page_navi li, #news_archive .page_navi li{ margin:0 !important; }
#blog_archive .page_navi a, #blog_archive .page_navi span,
#news_archive .page_navi a, #news_archive .page_navi span{
  width:46px !important; height:46px !important; line-height:46px !important; border-radius:50% !important;
  box-sizing:border-box; background:#fff !important; color:var(--ink) !important; border:1px solid var(--line) !important;
  font-family:var(--font-en); font-weight:600;
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
#blog_archive .page_navi a:hover, #news_archive .page_navi a:hover{ background:var(--brand) !important; color:#fff !important; border-color:var(--brand) !important; transform:translateY(-2px); }
#blog_archive .page_navi span.current, #news_archive .page_navi span.current{ background:var(--brand) !important; color:#fff !important; border-color:var(--brand) !important; }
#blog_archive .page_navi span.dots, #news_archive .page_navi span.dots{ background:transparent !important; border-color:transparent !important; color:var(--muted) !important; }

/* アーカイブ SP */
@media (max-width:900px){
  #blog_archive .blog_list{ grid-template-columns:repeat(2,1fr) !important; }
  body.blog:not(.paged) #blog_archive .blog_list .item:first-child > a{ min-height:clamp(260px,40vw,340px); }
  body.blog:not(.paged) #blog_archive .blog_list .item:first-child .title_area,
  body.blog:not(.paged) #blog_archive .blog_list .item:first-child .date{ padding-left:var(--card-pad) !important; padding-right:var(--card-pad) !important; }
}
@media (max-width:640px){
  #blog_archive .blog_list{ grid-template-columns:1fr !important; max-width:460px; }
  body.blog:not(.paged) #blog_archive .blog_list .item:first-child > a{ display:flex !important; flex-direction:column; min-height:0; }
  body.blog:not(.paged) #blog_archive .blog_list .item:first-child .image_wrap{ grid-row:auto; aspect-ratio:16/10 !important; height:auto !important; min-height:0; }
  body.blog:not(.paged) #blog_archive .blog_list .item:first-child .title_area{ padding:var(--card-pad) var(--card-pad) 0 !important; }
  body.blog:not(.paged) #blog_archive .blog_list .item:first-child .title{ font-size:var(--fs-card); -webkit-line-clamp:2; }
  body.blog:not(.paged) #blog_archive .blog_list .item:first-child .date{ padding:10px var(--card-pad) var(--card-pad) !important; }
  #news_archive .news_list .item a{
    grid-template-columns:auto 1fr !important;
    grid-template-areas:"date cat" "title title" !important;
    gap:8px 14px !important; padding:16px 6px !important;
  }
  #news_archive .news_list .item a:hover{ padding-left:6px !important; }
  #news_archive .news_list .date{ grid-area:date; }
  #news_archive .news_list .category{ grid-area:cat; justify-self:start; }
  #news_archive .news_list .title{ grid-area:title; -webkit-line-clamp:3; }
  #blog_archive .page_navi a, #blog_archive .page_navi span,
  #news_archive .page_navi a, #news_archive .page_navi span{ width:42px !important; height:42px !important; line-height:42px !important; }
}

/* ============================================================
   04 ARTICLE — 記事本文リーダビリティ（#article でテーマに勝つ）
   ============================================================ */
body.single #news_single,
body.single #article,
body.single #article .post_content{
  width:auto !important; max-width:1120px !important; margin-left:auto !important; margin-right:auto !important;
}
body.single #article .post_content{
  padding:clamp(8px,2vw,20px) clamp(20px,3.4vw,38px) clamp(40px,5vw,60px) !important;
  color:var(--ink-2); font-size:1rem !important; line-height:1.85; letter-spacing:.01em;
}
body.single #article .post_content,
body.single #article .post_content p,
body.single #article .post_content li,
body.single #article .post_content th,
body.single #article .post_content td,
body.single #article .post_content h2,
body.single #article .post_content h3,
body.single #article .post_content h4{
  word-break:auto-phrase !important; line-break:strict !important; text-wrap:pretty; overflow-wrap:break-word;
}
body.single #article .post_content > *:first-child{ margin-top:0 !important; }
body.single #article .post_content > p:first-of-type{ font-size:1.075rem; line-height:1.9; color:var(--ink); font-weight:500; letter-spacing:.012em; }
body.single #article .post_content h2{
  font-family:var(--font-jp); font-weight:900; color:var(--ink);
  font-size:clamp(1.4rem,2.6vw,1.9rem); line-height:1.45; letter-spacing:.02em;
  margin:clamp(38px,4.4vw,54px) 0 20px; padding-bottom:14px; border-bottom:1px solid var(--line); position:relative;
}
body.single #article .post_content h2::after{ content:""; position:absolute; left:0; bottom:-1px; width:60px; height:3px; background:var(--grad-warm); }
body.single #article .post_content h3{
  font-family:var(--font-jp); font-weight:700; color:var(--ink);
  font-size:clamp(1.12rem,2vw,1.34rem); line-height:1.5;
  margin:clamp(28px,3.2vw,38px) 0 12px; padding-left:14px; border-left:4px solid var(--brand);
}
body.single #article .post_content h4{ font-weight:700; color:var(--ink); font-size:1.06rem; margin:clamp(22px,2.6vw,28px) 0 8px; }
body.single #article .post_content p{ margin:0 0 1.5em; }
body.single #article .post_content strong{ font-weight:700; color:var(--ink); }
body.single #article .post_content a{
  color:var(--brand-deep); text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:3px;
  text-decoration-color:var(--coral-soft); transition:color .3s,text-decoration-color .3s;
}
body.single #article .post_content a:hover{ color:var(--brand); text-decoration-color:var(--coral); }
body.single #article .post_content ul,
body.single #article .post_content ol{ margin:0 0 1.6em; padding-left:1.4em; }
body.single #article .post_content li{ margin:0 0 .55em; line-height:1.85; }
body.single #article .post_content ul li{ list-style:none; position:relative; padding-left:1.2em; }
body.single #article .post_content ul li::before{ content:""; position:absolute; left:0; top:.72em; width:7px; height:7px; border-radius:50%; background:var(--brand); }
body.single #article .post_content ol{ list-style:none; counter-reset:rkfl-ol; padding-left:0; }
body.single #article .post_content ol > li{ padding-left:2em; position:relative; }
body.single #article .post_content ol > li::before{
  counter-increment:rkfl-ol; content:counter(rkfl-ol);
  position:absolute; left:0; top:.15em; width:1.5em; height:1.5em; border-radius:50%;
  background:var(--coral-soft); color:var(--brand-deep); font-family:var(--font-en); font-weight:700; font-size:.8em;
  display:flex; align-items:center; justify-content:center;
}
body.single #article .post_content blockquote{
  margin:clamp(28px,3.4vw,40px) 0; padding:clamp(22px,3vw,30px) clamp(24px,3.4vw,34px);
  border:0; border-left:3px solid var(--coral); border-radius:0 16px 16px 0;
  background:linear-gradient(100deg,var(--coral-soft),transparent 92%); color:var(--ink);
}
body.single #article .post_content blockquote p{ margin:0; font-family:var(--font-jp); font-weight:600; font-size:1.08rem; line-height:1.85; letter-spacing:.01em; }
body.single #article .post_content blockquote p + p{ margin-top:.8em; }
body.single #article .post_content blockquote:before,
body.single #article .post_content blockquote:after{ content:none !important; }
body.single #article .post_content pre{
  margin:clamp(22px,3vw,32px) 0; padding:clamp(16px,2.2vw,22px) clamp(18px,2.4vw,24px);
  background:var(--navy); color:#F5EFE6; border-radius:14px; overflow-x:auto; -webkit-overflow-scrolling:touch;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Noto Sans JP",monospace;
  font-size:.82rem; line-height:1.7; letter-spacing:0; tab-size:2; box-shadow:var(--shadow-sm);
}
body.single #article .post_content pre code{ background:none; padding:0; border:0; color:inherit; font-size:inherit; white-space:pre; }
body.single #article .post_content :not(pre) > code{
  font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.88em;
  background:var(--paper-2); color:var(--brand-deep); padding:.1em .45em; border-radius:6px; border:1px solid var(--line-2);
}
body.single #article .post_content table{
  width:100% !important; border-collapse:separate !important; border-spacing:0; margin:2em 0;
  font-size:.95rem; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-sm);
}
body.single #article .post_content th,
body.single #article .post_content td{ text-align:left; padding:14px 18px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.72; }
body.single #article .post_content thead th{ color:var(--ink); font-weight:700; background:var(--paper-2); letter-spacing:.02em; }
body.single #article .post_content thead th:not(:last-child),
body.single #article .post_content tbody td:not(:last-child){ border-right:1px solid var(--line); }
body.single #article .post_content tbody tr:last-child > *{ border-bottom:none; }
body.single #article .post_content .s_table{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
body.single #article .post_content figure{ margin:clamp(24px,3.4vw,38px) 0; }
body.single #article .post_content img{ height:auto; border-radius:14px; box-shadow:var(--shadow-sm); }
body.single #article .post_content figcaption,
body.single #article .post_content .wp-caption-text{ margin-top:10px; font-size:.84rem; color:var(--muted); text-align:center; line-height:1.7; letter-spacing:.02em; }
@media (max-width:640px){
  body.single #article .post_content{ font-size:1rem !important; line-height:1.8; padding:clamp(6px,2vw,14px) clamp(16px,5vw,22px) clamp(32px,8vw,44px) !important; }
  body.single #article .post_content > p:first-of-type{ font-size:1.03rem; line-height:1.85; }
  body.single #article .post_content h2{ font-size:1.3rem; line-height:1.4; margin:clamp(30px,7vw,40px) 0 16px; }
  body.single #article .post_content h3{ font-size:1.12rem; margin:clamp(24px,6vw,30px) 0 10px; }
  body.single #article .post_content blockquote{ padding:18px 18px 18px 20px; }
  body.single #article .post_content blockquote p{ font-size:1.02rem; }
  body.single #article .post_content pre{ font-size:.72rem; padding:14px 14px; }
  body.single #article .post_content th, body.single #article .post_content td{ padding:11px 13px; }
}
@media (max-width:680px){ body.single #article .post_content table{ display:block; overflow-x:auto; } }
/* 記事末 CTAカード（mu-plugin .rkfl-artcta） */
body.single #article .post_content .rkfl-artcta{ margin:clamp(44px,6vw,66px) 0 4px; padding-top:clamp(30px,4vw,40px); border-top:1px solid var(--line); }
.rkfl-artcta-h{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin:0 0 clamp(18px,2.4vw,24px); }
.rkfl-artcta-h .ja{ font-family:var(--font-jp); font-weight:900; font-size:clamp(1.15rem,2.2vw,1.4rem); color:var(--navy); letter-spacing:.03em; }
.rkfl-artcta-h .en{ font-family:var(--font-en); font-weight:600; font-size:11px; letter-spacing:.2em; color:var(--muted); text-transform:uppercase; }
.rkfl-artcta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(12px,1.6vw,16px); }
body.single #article .post_content a.rkfl-artcard{
  position:relative; display:flex; flex-direction:column; gap:6px;
  padding:clamp(18px,2.2vw,22px) clamp(46px,5vw,52px) clamp(18px,2.2vw,22px) clamp(20px,2.4vw,24px);
  border:1px solid var(--line-2); border-radius:16px; background:#fff; text-decoration:none !important; box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;
}
body.single #article .post_content a.rkfl-artcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--coral); }
.rkfl-artcard .k{ font-family:var(--font-en); font-weight:700; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--coral); }
.rkfl-artcard .t{ font-family:var(--font-jp); font-weight:700; font-size:1.02rem; line-height:1.5; color:var(--navy); letter-spacing:.01em; }
.rkfl-artcard .d{ font-size:.85rem; line-height:1.65; color:var(--muted); }
.rkfl-artcard .ar{
  position:absolute; right:16px; top:50%; transform:translateY(-50%);
  width:30px; height:30px; border-radius:50%; background:var(--coral-soft); color:var(--coral);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-en);
  transition:transform .4s var(--ease),background .4s,color .4s;
}
body.single #article .post_content a.rkfl-artcard:hover .ar{ background:var(--coral); color:#fff; transform:translateY(-50%) translateX(3px); }
@media (max-width:600px){ .rkfl-artcta-grid{ grid-template-columns:1fr; } }
/* 記事目次（任意 mu-plugin） */
body.single #article .post_content .rkfl-toc{ margin:clamp(26px,3.4vw,36px) 0; padding:clamp(18px,2.4vw,24px) clamp(20px,2.6vw,28px); background:var(--paper-2); border:1px solid var(--line-2); border-radius:16px; }
.rkfl-toc-h{ display:block; font-family:var(--font-jp); font-weight:800; font-size:.92rem; color:var(--navy); letter-spacing:.06em; margin:0 0 12px; }
body.single #article .post_content .rkfl-toc ol{ margin:0; padding:0; list-style:none; counter-reset:rkfl-toc; }
body.single #article .post_content .rkfl-toc li{ margin:0; padding:0 0 0 2em; position:relative; line-height:1.7; }
body.single #article .post_content .rkfl-toc li + li{ margin-top:8px; }
body.single #article .post_content .rkfl-toc li::before{ counter-increment:rkfl-toc; content:counter(rkfl-toc,decimal-leading-zero); position:absolute; left:0; top:.15em; font-family:var(--font-en); font-weight:700; font-size:.8rem; color:var(--coral); }
body.single #article .post_content .rkfl-toc a{ color:var(--ink); text-decoration:none; font-size:.95rem; border:0; }
body.single #article .post_content .rkfl-toc a:hover{ color:var(--brand-deep); text-decoration:underline; text-underline-offset:3px; }
body.single #article .post_content h2[id]{ scroll-margin-top:90px; }
.rkfl-readbar{ position:fixed; left:0; top:0; height:3px; width:100%; transform:scaleX(0); transform-origin:0 50%; background:var(--grad-warm); z-index:9999; pointer-events:none; will-change:transform; }
@media (prefers-reduced-motion:reduce){ .rkfl-readbar{ display:none; } }

/* ============================================================
   05 INTERNAL LINKS — 関連ページカード / パンくず
   ============================================================ */
.rkfl-related{ margin:var(--section-y-tight, clamp(40px,4vw,64px)) 0 var(--sp-2, 8px); }
#page_content .post_content .rkfl-related{ margin:var(--section-y-tight, clamp(40px,4vw,64px)) 0 var(--sp-2, 8px); }
.rkfl-related-h{
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  font-family:var(--font-jp); font-weight:900; font-size:var(--fs-h3, clamp(1.15rem,1.7vw,1.4rem));
  line-height:1.35; color:var(--navy); letter-spacing:var(--ls-h2, .035em);
  margin:0 0 var(--sp-4, 16px); padding-bottom:12px; border-bottom:2px solid var(--coral);
}
.rkfl-related-h .en{ font-family:var(--font-en); font-weight:600; font-size:var(--fs-micro, 11px); letter-spacing:var(--ls-micro, .16em); color:var(--muted); margin-left:0; }
.rkfl-related-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap-tight, clamp(12px,1.4vw,18px)); }
.rkfl-rel-card{
  position:relative; display:flex; flex-direction:column; gap:5px;
  padding:var(--sp-5, 20px) 52px var(--sp-5, 20px) var(--sp-6, 24px);
  border:1px solid var(--line-2); border-radius:16px; background:#fff; text-decoration:none !important; box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
}
#page_content .post_content .rkfl-rel-card{ padding:var(--sp-5, 20px) 52px var(--sp-5, 20px) var(--sp-6, 24px); border:1px solid var(--line-2); background:#fff; text-decoration:none !important; }
.rkfl-rel-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--coral); }
.rkfl-rel-card .t{ font-family:var(--font-jp); font-weight:700; font-size:var(--fs-card, 1.12rem); line-height:var(--lh-card, 1.5); color:var(--navy); transition:color .35s var(--ease); }
.rkfl-rel-card:hover .t{ color:var(--brand-deep, #c8502f); }
.rkfl-rel-card .d{ font-size:var(--fs-cap, .84rem); line-height:var(--lh-cap, 1.7); color:var(--muted); }
.rkfl-rel-card .ar{
  position:absolute; right:18px; top:50%; transform:translateY(-50%);
  width:30px; height:30px; border-radius:50%; background:var(--coral-soft); color:var(--coral);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-en);
  transition:transform .4s var(--ease), background .4s, color .4s;
}
.rkfl-rel-card:hover .ar{ background:var(--coral); color:#fff; transform:translateY(-50%) translateX(3px); }
.rkfl-rel-card.is-editorial .ar{ background:var(--sky-soft, rgba(127,168,201,.16)); color:var(--sky, #7FA8C9); }
.rkfl-rel-card.is-editorial:hover .ar{ background:var(--sky, #7FA8C9); color:#fff; }
@media (max-width:600px){
  .rkfl-related-grid{ grid-template-columns:1fr; }
  .rkfl-rel-card{ padding:var(--card-pad, clamp(20px,5vw,26px)); padding-right:48px; }
}
/* 可視パンくず（固定ページ/アーカイブ・microdataなし） */
.rkfl-crumb{ max-width:var(--container-text, 1080px); margin:0 auto; padding:clamp(14px,2vw,22px) var(--section-x, clamp(24px,5vw,64px)) 0; font-family:var(--font-jp); }
.rkfl-crumb ol{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; font-size:var(--fs-cap, .84rem); line-height:1.5; }
.rkfl-crumb li{ display:inline-flex; align-items:center; gap:6px 8px; min-width:0; }
.rkfl-crumb a{ color:var(--muted); text-decoration:none; transition:color .3s var(--ease); white-space:nowrap; }
.rkfl-crumb a:hover{ color:var(--brand, var(--coral)); }
.rkfl-crumb li.home a{ display:inline-flex; align-items:center; gap:5px; }
.rkfl-crumb li.home a::before{
  content:""; width:13px; height:13px; flex:0 0 13px; background:currentColor;
  -webkit-mask:no-repeat center/contain; mask:no-repeat center/contain;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 3 10.5V21h6v-6h6v6h6V10.5z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 3 10.5V21h6v-6h6v6h6V10.5z'/%3E%3C/svg%3E");
}
.rkfl-crumb .sep{ color:var(--coral); font-family:var(--font-en); opacity:.7; transform:translateY(-1px); user-select:none; }
.rkfl-crumb [aria-current="page"]{ color:var(--navy); font-weight:700; max-width:min(60vw, 40ch); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:600px){ .rkfl-crumb{ padding-top:12px; } .rkfl-crumb ol{ font-size:.8rem; } .rkfl-crumb [aria-current="page"]{ max-width:52vw; } }
/* 記事パンくず #bread_crumb を同デザインへ */
#blog_single #bread_crumb, #news_single #bread_crumb{ max-width:var(--container-text, 1080px); margin:0 auto; padding:clamp(14px,2vw,22px) var(--section-x, clamp(24px,5vw,64px)) 0; }
#bread_crumb ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; font-size:var(--fs-cap, .84rem); line-height:1.5; }
#bread_crumb li{ display:inline-flex; align-items:center; gap:6px 8px; min-width:0; float:none !important; }
#bread_crumb li:not(.home)::before{ content:"/"; color:var(--coral); font-family:var(--font-en); opacity:.7; margin-right:2px; }
#bread_crumb a{ color:var(--muted); text-decoration:none; transition:color .3s var(--ease); white-space:nowrap; }
#bread_crumb a:hover{ color:var(--brand, var(--coral)); }
#bread_crumb li.last span, #bread_crumb li.last{ color:var(--navy); font-weight:700; max-width:min(60vw, 40ch); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#bread_crumb li.category{ display:none; }
@media (max-width:600px){ #bread_crumb ul{ font-size:.8rem; } #bread_crumb li.last, #bread_crumb li.last span{ max-width:52vw; } }

/* ============================================================
   06 RESPONSIVE — SP精緻化（320/375/390/430）
   ============================================================ */
@media (max-width:640px){
  body.home #header_slider_catch{ padding:84px clamp(20px,6vw,28px) 36px; align-items:flex-start; }
  body.home #header_slider_catch .caption{ position:absolute; top:calc(63px + 26px); transform:none; }
  body.home #header_slider_catch .catch{ font-size:clamp(1.9rem,8.4vw,2.6rem); line-height:1.22; letter-spacing:.008em; }
  body.home #header_slider_catch .sub_title{ margin:0 0 20px; padding-left:42px; letter-spacing:.24em; }
  body.home #header_slider_catch .sub_title::before{ width:30px; }
  body.home #header_slider_catch .rkfl-hero-sub{ margin-top:22px; }
}
@media (max-width:430px){
  body.home #header_slider_catch .caption > .button{ display:flex; width:100%; max-width:340px; justify-content:center; margin-top:30px; }
}
@media (max-width:600px){
  #index_content_builder .rkfl-stats .rkfl-stat{ padding:clamp(22px,5.4vw,30px) 10px; }
  #index_content_builder .rkfl-stats .rkfl-stat-num{ font-size:clamp(1.9rem,9vw,2.5rem); }
  #index_content_builder .rkfl-stats .rkfl-stat-num .u{ font-size:.4em; }
  #index_content_builder .rkfl-stats .rkfl-stat-label{ font-size:.9rem; margin-top:10px; }
  #index_content_builder .rkfl-stats .rkfl-stat-en{ font-size:10px; }
}
#page_content .post_content{ overflow-wrap:anywhere; }
#page_content .post_content a{ overflow-wrap:anywhere; word-break:break-word; }
#page_content .post_content li,
#page_content .post_content p,
#page_content .post_content td{ overflow-wrap:anywhere; }
@media (max-width:640px){
  #index_content_builder .cb_link_button{ margin-top:clamp(28px,7vw,36px); }
  #index_content_builder .cb_news_list .category_list li a{ padding:11px 20px; }
  .rkf-local-actions a{ padding:13px 22px; }
}
@media (max-width:560px){
  .rkf-bizcircles{ gap:20px 8px; }
  .rkf-bizc{ width:31%; min-width:0; }
  .rkf-bizc .ring{ width:clamp(74px,23vw,96px); height:clamp(74px,23vw,96px); }
  .rkf-bizc .nm{ font-size:.84rem; }
}
@media (max-width:430px){
  .rkf-pillbanner{ min-height:96px; padding:0 22px; }
  .rkf-pillbanner .ct .en{ letter-spacing:.16em; }
}
html{ scroll-padding-top:70px; }
@media (max-width:600px){ html{ scroll-padding-top:64px; } }

/* ============================================================
   07 PERF — 画面外セクションの描画コスト削減（PCのみ）
   ============================================================ */
@media (min-width:641px){
  body.home #index_content_builder .cb_news_list,
  body.home #index_content_builder .cb_blog_list,
  body.home #index_content_builder .banner_content{
    content-visibility:auto; contain-intrinsic-size:auto 760px;
  }
}
/* #################### 全面磨き上げ ここまで #################### */

/* ============================================================
   FV ラップトップ最適化 (2026-07-06) — CTAを確実に視界内へ／RAKUFUL透かしを読めるように
   ============================================================ */
@media (min-width:641px){
  /* ヒーロー高を抑え、CTAを折り返し内に収める＋次セクションを少し覗かせる */
  body.home #header_slider_wrap.type1,
  body.home #header_slider_wrap.position_type1,
  body.home #header_slider,
  body.home #header_slider .item{ min-height:86vh !important; }
  /* コンテンツ縦footprintを圧縮（CTAが上がる） */
  body.home #header_slider_catch{ padding-top:76px; }
  body.home #header_slider_catch .catch{ font-size:clamp(2.2rem,5.4vw,4.4rem); }
  body.home #header_slider_catch .sub_title{ margin-bottom:20px; }
  body.home #header_slider_catch .rkfl-hero-sub{ margin-top:20px; }
  body.home #header_slider_catch .rkfl-cta-group{ margin-top:28px; }
  /* RAKUFUL透かし：中央寄せ＋幅を画面内に収めて全文字を読めるように */
  body.home #header_slider_wrap.type1::after{
    left:50%; right:auto; transform:translateX(-50%);
    font-size:clamp(80px,16.5vw,250px); bottom:-2.2vw; white-space:nowrap;
  }
}

/* PC: 目指す未来カルーセルの進捗バーを復元（design.css:813の旧非表示指定を上書き） */
@media (min-width:861px){ .rkf-future .rkf-progress{display:block} }

/* ===== 仕上げ(2026-07-06): アーカイブ/検索ヘッダーのダミー画像をブランド写真へ ===== */
body.archive #page_header .bg_image,
body.search #page_header .bg_image,
body.blog #page_header .bg_image{
  background-image:url('../../uploads/2026/06/rkfl-hero-balloons.jpg') !important;
  background-position:center 38% !important;
}

/* スキップリンク（キーボード利用者向け・fx.jsが注入） */
.rkfl-skip{position:fixed;left:12px;top:-60px;z-index:100000;background:var(--navy);color:#fff;
  padding:10px 18px;border-radius:8px;font-weight:700;transition:top .2s;}
.rkfl-skip:focus{top:12px;color:#fff;}

/* 404・検索0件の救済ブロック（fx.jsが注入） */
.rkfl-lost{max-width:640px;margin:26px auto 10px;text-align:center;}
.rkfl-lost p{color:var(--paper-on-dark,#EDE7DD);opacity:.85;margin-bottom:18px;font-size:15px;}
.rkfl-lost-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.rkfl-lost-links a{display:inline-block;padding:9px 18px;border:1px solid rgba(255,255,255,.35);
  border-radius:999px;color:#fff;font-size:14px;font-weight:600;transition:all .25s;}
.rkfl-lost-links a:hover{background:var(--coral);border-color:var(--coral);color:#fff;transform:translateY(-2px);}

/* ===== CF7フォーム（お問い合わせ/採用エントリー）ブランドスタイル ===== */
.rkfl-form{max-width:640px;}
.rkfl-form p{margin:0 0 18px;}
.rkfl-form label{display:block;font-weight:700;font-size:14.5px;color:var(--ink);letter-spacing:.02em;}
.rkfl-req{display:inline-block;margin-left:8px;padding:2px 9px 1px;border-radius:999px;
  background:var(--coral);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;vertical-align:2px;}
.rkfl-form .wpcf7-form-control-wrap{display:block;margin-top:7px;}
.rkfl-form input[type="text"],
.rkfl-form input[type="email"],
.rkfl-form input[type="tel"],
.rkfl-form select,
.rkfl-form textarea{
  width:100%;box-sizing:border-box;padding:13px 16px;font-size:16px;color:var(--ink);
  background:#fff;border:1.5px solid var(--line);border-radius:12px;
  transition:border-color .2s, box-shadow .2s;-webkit-appearance:none;appearance:none;}
.rkfl-form select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23E9785C' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:42px;}
.rkfl-form textarea{min-height:170px;resize:vertical;}
.rkfl-form input:focus,.rkfl-form select:focus,.rkfl-form textarea:focus{
  outline:none;border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-soft);}
.rkfl-consent{padding:14px 16px;background:var(--paper-2,#F4EFE7);border-radius:12px;font-size:14px;}
.rkfl-consent a{color:var(--coral);text-decoration:underline;}
.rkfl-consent input[type="checkbox"]{width:18px;height:18px;accent-color:var(--coral);margin-right:8px;vertical-align:-3px;}
.rkfl-submit{margin-top:6px;}
.rkfl-form input[type="submit"]{
  display:inline-block;min-width:230px;padding:16px 34px;border:none;border-radius:999px;cursor:pointer;
  background:linear-gradient(135deg,var(--coral),var(--coral-deep,#D45F40));color:#fff;
  font-size:16px;font-weight:700;letter-spacing:.1em;box-shadow:0 10px 26px -10px rgba(233,120,92,.55);
  transition:transform .2s, box-shadow .2s;}
.rkfl-form input[type="submit"]:hover{transform:translateY(-2px);box-shadow:0 14px 30px -10px rgba(233,120,92,.65);}
.rkfl-form .wpcf7-spinner{display:block;margin:8px auto 0;}
.rkfl-form .wpcf7-not-valid{border-color:#D0453B !important;}
.rkfl-form .wpcf7-not-valid-tip{display:block;margin-top:6px;color:#D0453B;font-size:13px;font-weight:600;}
.wpcf7 form .wpcf7-response-output{margin:20px 0 0;padding:14px 18px;border:1.5px solid var(--coral);
  border-radius:12px;font-weight:600;font-size:14.5px;}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--sage);background:var(--sage-soft);color:#3E5C42;}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{background:#FDF1EF;color:#8A3B33;}
@media (max-width:640px){
  .rkfl-form input[type="submit"]{width:100%;}
}

/* ===== 2026-07-07: 事業ギャラリー（実写グリッド）＋MVVミッション3連 ===== */
.rkfl-bizgal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0 12px;}
.rkfl-bizgal.cols2{grid-template-columns:repeat(2,1fr);}
.rkfl-bizgal .it{position:relative;margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/3;
  box-shadow:0 10px 28px -14px rgba(23,21,15,.28);background:var(--paper-2,#F4EFE7);}
.rkfl-bizgal .it img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s var(--ease,ease);}
.rkfl-bizgal .it:hover img{transform:scale(1.055);}
.rkfl-bizgal .it .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:26px 12px 9px;
  background:linear-gradient(180deg,transparent,rgba(27,22,16,.74));color:#fff;
  font-size:12.5px;font-weight:600;letter-spacing:.03em;line-height:1.45;}
.rkfl-bizgal.shots .it{aspect-ratio:16/10;background:#fff;}
.rkfl-bizgal.shots .it img{object-fit:cover;object-position:top;}
#page_content .post_content .rkfl-bizgal .it{margin:0;}
@media (max-width:680px){
  .rkfl-bizgal{grid-template-columns:repeat(2,1fr);gap:10px;}
  .rkfl-bizgal .it .cap{font-size:11px;padding:20px 9px 7px;}
}

.rkfl-mvvtrip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:30px 0 10px;}
.rkfl-mvvtrip .tp{position:relative;margin:0;border-radius:18px;overflow:hidden;aspect-ratio:3/3.4;
  box-shadow:0 16px 40px -18px rgba(23,21,15,.32);}
.rkfl-mvvtrip .tp img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease,ease);}
.rkfl-mvvtrip .tp:hover img{transform:scale(1.06);}
.rkfl-mvvtrip .tp::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,transparent 52%,rgba(27,22,16,.58));}
.rkfl-mvvtrip .tp .w{position:absolute;left:16px;bottom:12px;z-index:2;color:#fff;font-weight:900;
  font-size:clamp(21px,2.4vw,27px);letter-spacing:.16em;text-shadow:0 2px 16px rgba(0,0,0,.35);}
.rkfl-mvvtrip .tp .we{position:absolute;right:16px;bottom:18px;z-index:2;color:rgba(255,255,255,.78);
  font-family:var(--en,"Outfit",sans-serif);font-weight:600;font-size:11px;letter-spacing:.26em;}
.rkfl-mvvtrip-note{margin-top:14px;color:var(--ink-2,#3A372F);font-size:14.5px;opacity:.88;}
@media (max-width:680px){
  .rkfl-mvvtrip{grid-template-columns:1fr;gap:12px;}
  .rkfl-mvvtrip .tp{aspect-ratio:16/9;}
}
