/* ============================================================
   RAKUFUL — Brand Design System  (overlay on MASSIVE)
   Direction B : 上質 × 躍動 / refined yet bold
   ============================================================ */

:root{
  --ink:#17150F;
  --ink-2:#3A372F;
  --ink-3:#5E5A50;
  --paper:#FBF9F5;
  --paper-2:#F4EFE7;
  --paper-3:#EBE3D6;
  --brand:#F55838;
  --brand-deep:#E2431D;
  --brand-tint:rgba(245,88,56,.10);
  --sub:#FF951C;
  --blue:#3FA5F5;
  --blue-deep:#2C73AB;
  --tech:#12161C;
  --charcoal:#1A1C20;
  --paper-on-dark:#EDE7DD;
  --grad-warm:linear-gradient(135deg,#F55838 0%,#FF951C 100%);
  --grad-future:linear-gradient(120deg,#F55838 0%,#FF951C 38%,#3FA5F5 78%,#2C73AB 100%);
  --line:rgba(23,21,15,.12);
  --line-2:rgba(23,21,15,.07);
  --muted:#9A9388;
  --shadow-sm:0 2px 12px rgba(23,21,15,.05);
  --shadow:0 22px 55px -16px rgba(23,21,15,.18);
  --shadow-lg:0 44px 90px -22px rgba(23,21,15,.3);
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --container:1180px;
  --font-jp:"Zen Kaku Gothic New","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --font-en:"Outfit",var(--font-jp);
}

/* ---------- Base ---------- */
html{ scroll-behavior:smooth; }
body{
  font-family:var(--font-jp);
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  letter-spacing:.012em;
}
::selection{ background:var(--brand); color:#fff; }
body ::-webkit-scrollbar{ width:11px; height:11px; }
body ::-webkit-scrollbar-thumb{ background:rgba(23,21,15,.22); border-radius:10px; border:3px solid var(--paper); }
body ::-webkit-scrollbar-thumb:hover{ background:rgba(23,21,15,.4); }

/* ============================================================
   HEADER — frosted, fixed, condenses on scroll
   ============================================================ */
#header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between;
  height:78px; padding:0 clamp(20px,4vw,56px);
  background:rgba(251,249,245,.66);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid transparent;
  transition:height .45s var(--ease), background .45s var(--ease),
             border-color .45s var(--ease), box-shadow .45s var(--ease);
}
#header.rkfl-scrolled{
  height:62px;
  background:rgba(251,249,245,.9);
  border-bottom-color:var(--line-2);
  box-shadow:0 8px 30px -20px rgba(23,21,15,.55);
}
#header #header_logo{ margin:0; padding:0; float:none; }
#header .logo{ margin:0; }
#header .logo a{ display:inline-flex; align-items:center; text-decoration:none; }
#header .logo a .pc_logo_text{
  font-family:var(--font-jp) !important;
  font-weight:900 !important;
  font-size:20px !important;
  letter-spacing:.04em !important;
  color:var(--ink) !important;
  line-height:1 !important;
}
#site_description{ display:none !important; }

/* hamburger */
#header #menu_button{
  position:relative; width:48px; height:48px; margin:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  background:transparent; border-radius:50%;
  transition:background .35s var(--ease);
}
#header #menu_button:hover{ background:var(--brand-tint); }
#header #menu_button span{
  display:block; width:24px; height:1.6px; background:var(--ink); border-radius:2px;
  transition:transform .4s var(--ease), width .4s var(--ease), background .4s;
}
#header #menu_button:hover span:nth-child(1){ width:18px; }
#header #menu_button:hover span:nth-child(3){ width:18px; }

/* ============================================================
   HERO — editorial light canvas, bold type, orange accent
   ============================================================ */
body.home #header_slider_wrap.type1,
body.home #header_slider_wrap.position_type1{
  position:relative;
  height:auto !important;
  min-height:94vh;
  overflow:hidden;
  background:
    linear-gradient(rgba(34,36,40,.030) 1px, transparent 1px) 0 0 / 100% 46px,
    linear-gradient(90deg, rgba(34,36,40,.030) 1px, transparent 1px) 0 0 / 46px 100%,
    radial-gradient(72% 64% at 90% 2%, rgba(245,88,56,.13), transparent 55%),
    radial-gradient(64% 70% at 104% 30%, rgba(63,165,245,.10), transparent 60%),
    radial-gradient(120% 92% at 12% 18%, #FCFAF6 0%, #FAF7F2 46%, #F5EFE6 100%);
}
/* drifting future glow (orange -> blue), gives FV a living/IT feel */
body.home #header_slider_wrap.type1::before{
  content:""; position:absolute; inset:-12%; z-index:0; pointer-events:none;
  background:
    radial-gradient(38% 48% at 82% 8%, rgba(245,88,56,.16), transparent 60%),
    radial-gradient(42% 52% at 98% 34%, rgba(63,165,245,.13), transparent 62%);
  animation:rkflDrift 20s ease-in-out infinite alternate;
}
@keyframes rkflDrift{
  from{ transform:translate(0,0) scale(1); }
  to{ transform:translate(-3.5%,2.5%) scale(1.06); }
}
/* kill the low-res balloon + competing per-char layer */
body.home #header_slider,
body.home #header_slider .item{
  height:auto !important; min-height:94vh; background:transparent !important; z-index:1;
}
body.home #header_slider .item .bg_image{ background:none !important; opacity:0 !important; }
body.home #header_slider .item .caption{ display:none !important; }

/* faint oversized brand mark */
body.home #header_slider_wrap.type1::after{
  content:"RAKUFUL";
  position:absolute; right:-2vw; bottom:-3.2vw; z-index:0;
  font-family:var(--font-en); font-weight:800; font-size:23vw; line-height:.8;
  letter-spacing:-.02em; color:rgba(23,21,15,.035); pointer-events:none; white-space:nowrap;
}

body.home #header_slider_catch{
  position:absolute; top:0; right:0; bottom:0; left:0; z-index:5;
  background:transparent !important; color:var(--ink) !important;
  display:flex; align-items:center; justify-content:center;
  padding:90px clamp(24px,5vw,64px) 0; text-align:left;
}
body.home #header_slider_catch .caption{ width:100%; max-width:var(--container); margin:0 auto; }

body.home #header_slider_catch .sub_title{
  display:inline-block; position:relative;
  font-family:var(--font-en); font-weight:600; text-transform:uppercase;
  font-size:clamp(11px,1vw,13px); letter-spacing:.36em; color:var(--brand);
  margin:0 0 28px; padding-left:54px;
}
body.home #header_slider_catch .sub_title::before{
  content:""; position:absolute; left:0; top:50%; width:40px; height:2px;
  background:var(--brand); transform:translateY(-50%);
}
body.home #header_slider_catch .catch{
  font-family:var(--font-jp); font-weight:900; color:var(--ink);
  font-size:clamp(2.35rem,6.4vw,5.2rem); line-height:1.15; letter-spacing:.012em; margin:0;
}
body.home #header_slider_catch .catch .rkfl-accent{ color:var(--brand); }
body.home #header_slider_catch .rkfl-hero-sub{
  margin:30px 0 0; max-width:560px;
  font-size:clamp(.98rem,1.25vw,1.12rem); line-height:1.88; color:var(--ink-2); font-weight:500;
}

/* hero CTA — dual buttons (事業を知る / 採用情報) */
body.home #header_slider_catch .rkfl-cta-group{ display:flex; flex-wrap:wrap; gap:14px; margin-top:42px; }
body.home #header_slider_catch .button{
  display:inline-flex; align-items:center; gap:.7em; margin-top:42px;
  padding:18px 36px; border-radius:999px;
  background:linear-gradient(135deg,#F55838 0%,#FF951C 100%); color:#fff; font-weight:700; font-size:1rem; letter-spacing:.02em;
  text-decoration:none; border:none;
  box-shadow:0 18px 34px -14px rgba(245,88,56,.55);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), filter .35s;
}
body.home #header_slider_catch .rkfl-cta-group .button{ margin-top:0; }
body.home #header_slider_catch .button::after{
  content:"→"; font-family:var(--font-en); font-weight:600; transition:transform .4s var(--ease);
}
body.home #header_slider_catch .button:hover{
  filter:brightness(1.04); transform:translateY(-3px);
  box-shadow:0 26px 46px -14px rgba(245,88,56,.7);
}
body.home #header_slider_catch .button:hover::after{ transform:translateX(6px); }
body.home #header_slider_catch .rkfl-cta-2{
  display:inline-flex; align-items:center; gap:.6em;
  padding:18px 34px; border-radius:999px;
  background:rgba(255,255,255,.5); color:var(--ink); font-weight:700; font-size:1rem; letter-spacing:.02em;
  text-decoration:none; border:1.6px solid rgba(23,21,15,.2); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  transition:transform .4s var(--ease), background .35s, color .35s, border-color .35s;
}
body.home #header_slider_catch .rkfl-cta-2::after{
  content:"→"; font-family:var(--font-en); font-weight:600; transition:transform .4s var(--ease);
}
body.home #header_slider_catch .rkfl-cta-2:hover{
  background:var(--ink); color:#fff; border-color:var(--ink); transform:translateY(-3px);
}
body.home #header_slider_catch .rkfl-cta-2:hover::after{ transform:translateX(6px); }

/* scroll cue (reuse theme anchor) */
body.home #header_slider_button{
  position:absolute; left:50%; bottom:30px; transform:translateX(-50%); z-index:6;
  width:26px; height:42px; border:1.5px solid rgba(23,21,15,.32); border-radius:14px;
  background:transparent; text-indent:-9999px; overflow:hidden;
}
body.home #header_slider_button::before{
  content:""; position:absolute; left:50%; top:9px; width:3px; height:8px; border-radius:2px;
  background:var(--brand); transform:translateX(-50%);
  animation:rkflScroll 1.9s var(--ease) infinite;
}
@keyframes rkflScroll{
  0%{opacity:0; transform:translate(-50%,0)} 30%{opacity:1}
  60%{opacity:1; transform:translate(-50%,13px)} 100%{opacity:0; transform:translate(-50%,13px)}
}

/* hero entrance */
body.home #header_slider_catch .sub_title,
body.home #header_slider_catch .catch,
body.home #header_slider_catch .rkfl-hero-sub,
body.home #header_slider_catch .button,
body.home #header_slider_catch .rkfl-cta-2{
  opacity:0; transform:translateY(28px);
  transition:opacity .95s var(--ease-out), transform .95s var(--ease-out);
}
body.home.rkfl-ready #header_slider_catch .sub_title{ opacity:1; transform:none; transition-delay:.12s; }
body.home.rkfl-ready #header_slider_catch .catch{ opacity:1; transform:none; transition-delay:.26s; }
body.home.rkfl-ready #header_slider_catch .rkfl-hero-sub{ opacity:1; transform:none; transition-delay:.46s; }
body.home.rkfl-ready #header_slider_catch .button{ opacity:1; transform:none; transition-delay:.6s; }
body.home.rkfl-ready #header_slider_catch .rkfl-cta-2{ opacity:1; transform:none; transition-delay:.72s; }

/* ============================================================
   SECTION RHYTHM (homepage builder)
   ============================================================ */
#index_content_builder{ background:var(--paper); position:relative; }
#index_content_builder .cb_content{
  padding:clamp(38px,4.2vw,62px) clamp(24px,5vw,64px);   /* セクション上下：間延びをさらに圧縮（138→90→62px上限。隣接で約124px） */
  max-width:none; margin:0; overflow:hidden;
}
#index_content_builder .cb_contents_inner{ max-width:var(--container); margin:0 auto; }
#index_content_builder .cb_news_list{ background:var(--paper-2); }

/* section header — EN eyebrow above headline */
#index_content_builder .cb_header{
  display:flex; flex-direction:column; align-items:center; gap:16px;
  text-align:center; margin-bottom:54px;
}
#index_content_builder .cb_header .sub_title{
  order:-1; display:inline-flex; align-items:center; gap:13px;
  font-family:var(--font-en); font-weight:600; text-transform:uppercase;
  font-size:13px; letter-spacing:.34em; color:var(--brand); margin:0;
}
#index_content_builder .cb_header .sub_title::before,
#index_content_builder .cb_header .sub_title::after{
  content:""; width:28px; height:2px; background:var(--brand); opacity:.55;
}
#index_content_builder .cb_header .headline{
  font-family:var(--font-jp); font-weight:900; color:var(--ink);
  font-size:clamp(1.95rem,3.7vw,3rem); letter-spacing:.045em; line-height:1.22; margin:0;
}
#index_content_builder .header_desc{
  text-align:center; max-width:760px; margin:24px auto 0;
  color:var(--ink-2); font-size:clamp(.95rem,1.1vw,1.06rem); line-height:1.9; font-weight:500;
  text-wrap:balance;   /* 末尾1〜2文字の孤立（す。/に。）を防ぎ行長を均す */
}
/* 見出し直下の短いリード文：行長を均して不自然な改行・ぶら下がりを解消（本文長文はprettyのまま） */
#index_content_builder .rkf-head .rkf-lead,
#index_content_builder .rkfl-mvv-lead,
#index_content_builder .rkf-people .rkf-lead,
#index_content_builder .rkf-tech .rkf-head .rkf-lead,
#index_content_builder .rkf-local .rkf-head .rkf-lead,
#index_content_builder .rkf-contact .rkf-head .rkf-lead{ text-wrap:balance !important; max-width:44em; margin-left:auto; margin-right:auto; }

/* ============================================================
   BUSINESS — premium image-led cards
   image → headline → label → desc  (DOM reordered via display:contents)
   ============================================================ */
#index_content_builder .cb_box_content .box_content{
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.2vw,30px);
  max-width:var(--container); margin:0 auto;
}
#index_content_builder .cb_box_content .item{ margin:0 !important; width:auto !important; }
#index_content_builder .cb_box_content .item > a{
  position:relative; display:flex; flex-direction:column; height:100%;
  background:#fff; border:1px solid var(--line-2); border-radius:20px; overflow:hidden;
  box-shadow:var(--shadow-sm); text-decoration:none;
  transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .55s var(--ease);
}
#index_content_builder .cb_box_content .item > a:hover{
  transform:translateY(-9px); box-shadow:var(--shadow); border-color:transparent;
}
/* dissolve wrapper so image / headline / text become orderable flex items */
#index_content_builder .cb_box_content .item .content_wrap{ display:contents !important; }

/* 1) image on top */
#index_content_builder .cb_box_content .item .content_bottom{
  order:0; width:auto !important; height:auto !important;
  margin:0 !important; padding:0 !important; background:transparent !important;
  position:relative; overflow:hidden; line-height:0;
}
#index_content_builder .cb_box_content .item .content_bottom .image{
  width:100% !important; height:208px !important; max-width:none !important;
  object-fit:cover; display:block; margin:0; transition:transform .9s var(--ease);
}
#index_content_builder .cb_box_content .item > a:hover .content_bottom .image{ transform:scale(1.07); }
#index_content_builder .cb_box_content .item .content_bottom::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(23,21,15,.22) 0%, transparent 32%);
}
#index_content_builder .cb_box_content .item .content_bottom .caption{
  position:absolute !important; top:14px !important; left:14px !important; bottom:auto !important; z-index:2;
  margin:0 !important; padding:7px 14px !important; border-radius:999px !important; width:auto !important;
  font-family:var(--font-en); font-weight:700; font-size:11px; letter-spacing:.16em; line-height:1;
  text-align:left !important; color:#fff;
  background:rgba(23,21,15,.6); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}

/* 2) headline */
#index_content_builder .cb_box_content .item .headline{
  order:1; position:static !important; text-align:left !important;
  margin:0 !important; padding:26px 28px 0 !important;
  font-family:var(--font-jp); font-weight:900; font-size:1.36rem; letter-spacing:.03em; color:var(--ink);
}

/* 3) label (catch) + desc */
#index_content_builder .cb_box_content .item .content_top{
  order:2; width:auto !important; height:auto !important; position:static !important;
  background:transparent !important; box-sizing:border-box; text-align:left !important;
  padding:11px 28px 30px !important;
}
#index_content_builder .cb_box_content .item .content_top_inner{
  position:static !important; transform:none !important; opacity:1 !important; width:auto !important;
}
#index_content_builder .cb_box_content .item .content_top_inner .catch{
  display:inline-flex; align-items:center; gap:9px;
  margin:0 0 12px; font-weight:700; font-size:.82rem; letter-spacing:.06em; color:var(--brand);
}
#index_content_builder .cb_box_content .item .content_top_inner .catch::before{
  content:""; display:inline-block; width:18px; height:2px; background:var(--brand);
}
#index_content_builder .cb_box_content .item .content_top_inner .desc{
  margin:0; color:var(--ink-2); font-size:.92rem; line-height:1.85; font-weight:500;
}

/* ============================================================
   MVV — dark statement panel  (free_space)
   ============================================================ */
#index_content_builder .cb_free_space .post_content{ margin:0; }
#index_content_builder .cb_free_space .post_content > p:empty{ display:none; }
.rkfl-mvv{
  position:relative; overflow:hidden; color:var(--paper); text-align:left;
  background:var(--ink); border-radius:28px; padding:clamp(44px,6vw,86px);
}
.rkfl-mvv::before{
  content:""; position:absolute; right:-8%; top:-40%; width:55%; height:150%;
  background:radial-gradient(circle, rgba(245,88,56,.18), transparent 62%); pointer-events:none;
}
.rkfl-mvv > *{ position:relative; z-index:1; }
.rkfl-mvv-head{ max-width:780px; }
.rkfl-eyebrow{
  display:inline-block; margin-bottom:22px; font-family:var(--font-en); font-weight:600;
  letter-spacing:.3em; font-size:12px; text-transform:uppercase; color:var(--brand);
}
.rkfl-mvv-title{
  margin:0; font-family:var(--font-jp); font-weight:900; color:#fff;
  font-size:clamp(1.85rem,3.7vw,3rem); line-height:1.34; letter-spacing:.04em;
}
.rkfl-mvv-lead{
  margin:24px 0 0; max-width:640px; color:rgba(251,249,245,.74);
  font-size:clamp(.97rem,1.1vw,1.05rem); line-height:1.9; font-weight:500;
}
.rkfl-mvv-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(22px,3vw,46px);
  margin-top:clamp(40px,5vw,64px);
}
.rkfl-mvv-item{
  display:flex; flex-direction:column; overflow:hidden; border-radius:18px;
  background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.09);
  transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .55s var(--ease);
}
.rkfl-mvv-item:hover{ transform:translateY(-7px); box-shadow:0 26px 54px rgba(0,0,0,.4); border-color:rgba(245,88,56,.45); }
.rkfl-mvv-ph{ position:relative; display:block; aspect-ratio:3/2; overflow:hidden; }
.rkfl-mvv-ph .bg{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .95s var(--ease); }
.rkfl-mvv-item:hover .rkfl-mvv-ph .bg{ transform:scale(1.07); }
.rkfl-mvv-ph::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,28,42,.5), rgba(20,28,42,0) 58%); pointer-events:none; }
.rkfl-mvv-ph::before{ content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--grad-warm); z-index:2; }
.rkfl-mvv-body{ display:block; padding:22px clamp(18px,1.5vw,24px) clamp(22px,2vw,28px); }
.rkfl-mvv-label{
  display:block; margin-bottom:11px; font-family:var(--font-en); font-weight:700;
  letter-spacing:.14em; font-size:13px; text-transform:uppercase; color:var(--brand);
}
.rkfl-mvv-item p{ margin:0; color:rgba(251,249,245,.86); font-size:.96rem; line-height:1.85; font-weight:500; }
.rkfl-mvv-cta{ margin-top:clamp(38px,5vw,58px); }
.rkfl-mvv-cta a{
  display:inline-flex; align-items:center; gap:.6em; color:#fff; font-weight:700; text-decoration:none;
  border-bottom:2px solid var(--brand); padding-bottom:7px; transition:gap .35s var(--ease);
}
.rkfl-mvv-cta a span{ color:var(--brand); transition:transform .35s var(--ease); }
.rkfl-mvv-cta a:hover{ gap:1em; }
.rkfl-mvv-cta a:hover span{ transform:translateX(5px); }

/* ============================================================
   STATS — numbers panel with count-up  (free_space)
   ============================================================ */
.rkfl-stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2.5vw,36px);
  background:#fff; border:1px solid var(--line-2); border-radius:24px;
  box-shadow:var(--shadow-sm); padding:clamp(40px,5vw,62px) clamp(20px,4vw,56px);
}
.rkfl-stat{ position:relative; text-align:center; }
.rkfl-stat:not(:last-child)::after{
  content:""; position:absolute; right:calc(-1 * clamp(8px,1.25vw,18px)); top:16%;
  height:68%; width:1px; background:var(--line);
}
.rkfl-stat-num{
  display:flex; align-items:baseline; justify-content:center; gap:.06em;
  font-family:var(--font-en); font-weight:800; line-height:1; color:var(--ink);
  font-size:clamp(2.5rem,5vw,3.9rem); letter-spacing:-.01em;
}
.rkfl-stat-num .u{ font-size:.42em; font-weight:700; color:var(--brand); }
.rkfl-stat-label{ display:block; margin-top:15px; font-weight:700; font-size:1rem; color:var(--ink); }
.rkfl-stat-en{
  display:block; margin-top:5px; font-family:var(--font-en); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--muted);
}
@media (max-width:900px){
  .rkfl-mvv-grid{ grid-template-columns:1fr; gap:24px; }
  .rkfl-stats{ grid-template-columns:repeat(2,1fr); gap:40px 16px; }
  .rkfl-stat:nth-child(2)::after{ display:none; }
}
@media (max-width:600px){
  .rkfl-stat::after{ display:none !important; }
}

/* ============================================================
   NEWS — refined list rows + tab pills
   ============================================================ */
#index_content_builder .cb_news_list .category_list{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:0 0 40px; padding:0;
}
#index_content_builder .cb_news_list .category_list li{ margin:0; list-style:none; }
#index_content_builder .cb_news_list .category_list li a{
  display:block; padding:9px 22px; border-radius:999px; font-size:.86rem; font-weight:500;
  color:var(--ink-2); background:transparent; border:1px solid var(--line); text-decoration:none;
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
#index_content_builder .cb_news_list .category_list li.active a,
#index_content_builder .cb_news_list .category_list li a:hover{
  background:var(--ink); color:#fff; border-color:var(--ink);
}
#index_content_builder .cb_news_list .index_news_list_wrap{ max-width:880px; margin:0 auto; }
#index_content_builder .cb_news_list .news_list .item{ margin:0; }
#index_content_builder .cb_news_list .news_list .item > a{
  display:grid; grid-template-columns:108px 116px 1fr; align-items:center; gap:22px;
  background:transparent !important; padding:24px 18px; border-bottom:1px solid var(--line);
  text-decoration:none; border-radius:12px;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
#index_content_builder .cb_news_list .news_list .item > a:hover{
  background:#fff !important; padding-left:26px; box-shadow:var(--shadow-sm); border-bottom-color:transparent;
}
#index_content_builder .cb_news_list .news_list .item .date{
  font-family:var(--font-en); font-weight:600; font-size:.92rem; letter-spacing:.04em; color:var(--muted);
}
#index_content_builder .cb_news_list .news_list .item .category{
  justify-self:start; margin:0; padding:5px 14px; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--brand);
  border:1px solid rgba(245,88,56,.4); background:var(--brand-tint); white-space:nowrap;
}
#index_content_builder .cb_news_list .news_list .item .title{
  margin:0; font-weight:500; font-size:1.02rem; line-height:1.6; color:var(--ink);
}
#index_content_builder .cb_news_list .news_list .item > a:hover .title{ color:var(--brand-deep); }

/* ============================================================
   BLOG — clean image cards (override theme overlay layout)
   ============================================================ */
#index_content_builder .cb_blog_list .blog_list{
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,30px);
  max-width:var(--container); margin:0 auto !important;
}
#index_content_builder .cb_blog_list .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);
}
#index_content_builder .cb_blog_list .blog_list .item:hover{
  transform:translateY(-9px); box-shadow:var(--shadow); border-color:transparent;
}
#index_content_builder .cb_blog_list .blog_list .item > a{
  display:flex !important; flex-direction:column; height:auto !important; position:static !important;
  text-decoration:none; background:transparent !important;
}
#index_content_builder .cb_blog_list .blog_list .item > a::before,
#index_content_builder .cb_blog_list .blog_list .item > a::after{ display:none !important; content:none !important; }

/* image on top */
#index_content_builder .cb_blog_list .blog_list .item .image_wrap{
  order:0; position:static !important; width:auto !important; height:210px !important; margin:0 !important;
  overflow:hidden; line-height:0;
}
#index_content_builder .cb_blog_list .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);
}
#index_content_builder .cb_blog_list .blog_list .item:hover .image{ transform:scale(1.07); }

/* title */
#index_content_builder .cb_blog_list .blog_list .item .title_area{
  order:1; position:static !important; display:block !important;
  width:auto !important; height:auto !important; max-height:none !important; inset:auto !important;
  margin:0 !important; padding:22px 24px 8px !important; background:transparent !important;
}
#index_content_builder .cb_blog_list .blog_list .item .title{
  margin:0; display:block; max-height:none !important;
  font-family:var(--font-jp); font-weight:700; font-size:1.04rem; line-height:1.65; color:var(--ink);
}
#index_content_builder .cb_blog_list .blog_list .item .title span{ color:inherit; }

/* date */
#index_content_builder .cb_blog_list .blog_list .item .date{
  order:2; position:static !important; inset:auto !important; margin:0 !important;
  display:block; padding:0 24px 24px !important;
  font-family:var(--font-en); font-weight:600; font-size:.84rem; letter-spacing:.04em; color:var(--muted);
}

/* category tag over image */
#index_content_builder .cb_blog_list .blog_list .item .category{
  position:absolute !important; top:14px !important; left:14px !important; right:auto !important; bottom:auto !important;
  z-index:3; width:auto !important; height:auto !important; margin:0 !important; padding:0 !important;
}
#index_content_builder .cb_blog_list .blog_list .item .category a{
  display:inline-block; min-width:0 !important; height:auto !important; line-height:1 !important;
  padding:6px 13px !important; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.08em; color:#fff; text-decoration:none;
  background:rgba(23,21,15,.66); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}

/* ============================================================
   RECRUIT CTA banner
   ============================================================ */
#index_content_builder .banner_content{
  position:relative; overflow:hidden; text-align:center;
  padding:clamp(96px,12vw,176px) clamp(24px,5vw,64px) !important;
}
#index_content_builder .banner_content::before{
  content:""; position:absolute; inset:0; z-index:2;
  background:linear-gradient(118deg, rgba(245,88,56,.94) 0%, rgba(255,149,28,.55) 38%, rgba(44,115,171,.9) 100%);
}
#index_content_builder .banner_content .overlay{
  background:linear-gradient(118deg, rgba(23,21,15,.5), rgba(226,67,29,.3)) !important; z-index:2;
}
#index_content_builder .banner_content .bg_image{ z-index:1; transform:scale(1.04); }
#index_content_builder .banner_content .banner_contents_inner{
  position:relative; z-index:3; max-width:860px; margin:0 auto;
}
#index_content_builder .banner_content .catch{
  margin:0; color:#fff; font-family:var(--font-jp); font-weight:900;
  font-size:clamp(1.9rem,4.6vw,3.4rem); line-height:1.32; letter-spacing:.03em;
  text-shadow:0 2px 40px rgba(0,0,0,.3);
}
#index_content_builder .banner_content .desc{
  margin:24px 0 0; color:rgba(255,255,255,.92); font-size:clamp(1rem,1.2vw,1.12rem); line-height:1.88; font-weight:500;
}
#index_content_builder .banner_content .cb_link_button{ margin-top:44px; }
#index_content_builder .banner_content .cb_link_button a{
  background:#fff; color:var(--ink); border-color:#fff;
}
#index_content_builder .banner_content .cb_link_button a:hover{
  background:var(--brand); color:#fff; border-color:var(--brand); transform:translateY(-3px);
}

/* ============================================================
   BUTTONS — unified "一覧へ" links
   ============================================================ */
#index_content_builder .cb_link_button{ text-align:center; margin-top:56px; }
#index_content_builder .cb_link_button a{
  display:inline-flex; align-items:center; gap:.7em;
  padding:16px 40px; border-radius:999px; text-decoration:none;
  font-weight:700; font-size:.98rem; letter-spacing:.02em;
  color:var(--ink); background:transparent; border:1.6px solid var(--ink);
  transition:background .4s var(--ease), color .4s var(--ease), transform .4s var(--ease), border-color .4s;
}
#index_content_builder .cb_link_button a::after{
  content:"→"; font-family:var(--font-en); font-weight:600; transition:transform .4s var(--ease);
}
#index_content_builder .cb_link_button a:hover{
  background:var(--ink); color:#fff; transform:translateY(-3px);
}
#index_content_builder .cb_link_button a:hover::after{ transform:translateX(6px); }

/* ============================================================
   FOOTER — dark, refined
   ============================================================ */
#footer{
  background:var(--ink) !important; color:rgba(251,249,245,.72);
  position:relative;
  padding:clamp(46px,4.8vw,68px) clamp(24px,5vw,64px) 0;
}
#footer::before{ content:""; position:absolute; left:0; right:0; top:0; height:1px; background:linear-gradient(90deg,transparent 6%,rgba(233,120,92,.55) 34%,rgba(127,168,201,.45) 66%,transparent 94%); }
#footer a{ color:rgba(251,249,245,.72); text-decoration:none; transition:color .3s var(--ease), padding .3s var(--ease); }
#footer a:hover{ color:#fff; }

/* footer CTA banners */
#footer #footer_banner{
  display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(14px,1.8vw,24px);
  max-width:var(--container); margin:0 auto clamp(30px,3.6vw,48px);
}
#footer #footer_banner .banner{ margin:0; }
#footer #footer_banner .banner a{
  position:relative; display:block; overflow:hidden; border-radius:18px;
  height:clamp(122px,12.5vw,156px); background:transparent !important; color:#fff !important;
}
#footer #footer_banner .banner a::before{
  content:""; position:absolute; inset:0; z-index:2; opacity:1; transition:opacity .5s var(--ease);
  background:linear-gradient(115deg, rgba(23,21,15,.82), rgba(226,67,29,.55));
}
#footer #footer_banner .banner a:hover::before{ opacity:.85; }
#footer #footer_banner .banner .image_wrap{ position:absolute; inset:0; z-index:1; overflow:hidden; }
#footer #footer_banner .banner .image{
  width:100% !important; height:100% !important; margin:0;
  background-size:cover !important; background-position:center !important; transition:transform .9s var(--ease);
}
#footer #footer_banner .banner a:hover .image{ transform:scale(1.07); }
#footer #footer_banner .banner .title_area{
  position:absolute; inset:0; z-index:3; display:flex; flex-direction:column;
  align-items:flex-start; justify-content:center; padding:0 clamp(26px,3.5vw,46px); width:auto; height:auto;
}
#footer #footer_banner .banner .title_area::after{
  content:"→"; position:absolute; right:clamp(22px,3vw,40px); top:50%; transform:translateY(-50%);
  font-family:var(--font-en); font-size:1.3rem; color:#fff; transition:transform .4s var(--ease);
}
#footer #footer_banner .banner a:hover .title_area::after{ transform:translate(6px,-50%); }
#footer #footer_banner .banner .title{
  margin:0; font-family:var(--font-jp); font-weight:900; letter-spacing:.04em; color:#fff;
  font-size:clamp(1.2rem,1.8vw,1.5rem);
}
#footer #footer_banner .banner .desc{ margin:6px 0 0; font-size:.85rem; color:rgba(255,255,255,.86); font-weight:500; }
/* CTAの役割を明示（ENラベル）＋非対称の色設計：採用=温色/問い合わせ=寒色 */
#footer #footer_banner .banner .title::before{
  display:block; margin-bottom:6px; font-family:var(--font-en); font-weight:700;
  font-size:11px; letter-spacing:.22em; color:rgba(255,255,255,.82);
}
#footer #footer_banner .banner1 .title::before{ content:"CAREERS"; }
#footer #footer_banner .banner2 .title::before{ content:"CONTACT"; }
#footer #footer_banner .banner2 a::before{ background:linear-gradient(115deg, rgba(26,20,14,.86), rgba(60,53,43,.5)) !important; }

/* フッター先頭のブランドリード（CTAを"ここから一緒に"の物語として束ねる焦点コピー） */
#footer .rkfl-flead{ max-width:var(--container); margin:0 auto clamp(20px,2.6vw,32px); text-align:center; }
#footer .rkfl-flead-en{ display:inline-block; font-family:var(--font-en); font-weight:700; font-size:12px; letter-spacing:.28em; color:var(--brand); margin-bottom:11px; }
#footer .rkfl-flead-jp{ margin:0; font-family:var(--font-jp); font-weight:900; color:#fff; font-size:clamp(1.5rem,3vw,2.25rem); line-height:1.42; letter-spacing:.03em; }
#footer .rkfl-flead-sub{ display:block; margin:11px auto 0; max-width:640px; color:rgba(251,249,245,.6); font-size:.9rem; line-height:1.8; }

/* footer menus */
#footer #footer_menu{
  display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(40px,8vw,110px);
  max-width:var(--container); margin:0 auto; padding-bottom:clamp(48px,6vw,72px);
  border-bottom:1px solid rgba(251,249,245,.12);
}
#footer #footer_menu .footer_menu ul{ margin:0; padding:0; list-style:none; }
#footer #footer_menu .footer_menu li{ margin:0 0 14px; }
#footer #footer_menu .footer_menu li a{ font-size:.92rem; font-weight:500; }
#footer #footer_menu .footer_menu li a:hover{ padding-left:6px; }

/* footer bottom */
#footer #footer_bottom{
  max-width:var(--container); margin:0 auto; padding:clamp(26px,3vw,38px) 0 0;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
#footer #footer_logo .logo a .pc_logo_text{
  font-family:var(--font-jp) !important; font-weight:900 !important; font-size:22px !important;
  letter-spacing:.04em !important; color:#fff !important;
}
#footer #footer_site_description{ margin:16px 0 0; color:rgba(251,249,245,.5); font-size:.88rem; letter-spacing:.04em; }
/* フッターの認定信頼表記（小・専用ページ /whitecompany/ へ） */
#footer .rkfl-ftrust{ display:inline-flex; align-items:center; gap:11px; margin:18px 0 0; padding:8px 16px 8px 12px; border:1px solid rgba(251,249,245,.18); border-radius:999px; text-decoration:none; transition:border-color .3s var(--ease), background .3s; }
#footer .rkfl-ftrust:hover{ border-color:rgba(233,120,92,.6); background:rgba(233,120,92,.08); }
#footer .rkfl-ftrust img{ width:auto !important; height:30px !important; display:block; margin:0 !important; }
#footer .rkfl-ftrust span{ font-family:var(--font-jp); font-size:.82rem; color:rgba(251,249,245,.68); letter-spacing:.02em; }
#footer .rkfl-ftrust b{ color:rgba(251,249,245,.92); font-weight:700; }
#footer #footer_sns{ margin:22px 0 0; padding:0; display:flex; gap:10px; list-style:none; }
#footer #footer_sns li{ margin:0; }
#footer #footer_sns li a{
  display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:32px; padding:0 14px;
  border:1px solid rgba(251,249,245,.2); border-radius:999px;
  font-family:var(--font-en); font-size:11px; letter-spacing:.1em; color:rgba(251,249,245,.7);
}
#footer #footer_sns li a:hover{ border-color:var(--brand); background:var(--brand); color:#fff; }

/* bottom menu + copyright */
#footer #footer_menu_bottom{ max-width:var(--container); margin:clamp(22px,3vw,32px) auto 0; }
#footer #footer_menu_bottom ul{ margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:6px 26px; }
#footer #footer_menu_bottom li{ margin:0; }
#footer #footer_menu_bottom li a{ font-size:.82rem; color:rgba(251,249,245,.55); }
#footer #copyright{
  background:transparent !important; color:rgba(251,249,245,.4) !important;
  margin:clamp(28px,4vw,40px) 0 0; padding:26px 0; text-align:center;
  font-family:var(--font-en); font-size:12px; letter-spacing:.1em;
  border-top:1px solid rgba(251,249,245,.1);
}
@media (max-width:700px){
  #footer #footer_banner{ grid-template-columns:1fr; }
  #footer #footer_menu{ gap:32px 50px; }
}

/* ============================================================
   REVEAL ON SCROLL
   ============================================================ */
.rkfl-reveal{
  opacity:0; transform:translateY(34px);
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);
  will-change:opacity, transform;
}
.rkfl-reveal.rkfl-vis{ opacity:1 !important; transform:none !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  #index_content_builder .cb_box_content .box_content{ grid-template-columns:1fr; max-width:440px; }
  #index_content_builder .cb_blog_list .blog_list{ grid-template-columns:1fr; max-width:440px; }
  body.home #header_slider_catch{ align-items:flex-end; padding-bottom:16vh; }
}
@media (max-width:600px){
  #header{ height:62px; padding:0 18px; }
  #header .logo a .pc_logo_text{ font-size:17px !important; }
  body.home #header_slider_wrap.type1{ min-height:90vh; }
  body.home #header_slider, body.home #header_slider .item{ min-height:90vh; }
  body.home #header_slider_wrap.type1::after{ font-size:34vw; bottom:-2vw; }
  #index_content_builder .cb_news_list .news_list .item > a{
    grid-template-columns:1fr auto; gap:6px 14px; row-gap:8px;
  }
  #index_content_builder .cb_news_list .news_list .item .title{ grid-column:1 / -1; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .rkfl-reveal{ opacity:1 !important; transform:none !important; }
  body.home #header_slider_catch .sub_title,
  body.home #header_slider_catch .catch,
  body.home #header_slider_catch .rkfl-hero-sub,
  body.home #header_slider_catch .button{ opacity:1 !important; transform:none !important; }
}

/* ============================================================
   v2 NEW SECTIONS (free_space) — shared head + cta
   ============================================================ */
.rkf-head{ text-align:center; max-width:780px; margin:0 auto clamp(40px,5vw,58px); }
.rkf-head .rkf-en{
  display:inline-flex; align-items:center; gap:12px; margin:0 0 16px;
  font-family:var(--font-en); font-weight:700; letter-spacing:.2em; font-size:12px;
  text-transform:uppercase; color:var(--brand);
}
.rkf-head .rkf-en::before,.rkf-head .rkf-en::after{ content:""; width:24px; height:2px; background:var(--brand); opacity:.55; }
.rkf-head h2{
  margin:0; font-family:var(--font-jp); font-weight:900; color:var(--ink);
  font-size:clamp(1.8rem,3.6vw,2.7rem); letter-spacing:.04em; line-height:1.3;
}
.rkf-head .rkf-lead{
  margin:20px auto 0; max-width:680px; color:var(--ink-2);
  font-size:clamp(.97rem,1.2vw,1.08rem); line-height:1.88; font-weight:500;
}
.rkf-cta{ text-align:center; margin-top:clamp(36px,5vw,52px); }
.rkf-cta a{
  display:inline-flex; align-items:center; gap:.6em; padding:15px 34px; border-radius:999px;
  font-weight:700; font-size:.96rem; letter-spacing:.02em; text-decoration:none;
  border:1.6px solid var(--ink); color:var(--ink); background:transparent;
  transition:background .35s var(--ease), color .35s, transform .35s var(--ease);
}
.rkf-cta a::after{ content:"→"; font-family:var(--font-en); transition:transform .35s var(--ease); }
.rkf-cta a:hover{ background:var(--ink); color:#fff; transform:translateY(-3px); }
.rkf-cta a:hover::after{ transform:translateX(5px); }

/* MVV credo band (added to existing .rkfl-mvv) */
.rkfl-mvv-credo{ margin-top:clamp(30px,4vw,42px); padding-top:24px; border-top:1px solid rgba(245,88,56,.4); display:flex; flex-wrap:wrap; gap:12px 30px; }
.rkfl-mvv-credo span{ color:var(--paper-on-dark); font-weight:700; font-size:.92rem; position:relative; padding-left:18px; }
.rkfl-mvv-credo span::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--brand); }

/* ---- 3. 目指す未来 (horizontal carousel) ---- */
.rkf-future-track{
  display:flex; gap:clamp(16px,2vw,24px); overflow-x:auto; scroll-snap-type:x mandatory;
  padding:6px 4px 22px; margin:0 -4px; -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.rkf-future-track::-webkit-scrollbar{ display:none; }
.rkf-future-card{
  flex:0 0 clamp(248px,72vw,312px); scroll-snap-align:start; box-sizing:border-box;
  background:#fff; border:1px solid var(--line-2); border-radius:18px; padding:30px 28px 32px;
  box-shadow:var(--shadow-sm); position:relative; transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.rkf-future-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.rkf-future-card .rkf-num{ font-family:var(--font-en); font-weight:800; font-size:2.4rem; line-height:1; color:var(--brand); opacity:.2; letter-spacing:-.02em; }
.rkf-future-card h3{ margin:14px 0 12px; font-family:var(--font-jp); font-weight:900; font-size:1.1rem; line-height:1.55; color:var(--ink); }
.rkf-future-card p{ margin:0; color:var(--ink-2); font-size:.91rem; line-height:1.9; font-weight:500; }
.rkf-future-card::before{ content:""; position:absolute; left:0; top:30px; width:3px; height:28px; background:var(--grad-warm); border-radius:0 3px 3px 0; }
.rkf-progress{ height:3px; background:var(--line); border-radius:3px; max-width:240px; margin:8px auto 0; overflow:hidden; }
.rkf-progress span{ display:block; height:100%; width:22%; background:var(--grad-warm); border-radius:3px; transition:width .12s linear; }
/* PC(861px〜)：5枚すべてを一望＝横スクロール廃止し中央寄せの折返しへ。SPは従来の横スワイプ・カルーセルを維持 */
@media (min-width:861px){
  .rkf-future-track{ overflow:visible; flex-wrap:wrap; justify-content:center; gap:clamp(18px,2vw,26px); margin:0; padding:4px 0 0; scroll-snap-type:none; }
  .rkf-future-card{ flex:0 1 clamp(288px,31%,340px); }
  .rkf-progress{ display:none; }
}

/* ---- 5. EC・AI・グローバル (dark tech panel) ---- */
.rkf-tech{
  position:relative; overflow:hidden; border-radius:26px; padding:clamp(44px,6vw,80px);
  background:
    radial-gradient(120% 100% at 82% 0%, rgba(63,165,245,.16), transparent 58%),
    linear-gradient(180deg,#161B22 0%,#12161C 100%);
  color:var(--paper-on-dark);
}
.rkf-tech::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.55;
  background:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 100% 42px,
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 42px 100%;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 28%,#000 72%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 28%,#000 72%,transparent);
}
.rkf-tech > *{ position:relative; z-index:1; }
.rkf-tech .rkf-head{ margin-bottom:clamp(34px,4vw,48px); }
.rkf-tech .rkf-head h2{ color:#fff; }
.rkf-tech .rkf-head .rkf-en{ color:var(--blue); }
.rkf-tech .rkf-head .rkf-en::before,.rkf-tech .rkf-head .rkf-en::after{ background:var(--blue); }
.rkf-tech .rkf-head .rkf-lead{ color:rgba(237,231,221,.78); }
.rkf-tech-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,24px); }
.rkf-tech-card{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:16px; padding:28px 26px; position:relative; overflow:hidden; }
.rkf-tech-card::before{ content:""; position:absolute; left:0; top:0; width:0; height:2px; background:linear-gradient(90deg,var(--blue),transparent); transition:width .6s var(--ease); }
.rkf-tech-card:hover::before{ width:100%; }
.rkf-tech-card .rkf-ic{ width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(63,165,245,.12); margin-bottom:16px; }
.rkf-tech-card .rkf-ic svg{ width:26px; height:26px; stroke:var(--blue); fill:none; }
.rkf-tech-card h3{ margin:0 0 10px; font-family:var(--font-jp); font-weight:700; font-size:1.06rem; color:#fff; }
.rkf-tech-card p{ margin:0; font-size:.9rem; line-height:1.85; color:rgba(237,231,221,.74); font-weight:500; }
.rkf-tech-note{ margin:clamp(30px,4vw,44px) 0 0; max-width:none; text-align:center; font-size:1.02rem; line-height:1.85; color:#fff; font-weight:500; padding-top:clamp(28px,3.5vw,36px); border-top:1px solid rgba(255,255,255,.12); }
.rkf-tech-note .em{ color:var(--sub); font-weight:700; }
.rkf-tech .rkf-cta a{ border-color:rgba(255,255,255,.4); color:#fff; }
.rkf-tech .rkf-cta a:hover{ background:#fff; color:var(--ink); }

/* ---- 6. 数字 (expanded to 6 cards) ---- */
#index_content_builder .rkfl-stats{ grid-template-columns:repeat(3,1fr); gap:0; padding:0; overflow:hidden; }
#index_content_builder .rkfl-stats .rkfl-stat{
  padding:clamp(30px,3.6vw,44px) clamp(14px,2vw,26px);
  border-right:1px solid var(--line-2); border-bottom:1px solid var(--line-2);
}
#index_content_builder .rkfl-stats .rkfl-stat::after{ display:none !important; }
#index_content_builder .rkfl-stats .rkfl-stat:nth-child(3n){ border-right:none; }
#index_content_builder .rkfl-stats .rkfl-stat:nth-last-child(-n+3){ border-bottom:none; }
.rkf-stat-badge{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
.rkf-stat-badge .rkf-seal{ width:54px; height:54px; border-radius:50%; background:var(--brand-tint); display:flex; align-items:center; justify-content:center; }
.rkf-stat-badge .rkf-seal svg{ width:28px; height:28px; stroke:var(--brand); fill:none; }

/* ---- 7. 強み ---- */
.rkf-strength-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2vw,24px); }
.rkf-strength-card{ background:#fff; border:1px solid var(--line-2); border-radius:18px; padding:32px 26px; box-shadow:var(--shadow-sm); transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.rkf-strength-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.rkf-strength-card .rkf-ic{ width:56px; height:56px; border-radius:50%; background:var(--brand-tint); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.rkf-strength-card .rkf-ic svg{ width:28px; height:28px; stroke:var(--brand); fill:none; }
.rkf-strength-card h3{ margin:0 0 12px; font-family:var(--font-jp); font-weight:900; font-size:1.04rem; line-height:1.5; color:var(--ink); }
.rkf-strength-card p{ margin:0; color:var(--ink-2); font-size:.9rem; line-height:1.85; font-weight:500; }

/* ---- 8. 社長メッセージ ---- */
.rkf-message{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(28px,4vw,56px); align-items:center; max-width:var(--container); margin:0 auto; }
.rkf-message-photo{ position:relative; aspect-ratio:4/5; border-radius:22px; overflow:hidden; background:linear-gradient(160deg,#2A2620,#17150F); display:flex; align-items:flex-end; box-shadow:var(--shadow); }
.rkf-message-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }
.rkf-message-photo::before{ content:"\201C"; position:absolute; top:2px; left:24px; z-index:2; font-family:var(--font-en); font-size:7rem; color:rgba(245,88,56,.55); line-height:1; }
.rkf-message-photo .rkf-photo-tag{ position:relative; z-index:3; margin:24px; }
.rkf-message-photo .rkf-photo-tag .nm{ font-family:var(--font-jp); font-weight:900; font-size:1.2rem; color:#fff; }
.rkf-message-photo .rkf-photo-tag .ti{ font-size:.82rem; color:rgba(237,231,221,.72); margin-top:4px; }
.rkf-message-body .rkf-en{ display:inline-block; font-family:var(--font-en); font-weight:700; letter-spacing:.2em; font-size:12px; color:var(--brand); margin-bottom:14px; text-transform:uppercase; }
.rkf-message-body h2{ margin:0 0 10px; font-family:var(--font-jp); font-weight:900; font-size:clamp(1.6rem,3vw,2.2rem); letter-spacing:.04em; color:var(--ink); }
.rkf-message-body .rkf-msg-lead{ margin:0 0 22px; color:var(--brand); font-weight:700; font-size:1.05rem; }
.rkf-message-body p{ margin:0 0 16px; color:var(--ink-2); font-size:.98rem; line-height:1.88; font-weight:500; }
.rkf-message-sign{ margin-top:24px; }
.rkf-message-sign .ti{ font-size:.84rem; color:var(--muted); margin-right:10px; }
.rkf-message-sign .nm{ font-family:var(--font-jp); font-weight:700; font-size:1.18rem; color:var(--ink); }

/* ---- 9. 働く人・社風 ---- */
.rkf-people{ text-align:center; }
.rkf-people-tags{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin:clamp(28px,3.5vw,40px) 0 0; }
.rkf-people-tags span{ display:inline-flex; align-items:center; gap:.55em; padding:11px 22px; border-radius:999px; background:var(--paper-2); border:1px solid var(--line-2); font-weight:700; font-size:.92rem; color:var(--ink); }
.rkf-people-tags span::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--brand); }
.rkf-people-note{ margin:clamp(24px,3vw,34px) 0 0; max-width:none; color:var(--muted); font-size:.86rem; line-height:1.8; }

/* ---- 10. 豊中・大阪 ---- */
.rkf-local{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,52px); align-items:center; max-width:var(--container); margin:0 auto; }
.rkf-local-body .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(--brand); margin-bottom:14px; text-transform:uppercase; }
.rkf-local-body .rkf-en::before{ content:""; width:24px; height:2px; background:var(--brand); opacity:.55; }
.rkf-local-body h2{ margin:0 0 18px; font-family:var(--font-jp); font-weight:900; font-size:clamp(1.7rem,3.2vw,2.4rem); letter-spacing:.04em; color:var(--ink); }
.rkf-local-body .rkf-lead{ margin:0 0 26px; color:var(--ink-2); font-size:1rem; line-height:1.88; font-weight:500; }
.rkf-addr{ border-left:3px solid var(--brand); padding:4px 0 4px 18px; margin:0 0 18px; }
.rkf-addr .lb{ font-family:var(--font-en); font-weight:700; font-size:11px; letter-spacing:.12em; color:var(--brand); text-transform:uppercase; }
.rkf-addr .ad{ margin-top:6px; font-weight:500; color:var(--ink); font-size:.95rem; line-height:1.7; }
.rkf-local-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.rkf-local-map{ border-radius:20px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line-2); min-height:360px; }
.rkf-local-map iframe{ display:block; width:100%; height:100%; min-height:360px; border:0; }

.rkf-numbers-note{ text-align:center; margin:22px auto 0; color:var(--muted); font-size:.84rem; letter-spacing:.02em; }
.rkf-local-actions a{
  display:inline-flex; align-items:center; gap:.5em; padding:11px 22px; border-radius:999px;
  font-weight:700; font-size:.9rem; text-decoration:none; color:var(--ink);
  background:var(--paper-2); border:1px solid var(--line-2);
  transition:background .35s var(--ease), color .35s, transform .35s var(--ease);
}
.rkf-local-actions a::after{ content:"\2192"; font-family:var(--font-en); transition:transform .3s var(--ease); }
.rkf-local-actions a:hover{ background:var(--ink); color:#fff; transform:translateY(-2px); }
.rkf-local-actions a:hover::after{ transform:translateX(4px); }

/* ---- 13. お問い合わせCTA ---- */
.rkf-contact{ text-align:center; max-width:760px; margin:0 auto; }
.rkf-contact .rkf-en{ display:inline-block; font-family:var(--font-en); font-weight:700; letter-spacing:.2em; font-size:12px; color:var(--brand); margin-bottom:14px; text-transform:uppercase; }
.rkf-contact h2{ margin:0 0 18px; font-family:var(--font-jp); font-weight:900; font-size:clamp(1.7rem,3.2vw,2.4rem); letter-spacing:.04em; color:var(--ink); }
.rkf-contact .rkf-lead{ margin:0 auto 8px; max-width:600px; color:var(--ink-2); font-size:1rem; line-height:1.88; font-weight:500; }
.rkf-contact .rkf-note{ margin:8px auto 28px; color:var(--muted); font-size:.86rem; line-height:1.8; }
.rkf-contact a.rkf-btn-primary{ display:inline-flex; align-items:center; gap:.6em; padding:17px 40px; border-radius:999px; background:var(--grad-warm); color:#fff; font-weight:700; font-size:1rem; text-decoration:none; box-shadow:0 16px 30px -14px rgba(245,88,56,.5); transition:transform .35s var(--ease), filter .35s; }
.rkf-contact a.rkf-btn-primary::after{ content:"→"; transition:transform .35s var(--ease); }
.rkf-contact a.rkf-btn-primary:hover{ transform:translateY(-3px); filter:brightness(1.05); }
.rkf-contact a.rkf-btn-primary:hover::after{ transform:translateX(5px); }

/* ---- v2 responsive ---- */
@media (max-width:900px){
  .rkf-tech-grid{ grid-template-columns:1fr; }
  .rkf-strength-grid{ grid-template-columns:repeat(2,1fr); }
  .rkf-message{ grid-template-columns:1fr; }
  .rkf-message-photo{ max-width:360px; margin:0 auto; aspect-ratio:5/4; }
  .rkf-local{ grid-template-columns:1fr; }
  .rkf-local-map{ order:-1; min-height:280px; }
  .rkf-local-map iframe{ min-height:280px; }
  #index_content_builder .rkfl-stats{ grid-template-columns:repeat(2,1fr); }
  #index_content_builder .rkfl-stats .rkfl-stat{ border-right:1px solid var(--line-2); border-bottom:1px solid var(--line-2); }
  #index_content_builder .rkfl-stats .rkfl-stat:nth-child(3n){ border-right:1px solid var(--line-2); }
  #index_content_builder .rkfl-stats .rkfl-stat:nth-child(2n){ border-right:none; }
  #index_content_builder .rkfl-stats .rkfl-stat:nth-last-child(-n+3){ border-bottom:1px solid var(--line-2); }
  #index_content_builder .rkfl-stats .rkfl-stat:nth-last-child(-n+2){ border-bottom:none; }
}
@media (max-width:600px){
  .rkf-strength-grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; }
}

/* ============================================================
   INNER PAGES (page.php) — header fallback + content polish
   ============================================================ */
#page_header{
  position:relative; overflow:hidden;
  min-height:clamp(220px,30vw,360px); display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(90% 120% at 88% 0%, rgba(245,88,56,.18), transparent 55%),
    radial-gradient(80% 120% at 0% 100%, rgba(63,165,245,.12), transparent 60%),
    linear-gradient(160deg,#1F2228 0%,#17150F 100%);
}
#page_header::after{
  content:"RAKUFUL"; position:absolute; right:-1vw; bottom:-2.6vw; z-index:1;
  font-family:var(--font-en); font-weight:800; font-size:16vw; line-height:.8; letter-spacing:-.02em;
  color:rgba(255,255,255,.045); pointer-events:none; white-space:nowrap;
}
#page_header .bg_image{ z-index:2; }
#page_header .overlay{ z-index:3; }
#page_header #page_header_inner{ position:relative; z-index:4; text-align:center; padding:96px clamp(20px,5vw,40px) 34px; }
#page_header #page_header_inner h1.catch{
  font-family:var(--font-jp); font-weight:900; color:#fff;
  font-size:clamp(1.8rem,4.5vw,3rem); letter-spacing:.05em; line-height:1.3; margin:0;
}
#page_header #page_header_inner .sub_title{
  color:#fff; font-family:var(--font-en); font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  margin:14px 0 0; font-size:.8rem; opacity:.85;
}

#page_content{ background:var(--paper); padding-top:0 !important; padding-bottom:0 !important; }  /* テーマ既定140/150pxを解除し余白は.post_contentへ集約 */
#page_content .post_content{
  max-width:1080px; margin:0 auto; padding:clamp(40px,5vw,64px) clamp(24px,5vw,56px) clamp(56px,7vw,88px);
  color:var(--ink-2); font-size:1rem; line-height:1.88;
}
#page_content .post_content > *:first-child{ margin-top:0; }
#page_content .post_content h2{
  font-family:var(--font-jp); font-weight:900; color:var(--ink);
  font-size:clamp(1.5rem,3vw,2rem); letter-spacing:.03em; line-height:1.45;
  margin:clamp(48px,6vw,72px) 0 24px; padding-bottom:16px; border-bottom:1px solid var(--line); position:relative;
}
#page_content .post_content h2::after{ content:""; position:absolute; left:0; bottom:-1px; width:64px; height:3px; background:var(--grad-warm); }
#page_content .post_content h3{
  font-family:var(--font-jp); font-weight:700; color:var(--ink);
  font-size:clamp(1.15rem,2.2vw,1.4rem); margin:36px 0 14px; padding-left:14px; border-left:4px solid var(--brand);
}
#page_content .post_content h4{ font-weight:700; color:var(--ink); font-size:1.08rem; margin:28px 0 10px; }
#page_content .post_content p{ margin:0 0 1.5em; }
#page_content .post_content a{ color:var(--brand-deep); text-decoration:underline; text-underline-offset:3px; }
#page_content .post_content a:hover{ color:var(--brand); }
#page_content .post_content ul,#page_content .post_content ol{ margin:0 0 1.6em; padding-left:1.4em; }
#page_content .post_content li{ margin:0 0 .6em; }
#page_content .post_content ul li{ list-style:none; position:relative; padding-left:1.2em; }
#page_content .post_content ul li::before{ content:""; position:absolute; left:0; top:.72em; width:7px; height:7px; border-radius:50%; background:var(--brand); }
#page_content .post_content table{ width:100%; border-collapse:separate; border-spacing:0; margin:2em 0; font-size:.95rem; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 12px 32px -26px rgba(30,58,91,.42); }
#page_content .post_content th,#page_content .post_content td{ text-align:left; padding:15px 20px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.72; }
#page_content .post_content thead th{ color:var(--ink); font-weight:700; background:var(--paper-2); letter-spacing:.02em; }
#page_content .post_content thead th:not(:last-child),#page_content .post_content tbody td:not(:last-child){ border-right:1px solid var(--line); }
#page_content .post_content tbody tr:last-child > *{ border-bottom:none; }
#page_content .post_content .wp-block-buttons{ display:flex; flex-wrap:wrap; gap:14px; margin:2em 0; }
#page_content .post_content .wp-block-button__link{
  display:inline-flex; align-items:center; gap:.5em; background:var(--grad-warm); color:#fff !important; text-decoration:none !important;
  padding:14px 32px; border-radius:999px; font-weight:700; transition:transform .35s var(--ease), filter .35s;
}
#page_content .post_content .wp-block-button__link:hover{ transform:translateY(-2px); filter:brightness(1.05); }
#page_content .post_content blockquote{ border-left:4px solid var(--brand); padding:6px 0 6px 24px; margin:0 0 1.6em; color:var(--ink); }
#page_content .post_content .wp-block-columns{ display:flex; gap:clamp(20px,3vw,40px); flex-wrap:wrap; margin:0 0 2em; }
#page_content .post_content .wp-block-column{ flex:1 1 240px; }
@media (max-width:680px){
  #page_content .post_content table,#page_content .post_content tbody,#page_content .post_content tr,#page_content .post_content th,#page_content .post_content td{ display:block; width:auto; }
  #page_content .post_content tr{ padding:10px 0; border-bottom:1px solid var(--line); }
  #page_content .post_content th{ border:none; padding:0 0 4px; background:none; }
  #page_content .post_content td{ border:none; padding:0; }
}

/* ===== 記事(news/blog単一)本文デザイン：固定ページ用 #page_content が無いため body.single で対象化 ===== */
body.single #news_single,
body.single #article,
body.single .post_content{ width:auto !important; max-width:1120px !important; margin-left:auto !important; margin-right:auto !important; }
body.single .post_content{ padding:clamp(8px,2vw,20px) clamp(16px,3vw,40px) clamp(40px,5vw,64px) !important; color:var(--ink-2); font-size:1.02rem; line-height:1.9; }
/* 日本語の改行を文節単位に（テーマの word-break:break-all による単語分断を解消） */
body.single .post_content,
body.single .post_content p,
body.single .post_content li,
body.single .post_content th,
body.single .post_content td,
body.single .post_content h2,
body.single .post_content h3,
body.single .post_content h4{ word-break:auto-phrase !important; line-break:strict !important; text-wrap:pretty; overflow-wrap:break-word; }
body.single .post_content > *:first-child{ margin-top:0; }
body.single .post_content h2{ font-family:var(--font-jp); font-weight:900; color:var(--ink); font-size:clamp(1.4rem,2.6vw,1.9rem); letter-spacing:.02em; line-height:1.5; margin:clamp(44px,5vw,64px) 0 22px; padding-bottom:14px; border-bottom:1px solid var(--line); position:relative; }
body.single .post_content h2::after{ content:""; position:absolute; left:0; bottom:-1px; width:60px; height:3px; background:var(--grad-warm); }
body.single .post_content h3{ font-family:var(--font-jp); font-weight:700; color:var(--ink); font-size:clamp(1.12rem,2vw,1.34rem); margin:34px 0 12px; padding-left:14px; border-left:4px solid var(--brand); }
body.single .post_content h4{ font-weight:700; color:var(--ink); font-size:1.06rem; margin:26px 0 10px; }
body.single .post_content p{ margin:0 0 1.5em; }
body.single .post_content a{ color:var(--brand-deep); text-decoration:underline; text-underline-offset:3px; }
body.single .post_content a:hover{ color:var(--brand); }
body.single .post_content ul,body.single .post_content ol{ margin:0 0 1.6em; padding-left:1.4em; }
body.single .post_content li{ margin:0 0 .6em; }
body.single .post_content ul li{ list-style:none; position:relative; padding-left:1.2em; }
body.single .post_content ul li::before{ content:""; position:absolute; left:0; top:.72em; width:7px; height:7px; border-radius:50%; background:var(--brand); }
body.single .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:0 12px 32px -26px rgba(30,58,91,.42); }
body.single .post_content th,body.single .post_content td{ text-align:left; padding:15px 20px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.72; }
body.single .post_content thead th{ color:var(--ink); font-weight:700; background:var(--paper-2); letter-spacing:.02em; }
body.single .post_content thead th:not(:last-child),body.single .post_content tbody td:not(:last-child){ border-right:1px solid var(--line); }
body.single .post_content tbody tr:last-child > *{ border-bottom:none; }
body.single .post_content blockquote{ border-left:4px solid var(--brand); padding:6px 0 6px 24px; margin:0 0 1.6em; color:var(--ink); background:none; }
body.single .post_content blockquote:before,body.single .post_content blockquote:after{ content:none !important; }
@media (max-width:680px){
  body.single .post_content table{ display:block; overflow-x:auto; }
}
