@charset "utf-8";
/* =========================================================
   RAFUCAL コーポレートサイト  v2「熱量」デザイン
   採用サイト(rafucal-recruit.jp)のトーンに寄せた黒基調×鮮烈赤
   style-neo.css  —  既存 style.css とは独立
   ========================================================= */

:root{
  --bg:        #1b1417;   /* 暖チャコール（赤すぎず黒すぎず） */
  --bg-soft:   #271b1f;   /* ひとつ明るい暖トーン */
  --ink:       #f6f2ef;   /* 暗地の上の文字 */
  --dim:       #b39c99;
  --red:       #e8102e;   /* 主役の赤 */
  --red-hot:   #ff2743;
  --red-deep:  #8f0a20;
  --line:      rgba(255,72,95,.24);
  --container: min(1200px, 90vw);
  --font-jp:   "Noto Sans JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", sans-serif;
  --font-en:   "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --font-disp-jp: "Dela Gothic One", "Noto Sans JP", sans-serif;  /* 見出し用・超極太 */
  --font-disp-en: "Anton", "Montserrat", sans-serif;              /* 見出し用・英字コンデンス */
  --ease:      cubic-bezier(.16,.84,.44,1);
}

/* ---------- reset ---------- */
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font-jp);
  color:var(--ink);
  background:var(--bg);
  line-height:1.9;
  font-weight:500;
  overflow-x:hidden;
  letter-spacing:.02em;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
.en{ font-family:var(--font-en); font-weight:900; letter-spacing:.05em; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.wrap{ width:var(--container); margin-inline:auto; }
::selection{ background:var(--red); color:#fff; }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(44px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.1s; } .reveal.d2{ transition-delay:.2s; }
.reveal.d3{ transition-delay:.3s; } .reveal.d4{ transition-delay:.4s; }

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100; height:74px;
  display:flex; align-items:center;
  transition:background .4s var(--ease), box-shadow .4s;
}
.site-header.scrolled{ background:rgba(12,10,9,.92); backdrop-filter:blur(8px); box-shadow:0 1px 0 var(--line); }
.site-header .header__inner{ width:var(--container); margin-inline:auto; display:flex; align-items:center; justify-content:space-between; }
.logo a{ display:flex; align-items:center; gap:10px; }
.logo-mark{ width:34px; height:34px; object-fit:contain; filter:brightness(0) invert(1); }
.logo-text{ font-weight:900; font-size:17px; color:#fff; letter-spacing:.05em; }

.gnav ul{ display:flex; align-items:center; gap:24px; }
.gnav a{ position:relative; font-family:var(--font-en); font-weight:800; font-size:12.5px; letter-spacing:.14em; color:#fff; padding:6px 0; }
.gnav a .jp{ display:block; font-family:var(--font-jp); font-weight:700; font-size:10px; color:var(--dim); letter-spacing:.1em; line-height:1.1; }
.gnav a::after{ content:""; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:var(--red); transition:width .3s var(--ease); }
.gnav a:hover::after{ width:100%; }
.gnav a.is-cta{ background:var(--red); padding:10px 20px; border-radius:2px; }
.gnav a.is-cta::after{ display:none; }
.gnav a.is-cta:hover{ background:var(--red-hot); }

/* 外部リンク（採用サイト）は枠＋↗で差別化 */
.gnav a.is-external{ display:inline-flex; align-items:center; gap:8px; border:1.5px solid rgba(255,255,255,.5); padding:9px 16px; border-radius:999px; }
.gnav a.is-external::after{ content:"↗"; position:static; width:auto; height:auto; background:none; color:var(--red-hot); font-size:13px; transition:none; }
.gnav a.is-external:hover{ border-color:var(--red-hot); color:var(--red-hot); }

.nav-toggle{ display:none; }
.hamburger{ display:none; }

/* =========================================================
   Hero
   ========================================================= */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; }
.hero__bg{ position:absolute; inset:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; filter:contrast(1.05) brightness(.78) saturate(1.04); }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(22,17,19,.93) 0%, rgba(30,21,24,.58) 45%, rgba(90,12,26,.28) 75%, rgba(190,16,42,.3) 100%),
    linear-gradient(0deg, var(--bg) 2%, transparent 40%);
}
/* 赤の斜めスラッシュ */
.hero__slash{ position:absolute; top:-10%; right:-24%; width:70%; height:130%; background:linear-gradient(135deg, var(--red) 0%, var(--red-deep) 100%); transform:skewX(-16deg); opacity:.32; mix-blend-mode:screen; }

.hero__inner{ position:relative; z-index:2; width:var(--container); margin-inline:auto; padding-bottom:150px; }
.hero .eyebrow{
  font-family:var(--font-en); font-weight:800; font-size:clamp(11px,1.3vw,14px); letter-spacing:.34em;
  color:#ffd7dd; text-transform:uppercase; margin-bottom:20px;
  display:flex; align-items:center; gap:14px;
}
.hero .eyebrow::before{ content:""; width:52px; height:2px; background:#fff; }
.hero .title{
  font-weight:900; font-size:clamp(42px, 9.2vw, 122px); line-height:1.08; letter-spacing:.005em; color:#fff;
}
.hero .title .mark{
  background:linear-gradient(transparent 62%, var(--red) 62%);
}
.hero .title .period{ color:var(--red-hot); }
.hero .subcopy{ margin-top:26px; max-width:34em; font-size:clamp(14px,1.6vw,17px); font-weight:600; color:#d8d2ce; }
.hero__cta{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }

.btn{
  position:relative; display:inline-flex; align-items:center; gap:12px;
  font-weight:900; font-size:15px; letter-spacing:.06em;
  padding:17px 34px; border-radius:2px; overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s, color .3s;
}
.btn .arw{ transition:transform .3s var(--ease); }
.btn:hover .arw{ transform:translateX(6px); }
.btn--red{ background:var(--red); color:#fff; box-shadow:0 12px 34px rgba(232,16,46,.35); }
.btn--red:hover{ transform:translateY(-3px); background:var(--red-hot); box-shadow:0 18px 44px rgba(232,16,46,.5); }
.btn--line{ border:2px solid rgba(255,255,255,.5); color:#fff; }
.btn--line:hover{ border-color:var(--red-hot); color:var(--red-hot); transform:translateY(-3px); }

.scroll-cue{ position:absolute; z-index:3; right:4.5vw; bottom:44px; display:flex; flex-direction:column; align-items:center; gap:10px; color:#fff; }
.scroll-cue .label{ writing-mode:vertical-rl; font-family:var(--font-en); font-weight:700; font-size:10px; letter-spacing:.34em; }
.scroll-cue .line{ width:1px; height:62px; background:rgba(255,255,255,.3); position:relative; overflow:hidden; }
.scroll-cue .line::after{ content:""; position:absolute; top:-62px; left:0; width:100%; height:62px; background:var(--red-hot); animation:cue 2s var(--ease) infinite; }
@keyframes cue{ 0%{ top:-62px; } 60%,100%{ top:62px; } }

/* =========================================================
   斜めマーキー（赤帯）
   ========================================================= */
.marquee{
  position:relative; z-index:5; background:var(--red); padding:16px 0;
  transform:rotate(-2.2deg) scale(1.06); transform-origin:center;
  box-shadow:0 20px 60px rgba(232,16,46,.3);
  overflow:hidden; margin:-34px 0 0;
}
.marquee__track{ display:flex; gap:52px; width:max-content; animation:marquee 22s linear infinite; }
.marquee__track span{
  font-family:var(--font-en); font-weight:900; font-size:clamp(16px,2.2vw,24px); letter-spacing:.16em;
  text-transform:uppercase; color:#fff; white-space:nowrap;
}
.marquee__track span:nth-child(even){ color:transparent; -webkit-text-stroke:1.4px rgba(255,255,255,.9); }
.marquee__track span::after{ content:"—"; margin-left:52px; color:rgba(255,255,255,.5); }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* =========================================================
   Section 共通（番号付き見出し）
   ========================================================= */
.section{ position:relative; padding:clamp(90px,12vw,170px) 0; }
.sec-head{ position:relative; display:flex; align-items:baseline; gap:22px; margin-bottom:56px; flex-wrap:wrap; }
.sec-head .num{
  font-family:var(--font-en); font-weight:900; font-size:clamp(52px,7vw,96px); line-height:.9;
  color:transparent; -webkit-text-stroke:1.6px var(--red); letter-spacing:0;
}
.sec-head .labels .en-l{
  display:block; font-family:var(--font-en); font-weight:900; font-size:clamp(26px,3.8vw,46px);
  line-height:1; letter-spacing:.04em; color:#fff; text-transform:uppercase;
}
.sec-head .labels .jp-l{
  display:inline-flex; align-items:center; gap:10px; margin-top:12px;
  font-weight:800; font-size:14px; color:var(--dim); letter-spacing:.18em;
}
.sec-head .labels .jp-l::before{ content:""; width:26px; height:2px; background:var(--red); }
.sec-lead{ color:#cfc8c3; font-size:clamp(14px,1.6vw,16px); max-width:42em; }

/* 背景の巨大アウトライン英字 */
.ghost{
  position:absolute; z-index:0; font-family:var(--font-en); font-weight:900;
  font-size:clamp(110px,22vw,300px); line-height:.8; letter-spacing:.01em;
  color:transparent; -webkit-text-stroke:1px rgba(255,39,67,.16);
  pointer-events:none; user-select:none; white-space:nowrap;
}

/* =========================================================
   01 MISSION
   ========================================================= */
.mission{ background:radial-gradient(70% 55% at 90% 15%, rgba(232,16,46,.1), transparent 65%), var(--bg); }
.mission .ghost{ right:-3vw; top:40px; }
.mission__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(34px,5vw,72px); align-items:center; }
.mission__copy h3{
  font-weight:900; font-size:clamp(26px,4.4vw,52px); line-height:1.35; color:#fff; margin-bottom:26px;
}
.mission__copy h3 .red{ color:var(--red-hot); }
.mission__copy p{ color:#cfc8c3; max-width:36em; }
.mission__links{ display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.tag-link{
  display:inline-flex; align-items:center; gap:8px; font-weight:800; font-size:14px;
  padding:12px 22px; border:1px solid var(--line); border-radius:2px; color:#fff;
  transition:.3s var(--ease);
}
.tag-link::after{ content:"→"; color:var(--red-hot); transition:transform .3s; }
.tag-link:hover{ background:var(--red); border-color:var(--red); transform:translateY(-3px); }
.tag-link:hover::after{ color:#fff; transform:translateX(4px); }
.mission__photo{ position:relative; }
.mission__photo img{ width:100%; aspect-ratio:4/3.4; object-fit:cover; filter:saturate(1.04) contrast(1.03); transition:filter .7s var(--ease), transform .9s var(--ease); }
.mission__photo:hover img{ filter:saturate(1.2); transform:scale(1.02); }
.mission__photo::before{ content:""; position:absolute; right:-16px; bottom:-16px; width:100%; height:100%; border:2px solid var(--red); z-index:-1; }

/* =========================================================
   02 BUSINESS（フルブリード行）
   ========================================================= */
.business{ background:radial-gradient(90% 70% at 8% 10%, rgba(232,16,46,.12), transparent 62%), var(--bg-soft); }
.business .ghost{ left:-2vw; top:30px; }
.biz-rows{ position:relative; z-index:1; border-top:1px solid var(--line); }
.biz-row{
  position:relative; display:grid; grid-template-columns:110px 1fr auto; gap:26px; align-items:center;
  padding:44px 10px; border-bottom:1px solid var(--line); overflow:hidden; isolation:isolate;
}
.biz-row__img{ position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .5s var(--ease); }
.biz-row__img img{ width:100%; height:100%; object-fit:cover; filter:brightness(.5) saturate(1.15); }
.biz-row__img::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(120,8,26,.8) 0%, rgba(24,6,8,.55) 100%); }
.biz-row:hover .biz-row__img{ opacity:1; }
.biz-row__num{ font-family:var(--font-en); font-weight:900; font-size:44px; color:transparent; -webkit-text-stroke:1.3px rgba(255,255,255,.4); transition:.3s; }
.biz-row:hover .biz-row__num{ -webkit-text-stroke-color:var(--red-hot); }
.biz-row__ttl{ display:flex; flex-direction:column; gap:4px; }
.biz-row__ttl .jp{ font-weight:900; font-size:clamp(22px,3.2vw,34px); color:#fff; }
.biz-row__ttl .en{ font-size:12px; letter-spacing:.24em; color:var(--red-hot); text-transform:uppercase; }
.biz-row__desc{ grid-column:2; color:#cfc8c3; font-size:14px; max-width:46em; margin-top:2px; }
.biz-row__arw{
  grid-row:1 / span 2; grid-column:3;
  width:58px; height:58px; border-radius:50%; border:1px solid rgba(255,255,255,.35);
  display:grid; place-items:center; font-size:18px; color:#fff; transition:.35s var(--ease);
}
.biz-row:hover .biz-row__arw{ background:var(--red); border-color:var(--red); transform:translateX(6px); }

/* =========================================================
   数字・実績帯
   ========================================================= */
.fact{ background:var(--red); color:#fff; padding:clamp(56px,7vw,84px) 0; position:relative; overflow:hidden; }
.fact::before{
  content:"RAFUCAL"; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  font-family:var(--font-en); font-weight:900; font-size:clamp(130px,26vw,360px); letter-spacing:.02em;
  color:rgba(255,255,255,.07); line-height:1; white-space:nowrap;
}
.fact__inner{ position:relative; z-index:1; display:flex; align-items:center; justify-content:center; text-align:center; }
.fact__copy{ font-weight:900; font-size:clamp(26px,4.2vw,48px); line-height:1.5; }
.fact__sub{ display:block; font-size:clamp(13px,1.7vw,17px); font-weight:700; margin-top:14px; opacity:.92; letter-spacing:.08em; }

/* =========================================================
   03 PEOPLE
   ========================================================= */
.people{ background:radial-gradient(80% 60% at 12% 88%, rgba(232,16,46,.09), transparent 60%), var(--bg); }
.people .ghost{ right:-4vw; bottom:60px; }
.people-grid{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pcard{ position:relative; aspect-ratio:3/4.1; overflow:hidden; }
.pcard img{ width:100%; height:100%; object-fit:cover; filter:saturate(1.04) contrast(1.02); transition:filter .6s var(--ease), transform .9s var(--ease); }
.pcard:hover img{ filter:saturate(1.3); transform:scale(1.06); }
.pcard::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(105,7,23,.92) 0%, rgba(24,6,8,.25) 55%, transparent 78%); }
.pcard__meta{ position:absolute; z-index:2; left:0; bottom:0; padding:22px; width:100%; }
.pcard__label{ font-family:var(--font-en); font-weight:900; font-size:11px; letter-spacing:.26em; color:var(--red-hot); text-transform:uppercase; }
.pcard__name{ font-weight:900; font-size:clamp(22px,2.6vw,30px); color:#fff; line-height:1.3; }
.pcard__role{ font-size:12.5px; font-weight:700; color:var(--dim); }
.pcard__bar{ position:absolute; z-index:2; left:0; top:0; width:4px; height:0; background:var(--red); transition:height .5s var(--ease); }
.pcard:hover .pcard__bar{ height:100%; }

/* =========================================================
   04 NEWS & COLUMN
   ========================================================= */
.stories{ background:radial-gradient(85% 65% at 92% 85%, rgba(232,16,46,.1), transparent 62%), var(--bg-soft); }
.stories__cols{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); }
.stories h4.sub{
  display:flex; align-items:baseline; gap:14px; margin-bottom:26px;
  font-family:var(--font-en); font-weight:900; font-size:24px; color:#fff; letter-spacing:.05em;
}
.stories h4.sub .jp{ font-family:var(--font-jp); font-size:12px; color:var(--dim); letter-spacing:.2em; font-weight:700; }
.s-list{ border-top:1px solid var(--line); }
.s-item{ display:block; padding:20px 4px; border-bottom:1px solid var(--line); transition:.3s; }
.s-item time{ font-family:var(--font-en); font-weight:800; font-size:12.5px; color:var(--red-hot); letter-spacing:.08em; }
.s-item .t{ display:block; font-weight:700; font-size:15px; color:#e9e4e0; margin-top:4px; transition:color .3s; }
.s-item:hover{ padding-left:14px; }
.s-item:hover .t{ color:var(--red-hot); }
.s-more{ display:inline-flex; align-items:center; gap:10px; margin-top:22px; font-family:var(--font-en); font-weight:900; font-size:13px; letter-spacing:.18em; color:#fff; }
.s-more::after{ content:"→"; color:var(--red-hot); transition:transform .3s; }
.s-more:hover::after{ transform:translateX(6px); }

/* =========================================================
   05 RECRUIT（フルブリード）
   ========================================================= */
.recruit{ position:relative; overflow:hidden; padding:clamp(110px,15vw,200px) 0; }
.recruit__bg{ position:absolute; inset:0; }
.recruit__bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.62) saturate(1.05); }
.recruit__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(143,10,32,.78) 0%, rgba(150,10,30,.35) 55%, rgba(24,6,8,.72) 100%); }
.recruit__inner{ position:relative; z-index:2; }
.recruit .join{
  font-family:var(--font-en); font-weight:900; font-size:clamp(56px,12vw,150px); line-height:.92; letter-spacing:.01em;
  color:transparent; -webkit-text-stroke:1.6px rgba(255,255,255,.85);
}
.recruit .join .fill{ color:#fff; -webkit-text-stroke:0; }
.recruit h2{ margin-top:26px; font-weight:900; font-size:clamp(22px,3.4vw,40px); color:#fff; line-height:1.5; }
.recruit p{ margin-top:16px; max-width:38em; color:rgba(255,255,255,.92); font-weight:600; }
.recruit .btn{ margin-top:36px; background:#fff; color:var(--red-deep); }
.recruit .btn:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(0,0,0,.3); }

/* =========================================================
   Contact
   ========================================================= */
.contact{ background:linear-gradient(120deg, #2e1d22 0%, #1b1417 62%); border-top:1px solid var(--line); }
.contact__wrap{ display:grid; grid-template-columns:auto 1px 1fr auto; gap:clamp(26px,4vw,54px); align-items:center; padding:clamp(46px,6vw,70px) 0; }
.contact__head .en-l{ font-family:var(--font-en); font-weight:900; font-size:30px; color:#fff; letter-spacing:.04em; }
.contact__head .jp-l{ font-size:12px; font-weight:700; color:var(--dim); letter-spacing:.2em; }
.contact__vline{ width:1px; height:70px; background:var(--line); }
.contact__phone .tel{ font-family:var(--font-en); font-weight:900; font-size:clamp(28px,4vw,44px); color:#fff; }
.contact__phone .tel i{ color:var(--red-hot); font-size:.55em; margin-right:12px; }
.contact__phone .hours{ font-size:12.5px; color:var(--dim); }

/* =========================================================
   SNS / Award / Footer
   ========================================================= */
.sns{ background:var(--bg); padding:10px 0 60px; text-align:center; }
.sns a{ display:inline-grid; place-items:center; width:54px; height:54px; margin:0 7px; border-radius:50%; border:1px solid var(--line); font-size:20px; color:#fff; transition:.3s var(--ease); }
.sns a:hover{ background:var(--red); border-color:var(--red); transform:translateY(-4px); }
.award{ background:var(--bg); padding:90px 0 100px; }
.award__wrap{ display:grid; grid-template-columns:280px 1fr; gap:28px; align-items:center; }
.award__note{ font-size:12px; color:var(--dim); line-height:1.9; }

.footer{ background:#161013; padding:70px 0 34px; border-top:1px solid var(--line); }
.footer__top{ display:flex; justify-content:space-between; gap:44px; flex-wrap:wrap; align-items:flex-start; }
.footer__brand img{ width:90px; }
.footer__nav{ display:grid; grid-template-columns:repeat(4,auto); gap:44px; }
.fcol h3{ font-family:var(--font-en); font-weight:900; font-size:13px; letter-spacing:.12em; color:#fff; }
.fcol .jp{ font-size:11px; color:var(--dim); margin:2px 0 12px; }
.fcol li a{ font-size:13px; color:#bdb5b0; line-height:2.1; transition:color .3s; }
.fcol li a:hover{ color:var(--red-hot); }
.footer__bottom{ margin-top:46px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.footer__bottom a{ font-size:13px; color:#bdb5b0; }
.footer__bottom a:hover{ color:var(--red-hot); }
.footer__bottom small{ font-family:var(--font-en); font-size:12px; color:#6b625d; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:900px){
  .mission__grid, .stories__cols{ grid-template-columns:1fr; }
  .people-grid{ grid-template-columns:repeat(2,1fr); }
  .contact__wrap{ grid-template-columns:1fr; text-align:center; justify-items:center; }
  .contact__vline{ display:none; }
  .footer__nav{ grid-template-columns:repeat(2,auto); gap:28px; }
  .mission__photo{ order:-1; }
  .biz-row{ grid-template-columns:70px 1fr; }
  .biz-row__arw{ display:none; }
  .biz-row__num{ font-size:32px; }
}
@media (max-width:680px){
  .gnav{ position:fixed; inset:0 0 0 auto; width:min(82vw,330px); background:#0c0a09; height:100vh; padding:100px 34px; transform:translateX(100%); transition:transform .4s var(--ease); border-left:1px solid var(--line); z-index:110; }
  .gnav ul{ flex-direction:column; align-items:flex-start; gap:24px; }
  .gnav a{ font-size:15px; }
  .nav-toggle:checked ~ .gnav{ transform:none; }
  .hamburger{ display:flex; flex-direction:column; justify-content:center; gap:6px; width:44px; height:44px; z-index:120; cursor:pointer; }
  .hamburger span{ display:block; width:26px; height:2px; background:#fff; margin-inline:auto; transition:.3s var(--ease); }
  .nav-toggle:checked ~ .hamburger span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
  .nav-toggle:checked ~ .hamburger span:nth-child(2){ opacity:0; }
  .nav-toggle:checked ~ .hamburger span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
  .gnav a.is-external{ border-color:rgba(255,255,255,.35); }
  .people-grid{ grid-template-columns:1fr; }
  .award__wrap{ grid-template-columns:1fr; }
  .footer__top{ flex-direction:column; }
  .hero__inner{ padding-bottom:120px; }
}

/* =========================================================
   演出強化（オープニング・文字・カーテン・カーソル等）
   ========================================================= */

/* ---------- Intro loader ---------- */
.loader{
  position:fixed; inset:0; z-index:300; background:var(--bg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  transition:transform .85s cubic-bezier(.76,0,.24,1) .15s;
}
.loader.done{ transform:translateY(-101%); }
.loader.skip{ display:none; }
.loader__logo{
  font-family:var(--font-en); font-weight:900; font-size:clamp(40px,8vw,84px);
  color:#fff; letter-spacing:.05em; display:flex; overflow:hidden; line-height:1.1;
}
.loader__logo .lch{ display:inline-block; transform:translateY(120%); animation:lch-up .7s var(--ease) forwards; animation-delay:calc(var(--i) * .055s + .1s); }
.loader__logo .dot{ color:var(--red-hot); }
@keyframes lch-up{ to{ transform:none; } }
.loader__tag{
  font-family:var(--font-en); font-weight:800; font-size:11px; letter-spacing:.5em;
  color:var(--red-hot); text-transform:uppercase; opacity:0; animation:fade-in .6s .75s forwards;
}
.loader__bar{ width:min(280px,58vw); height:2px; background:rgba(255,72,95,.22); margin-top:28px; overflow:hidden; }
.loader__bar::after{ content:""; display:block; height:100%; background:var(--red); transform:scaleX(0); transform-origin:left; animation:ld-bar 1.15s .2s cubic-bezier(.6,.05,.3,1) forwards; }
@keyframes ld-bar{ to{ transform:scaleX(1); } }
@keyframes fade-in{ to{ opacity:1; } }

/* ---------- Hero: 文字ごとの跳ね上がり ---------- */
.hero .title .ch{ display:inline-block; opacity:0; transform:translateY(.65em) rotate(5deg); }
.hero.is-ready .title .ch{ animation:ch-up .8s var(--ease) forwards; animation-delay:calc(var(--i) * .042s + .05s); }
@keyframes ch-up{ to{ opacity:1; transform:none; } }
/* 赤マーカーは文字の後から走る */
.hero .title .mark{ background:linear-gradient(transparent 62%, var(--red) 62%) left center / 0% 100% no-repeat; transition:background-size .7s cubic-bezier(.6,.05,.3,1) 1.05s; }
.hero.is-ready .title .mark{ background-size:100% 100%; }
/* 周辺要素は時間差フェード */
.hero .eyebrow, .hero .subcopy, .hero__cta, .hero .scroll-cue{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.hero.is-ready .eyebrow{ opacity:1; transform:none; transition-delay:.45s; }
.hero.is-ready .subcopy{ opacity:1; transform:none; transition-delay:.85s; }
.hero.is-ready .hero__cta{ opacity:1; transform:none; transition-delay:1.05s; }
.hero.is-ready .scroll-cue{ opacity:1; transform:none; transition-delay:1.4s; }

/* ---------- 写真のカーテンリビール ---------- */
.curtain{ position:relative; overflow:hidden; }
.curtain img{ transform:scale(1.15); transition:transform 1.25s var(--ease) .12s, filter .6s var(--ease); }
.curtain .curtain__panel{
  position:absolute; inset:-1px; z-index:6; background:var(--red);
  transform:scaleX(1); transform-origin:left; transition:transform .8s cubic-bezier(.76,0,.24,1) .05s;
}
.curtain.is-in img{ transform:scale(1); }
.curtain.is-in .curtain__panel{ transform:scaleX(0); transform-origin:right; }
/* ホバー時のズームを取り戻す */
.pcard.curtain.is-in:hover img{ transform:scale(1.06); }
.mission__photo:hover .curtain.is-in img{ transform:scale(1.03); }

/* ---------- カスタムカーソル ---------- */
.cursor{ display:none; }
@media (hover:hover) and (pointer:fine){
  .cursor{
    display:block; position:fixed; left:0; top:0; width:34px; height:34px;
    border:1.5px solid rgba(255,39,67,.9); border-radius:50%;
    pointer-events:none; z-index:400; margin:-17px 0 0 -17px;
    transition:width .3s var(--ease), height .3s var(--ease), margin .3s var(--ease), background-color .3s, opacity .3s;
  }
  .cursor::after{ content:""; position:absolute; left:50%; top:50%; width:4px; height:4px; border-radius:50%; background:var(--red-hot); transform:translate(-50%,-50%); }
  .cursor.on-link{ width:66px; height:66px; margin:-33px 0 0 -33px; background:rgba(232,16,46,.16); }
}

/* ---------- 読了プログレスバー ---------- */
.progress{
  position:fixed; left:0; top:0; z-index:350; width:100%; height:3px;
  background:linear-gradient(90deg, var(--red), var(--red-hot));
  transform:scaleX(0); transform-origin:left;
}

/* ---------- ボタンのシャイン ---------- */
.btn::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(110deg, transparent 25%, rgba(255,255,255,.34) 50%, transparent 75%);
  transform:translateX(-130%); transition:transform .65s var(--ease);
  pointer-events:none;
}
.btn:hover::before{ transform:translateX(130%); }

/* ---------- ゴースト文字・背景はJSでパララックス（transformはJS側で制御） ---------- */
.ghost, .hero__bg img, .recruit__bg img{ will-change:transform; }

/* =========================================================
   ディスプレイフォント（かっこいいデカ文字）
   ========================================================= */
.hero .title{
  font-family:var(--font-disp-jp); font-weight:400;
  font-size:clamp(38px, 8.6vw, 112px); line-height:1.18; letter-spacing:.01em;
}
.mission__copy h3, .fact__copy, .recruit h2, .biz-row__ttl .jp{
  font-family:var(--font-disp-jp); font-weight:400;
}
.fact__sub{ font-family:var(--font-jp); font-weight:700; }
.sec-head .num, .sec-head .labels .en-l, .ghost, .recruit .join,
.loader__logo, .marquee__track span, .stories h4.sub,
.contact__head .en-l, .contact__phone .tel{
  font-family:var(--font-disp-en); font-weight:400; letter-spacing:.05em;
}
.marquee__track span{ letter-spacing:.12em; }
.recruit .join{ letter-spacing:.03em; }

/* =========================================================
   セクション別アニメーション（飽き防止）
   ========================================================= */

/* --- 見出し：番号スライド＋英字ワイプ＋日本語フェード --- */
.sec-head .num{ opacity:0; transform:translateX(-36px); transition:opacity .8s var(--ease) .1s, transform .8s var(--ease) .1s; }
.sec-head.is-in .num{ opacity:1; transform:none; }
.sec-head .labels .en-l{ clip-path:inset(-5% 100% -5% 0); transition:clip-path .9s cubic-bezier(.76,0,.24,1) .3s; }
.sec-head.is-in .labels .en-l{ clip-path:inset(-5% -5% -5% 0); }
.sec-head .labels .jp-l{ opacity:0; transform:translateY(14px); transition:opacity .7s var(--ease) .6s, transform .7s var(--ease) .6s; }
.sec-head.is-in .labels .jp-l{ opacity:1; transform:none; }

/* --- BUSINESS：行が左から順に走り込む --- */
.biz-row{ opacity:0; transform:translateX(-64px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.biz-row.is-in{ opacity:1; transform:none; }
.biz-rows .biz-row:nth-child(2){ transition-delay:.14s; }
.biz-rows .biz-row:nth-child(3){ transition-delay:.28s; }

/* --- STORIES：1件ずつ右から流れ込む --- */
.s-item{ opacity:0; transform:translateX(48px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.s-item.is-in{ opacity:1; transform:none; }
.s-list .s-item:nth-child(2){ transition-delay:.12s; }
.s-list .s-item:nth-child(3){ transition-delay:.24s; }

/* --- 赤帯：背景の巨大文字がゆっくり漂う --- */
.fact::before{ animation:fact-drift 26s ease-in-out infinite alternate; }
@keyframes fact-drift{ from{ transform:translate(-56%,-50%); } to{ transform:translate(-44%,-50%); } }

/* --- RECRUIT：浮遊写真・流れる文字・脈打つボタン --- */
.recruit__marquee{ position:absolute; top:30px; left:0; width:100%; overflow:hidden; z-index:1; opacity:.55; pointer-events:none; }
.recruit__marquee .marquee__track span{ font-size:clamp(20px,3vw,36px); color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.55); }
.recruit__floats{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.rf-photo{
  position:absolute; width:clamp(120px,15vw,210px); aspect-ratio:3/4; object-fit:cover;
  border:5px solid #fff; box-shadow:0 24px 60px rgba(0,0,0,.4);
  opacity:0; transition:opacity 1.2s var(--ease);
}
.rf-photo.is-in{ opacity:1; }
.rf-p1{ right:6%; top:12%; rotate:7deg; animation:floaty 6s ease-in-out infinite; }
.rf-p2{ right:23%; top:40%; rotate:-5deg; animation:floaty 7.5s ease-in-out infinite reverse; transition-delay:.2s; }
.rf-p3{ right:9%; bottom:9%; rotate:-9deg; animation:floaty 8.5s ease-in-out infinite; transition-delay:.35s; }
@keyframes floaty{ 0%,100%{ translate:0 0; } 50%{ translate:0 -18px; } }
.recruit .btn{ animation:btn-pulse 2.8s ease-out infinite; }
@keyframes btn-pulse{
  0%{ box-shadow:0 0 0 0 rgba(255,255,255,.5); }
  70%{ box-shadow:0 0 0 20px rgba(255,255,255,0); }
  100%{ box-shadow:0 0 0 0 rgba(255,255,255,0); }
}
@media (max-width:900px){ .rf-p2{ display:none; } }
@media (max-width:680px){
  .rf-photo{ width:96px; border-width:3px; }
  .rf-p1{ right:4%; top:8%; }
  .rf-p3{ display:none; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .loader{ display:none; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .hero .title .ch{ opacity:1; transform:none; animation:none; }
  .hero .title .mark{ background-size:100% 100%; transition:none; }
  .hero .eyebrow, .hero .subcopy, .hero__cta, .hero .scroll-cue{ opacity:1; transform:none; transition:none; }
  .curtain img{ transform:none; transition:none; }
  .curtain .curtain__panel{ display:none; }
  .marquee__track{ animation:none; }
  .scroll-cue .line::after{ animation:none; }
  .cursor{ display:none; }
  .biz-row, .s-item, .rf-photo, .sec-head .num, .sec-head .labels .jp-l{ opacity:1; transform:none; transition:none; }
  .sec-head .labels .en-l{ clip-path:none; transition:none; }
  .rf-photo, .fact::before, .recruit .btn{ animation:none; }
  .entry, .value-item, .qa{ opacity:1; transform:none; transition:none; }
  .embers{ display:none; }
  .hero__slash{ animation:none; }
}

/* =========================================================
   下層ページ共通
   ========================================================= */
.subhero{
  position:relative; padding:190px 0 90px; overflow:hidden;
  background:radial-gradient(80% 90% at 85% 0%, rgba(232,16,46,.14), transparent 60%), var(--bg);
}
.subhero .ghost{ right:-3vw; top:70px; font-size:clamp(90px,17vw,230px); }
.subhero__crumbs{ position:relative; z-index:1; font-size:12px; color:var(--dim); letter-spacing:.08em; margin-bottom:28px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.subhero__crumbs a:hover{ color:var(--red-hot); }
.subhero__crumbs .sep{ color:var(--red); }
.subhero__en{
  position:relative; z-index:1; font-family:var(--font-disp-en); font-weight:400;
  font-size:clamp(40px,7.5vw,92px); line-height:1; color:#fff; letter-spacing:.04em; text-transform:uppercase;
}
.subhero__jp{
  position:relative; z-index:1; display:inline-flex; align-items:center; gap:12px; margin-top:16px;
  font-weight:900; font-size:clamp(15px,2vw,20px); color:var(--dim); letter-spacing:.14em;
}
.subhero__jp::before{ content:""; width:30px; height:3px; background-image:linear-gradient(150deg, #ff7a1c 0%, #ed1c24 45%, #9e0720 100%); border-radius:2px; }
.subhero__lead{ position:relative; z-index:1; margin-top:22px; color:#d8d0cc; max-width:44em; }

/* サブヒーロー右側の写真（斜めクリップ） */
.subhero__photo{ position:absolute; right:0; top:0; width:46%; height:100%; z-index:0; clip-path:polygon(16% 0, 100% 0, 100% 100%, 0 100%); }
.subhero__photo img{ width:100%; height:100%; object-fit:cover; }
.subhero__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, var(--bg) 2%, rgba(27,20,23,.42) 40%, rgba(232,16,46,.2) 100%); }

/* サブヒーロー下端の流れる英字 */
.subhero__ticker{ position:absolute; left:0; bottom:0; z-index:1; width:100%; overflow:hidden; padding:10px 0; border-top:1px solid var(--line); opacity:.65; pointer-events:none; }
.subhero__ticker .marquee__track span{ font-size:13px; letter-spacing:.3em; color:transparent; -webkit-text-stroke:.8px rgba(255,255,255,.5); }

/* サブナビ（セクション内リンク） */
.subnav{ position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:10px; margin-top:36px; }
.subnav a{ font-size:13.5px; font-weight:800; padding:10px 20px; border:1px solid var(--line); border-radius:999px; color:#eee; transition:.3s var(--ease); }
.subnav a:hover, .subnav a.is-current{ background:var(--red); border-color:var(--red); color:#fff; }

/* 本文レイアウト */
.page{ position:relative; padding:clamp(60px,8vw,110px) 0 clamp(80px,10vw,140px); overflow:hidden; }
.page--soft{ background:var(--bg-soft); }
.prose{ max-width:760px; margin-inline:auto; color:#e6dfdc; font-size:15.5px; }
.prose > * + *{ margin-top:1.4em; }
.prose h2{ font-weight:900; color:#fff; font-size:clamp(20px,2.6vw,28px); line-height:1.5; padding-left:18px; border-left:5px solid var(--red); margin-top:2.4em; }
.prose h3{ font-weight:900; color:#fff; font-size:clamp(17px,2.1vw,21px); margin-top:2em; }
.prose strong{ color:#fff; }
.prose img{ border-radius:12px; }
.prose ul, .prose ol{ padding-left:1.5em; }
.prose ul li{ list-style:disc; margin-top:.5em; }
.prose ol li{ list-style:decimal; margin-top:.5em; }
.prose a{ color:var(--red-hot); text-decoration:underline; }
.prose .lead{ font-size:clamp(16px,2vw,19px); font-weight:700; color:#fff; }
.signature{ text-align:right; margin-top:2.5em; }
.signature .pos{ font-size:13px; color:var(--dim); }
.signature .name{ font-weight:900; font-size:20px; color:#fff; }

/* 会社概要テーブル */
.info-table{ width:100%; max-width:760px; margin-inline:auto; border-collapse:collapse; }
.info-table th, .info-table td{ text-align:left; padding:18px 14px; border-bottom:1px solid var(--line); font-size:14.5px; vertical-align:top; line-height:1.9; }
.info-table th{ width:180px; color:var(--red-hot); font-weight:800; white-space:nowrap; }
.info-table td{ color:#e6dfdc; }

/* 数字付きバリューカード（理念・判断基準） */
.value-list{ display:grid; gap:18px; margin-top:44px; max-width:840px; margin-inline:auto; }
.value-item{
  position:relative; padding:26px 26px 26px 100px; border:1px solid var(--line); border-radius:14px;
  background:rgba(255,255,255,.02);
  opacity:0; transform:translateY(30px); transition:opacity .7s var(--ease), transform .7s var(--ease), border-color .3s;
}
.value-item.is-in{ opacity:1; transform:none; }
.value-item:hover{ border-color:var(--red); }
.value-item .v-num{ position:absolute; left:26px; top:20px; font-family:var(--font-disp-en); font-size:40px; line-height:1; color:transparent; -webkit-text-stroke:1.2px var(--red); }
.value-item h3{ font-weight:900; color:#fff; font-size:17px; }
.value-item p{ margin-top:6px; font-size:14px; color:#cfc6c2; }

/* 事業ページ：写真＋説明の交互レイアウト */
.feature{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,60px); align-items:center; margin-top:56px; }
.feature--rev{ direction:rtl; }
.feature--rev > *{ direction:ltr; }
.feature__photo{ border-radius:16px; overflow:hidden; box-shadow:0 20px 50px rgba(0,0,0,.3); }
.feature__photo img{ width:100%; aspect-ratio:16/11; object-fit:cover; transition:transform .8s var(--ease); }
.feature__photo:hover img{ transform:scale(1.05); }
.feature__body h3{ font-family:var(--font-disp-jp); font-weight:400; font-size:clamp(20px,2.6vw,28px); color:#fff; line-height:1.5; }
.feature__body p{ margin-top:14px; color:#d8d0cc; font-size:14.5px; }

/* ギャラリー */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:44px; }
.gallery img{ border-radius:10px; aspect-ratio:1/1; object-fit:cover; width:100%; transition:transform .6s var(--ease); }
.gallery img:hover{ transform:scale(1.04); }

/* お知らせ一覧 */
.entry-list{ max-width:840px; margin-inline:auto; border-top:1px solid var(--line); }
.entry{
  display:grid; grid-template-columns:120px auto 1fr auto; gap:18px; align-items:center;
  padding:24px 8px; border-bottom:1px solid var(--line);
  opacity:0; transform:translateX(40px); transition:opacity .6s var(--ease), transform .6s var(--ease), background .3s, padding .3s;
}
.entry.is-in{ opacity:1; transform:none; }
.entry time{ font-family:var(--font-en); font-weight:800; font-size:13px; color:var(--red-hot); }
.entry .cat{ font-size:11.5px; font-weight:800; color:var(--red); border:1px solid var(--red); border-radius:999px; padding:3px 12px; justify-self:start; }
.entry .t{ font-weight:700; color:#eee; }
.entry .arw{ color:var(--red); opacity:0; transition:.3s var(--ease); }
.entry:hover{ background:rgba(255,255,255,.03); padding-inline:16px; }
.entry:hover .arw{ opacity:1; }

/* コラムカード一覧 */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.c-card{ border-radius:14px; overflow:hidden; background:rgba(255,255,255,.03); border:1px solid var(--line); transition:.3s var(--ease); }
.c-card:hover{ transform:translateY(-5px); border-color:var(--red); }
.c-card img{ aspect-ratio:16/10; object-fit:cover; width:100%; }
.c-card__body{ padding:18px 20px 22px; }
.c-card__body time{ font-family:var(--font-en); font-weight:800; font-size:12px; color:var(--red-hot); }
.c-card__body h3{ margin-top:6px; font-weight:800; font-size:15.5px; color:#eee; line-height:1.6; }

/* 記事ページ */
.article-head{ max-width:760px; margin-inline:auto; }
.article-head .meta{ display:flex; gap:14px; align-items:center; }
.article-head time{ font-family:var(--font-en); font-weight:800; color:var(--red-hot); font-size:14px; }
.article-head .cat{ font-size:11.5px; font-weight:800; color:var(--red); border:1px solid var(--red); border-radius:999px; padding:3px 12px; }
.article-head h1{ margin-top:12px; font-weight:900; color:#fff; font-size:clamp(24px,3.4vw,36px); line-height:1.5; }
.article-hero{ max-width:760px; margin:36px auto 0; border-radius:14px; overflow:hidden; }
.article-hero img{ width:100%; }
.article-body{ margin-top:46px; }
.pager{ max-width:760px; margin:64px auto 0; display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }

/* インタビュー */
.iv-hero{ display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(28px,5vw,64px); align-items:center; max-width:1000px; margin-inline:auto; }
.iv-hero img{ border-radius:16px; aspect-ratio:3/4; object-fit:cover; width:100%; box-shadow:0 24px 60px rgba(0,0,0,.35); }
.iv-hero .role{ color:var(--red-hot); font-weight:800; font-size:13px; letter-spacing:.16em; }
.iv-hero h1{ font-family:var(--font-disp-jp); font-weight:400; color:#fff; font-size:clamp(24px,3.6vw,40px); margin-top:12px; line-height:1.5; }
.iv-hero .meta{ margin-top:14px; color:var(--dim); font-weight:700; }
.qa{
  max-width:760px; margin:56px auto 0;
  opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.qa.is-in{ opacity:1; transform:none; }
.qa .q{ display:flex; gap:14px; align-items:baseline; font-weight:900; color:#fff; font-size:clamp(17px,2.2vw,21px); line-height:1.6; }
.qa .q::before{ content:"Q."; font-family:var(--font-disp-en); color:var(--red-hot); font-size:1.35em; flex-shrink:0; }
.qa .a{ margin-top:14px; color:#e0d8d4; }
.iv-others{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1000px; margin:80px auto 0; }

/* 実績の巨大数字カード */
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; max-width:1000px; margin:50px auto 0; }
.stat{ border:1px solid var(--line); border-radius:14px; padding:28px 18px; text-align:center; background:rgba(255,255,255,.02); transition:border-color .3s; }
.stat:hover{ border-color:var(--red); }
.stat__num{ display:block; font-family:var(--font-disp-en); font-weight:400; font-size:clamp(34px,4.5vw,56px); color:var(--red-hot); line-height:1; }
.stat__num small{ font-family:var(--font-jp); font-size:.34em; color:#fff; font-weight:900; margin-left:4px; }
.stat__label{ display:block; margin-top:12px; font-size:12.5px; color:var(--dim); font-weight:700; }

/* インタビュー内の写真挟み込み */
.iv-shots{ display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:760px; margin:56px auto 0; }
.iv-shots img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:14px; }

/* SNS帯（目立たせ版・全ページ共通） */
.sns-band{ background:var(--bg-soft); padding:46px 0; border-top:1px solid var(--line); position:relative; overflow:hidden; }
.sns-band::before{ content:"FOLLOW US"; position:absolute; right:-1%; bottom:-24%; font-family:var(--font-disp-en); font-size:clamp(60px,9vw,120px); line-height:1; color:transparent; -webkit-text-stroke:1px rgba(255,39,67,.14); pointer-events:none; }
.sns-band__inner{ position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap; }
.sns-band__copy{ font-family:var(--font-disp-jp); font-weight:400; color:#fff; font-size:clamp(17px,2.3vw,25px); }
.sns-band__copy small{ display:block; font-family:var(--font-en); font-weight:800; font-size:11px; letter-spacing:.3em; color:var(--red-hot); margin-bottom:6px; }
.sns-band__links{ display:flex; gap:14px; flex-wrap:wrap; }
.sns-band__links a{ display:inline-flex; align-items:center; gap:11px; font-weight:900; font-size:15px; padding:15px 28px; border-radius:999px; background:var(--red); color:#fff; transition:.3s var(--ease); }
.sns-band__links a i{ font-size:20px; }
.sns-band__links a:hover{ background:var(--red-hot); transform:translateY(-3px); box-shadow:0 12px 30px rgba(232,16,46,.4); }

/* お問い合わせフォーム */
.form-wrap{ max-width:720px; margin-inline:auto; }
.form-row{ margin-top:26px; }
.form-row label{ display:block; font-weight:800; color:#fff; font-size:14px; margin-bottom:8px; }
.form-row .req{ color:var(--red-hot); font-size:11px; margin-left:8px; border:1px solid var(--red); padding:1px 8px; border-radius:999px; }
.form-row input, .form-row textarea, .form-row select{
  width:100%; background:rgba(255,255,255,.05); border:1px solid var(--line); border-radius:8px;
  padding:14px 16px; color:#fff; font-size:15px; font-family:var(--font-jp); transition:border-color .3s;
}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus{ outline:none; border-color:var(--red-hot); }
.form-row textarea{ min-height:180px; resize:vertical; }
.form-check{ margin-top:26px; font-size:14px; color:#e6dfdc; display:flex; gap:10px; align-items:flex-start; }
.form-check input{ width:18px; height:18px; margin-top:3px; accent-color:var(--red); }
.form-submit{ text-align:center; margin-top:40px; }
.form-submit .btn{ cursor:pointer; border:none; font-family:var(--font-jp); font-size:16px; }
.form-note{ font-size:12.5px; color:var(--dim); margin-top:16px; }

@media (max-width:800px){
  .feature, .iv-hero{ grid-template-columns:1fr; }
  .card-grid{ grid-template-columns:1fr 1fr; }
  .iv-others{ grid-template-columns:1fr; }
  .subhero__photo{ width:100%; clip-path:none; opacity:.22; }
  .stat-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .subhero{ padding:150px 0 70px; }
  .info-table th{ width:110px; }
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .entry{ grid-template-columns:96px auto 1fr; }
  .entry .arw{ display:none; }
  .value-item{ padding:70px 22px 22px; }
  .value-item .v-num{ left:22px; top:16px; }
}
@media (max-width:560px){
  .card-grid{ grid-template-columns:1fr; }
  .iv-shots{ grid-template-columns:1fr; }
}

/* =========================================================
   中間幅（タブレット〜小型ノート）ではハンバーガーに切替
   ========================================================= */
@media (max-width:1120px){
  .gnav{ position:fixed; inset:0 0 0 auto; width:min(82vw,330px); height:100vh; padding:100px 34px; transform:translateX(100%); transition:transform .4s var(--ease); z-index:110; }
  .gnav ul{ flex-direction:column; align-items:flex-start; gap:24px; }
  .gnav a{ font-size:15px; }
  .nav-toggle:checked ~ .gnav{ transform:none; }
  .hamburger{ display:flex; flex-direction:column; justify-content:center; gap:6px; width:44px; height:44px; z-index:120; cursor:pointer; }
  .hamburger span{ display:block; width:26px; height:2px; margin-inline:auto; transition:.3s var(--ease); }
  .nav-toggle:checked ~ .hamburger span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
  .nav-toggle:checked ~ .hamburger span:nth-child(2){ opacity:0; }
  .nav-toggle:checked ~ .hamburger span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
}

/* =========================================================
   黒×赤テーマ（パキッと高コントラスト）オーバーライド
   赤帯・RECRUIT・SNS帯は赤ベタでメリハリを出す
   ========================================================= */
:root{
  --bg:      #150c0e;   /* わずかに暖かいパキッとした黒 */
  --bg-soft: #4d0814;   /* 深紅（交互セクションで赤の面積を出す） */
  --ink:     #f6f1ef;
  --dim:     #b3a5a1;
  --line:    rgba(255,80,100,.3);
  --strong:  #ffffff;   /* 見出し */
  --body:    #ddd3cf;   /* 本文 */
}
body{ color:var(--ink); }

/* ヘッダー：スクロール後は黒 */
.site-header.scrolled{ background:rgba(14,11,12,.94); box-shadow:0 1px 0 var(--line); backdrop-filter:blur(8px); }
.site-header.scrolled .logo-mark{ filter:brightness(0) invert(1); }
.site-header.scrolled .logo-text{ color:#fff; }
.site-header.scrolled .gnav a{ color:var(--ink); }
.site-header.scrolled .gnav a.is-cta{ color:#fff; }
.site-header.scrolled .gnav a.is-external{ border-color:rgba(255,255,255,.4); }
.site-header.scrolled .hamburger span{ background:var(--ink); }
.gnav a .jp{ color:rgba(255,255,255,.7); }
.site-header.scrolled .gnav a .jp{ color:var(--dim); }

/* ローダーは赤で熱血 */
.loader{ background-image:linear-gradient(150deg, #ff7a1c 0%, #ed1c24 45%, #9e0720 100%); }
.loader__tag{ color:#fff; }
.loader__bar{ background:rgba(255,255,255,.3); }
.loader__bar::after{ background:#fff; }

/* 見出し・本文の色 */
.sec-head .labels .en-l{ color:var(--strong); }
.sec-lead, .mission__copy p{ color:var(--body); }
.mission__copy h3{ color:var(--strong); }
.tag-link{ color:var(--strong); border-color:rgba(255,255,255,.28); }

/* BUSINESS 行：通常は黒文字、ホバーで写真が出たら白文字に */
.biz-row__ttl .jp{ color:var(--strong); }
.biz-row__desc{ color:var(--body); }
.biz-row__num{ -webkit-text-stroke-color:rgba(255,255,255,.35); }
.biz-row__arw{ color:var(--strong); border-color:rgba(255,255,255,.35); }
.biz-row:hover .biz-row__ttl .jp, .biz-row:hover .biz-row__desc, .biz-row:hover .biz-row__arw{ color:#fff; }
.biz-row:hover .biz-row__num{ -webkit-text-stroke-color:var(--red-hot); }

/* STORIES・PEOPLE */
.stories h4.sub{ color:var(--strong); }
.s-item .t{ color:var(--body); }
.s-more{ color:var(--strong); }
.pcard__role{ color:rgba(255,255,255,.78); }

/* Contact帯は赤グラデで熱血 */
.contact{ background:radial-gradient(70% 110% at 12% 125%, rgba(255,122,28,.4), transparent 55%), linear-gradient(120deg, #b30f28 0%, #6d0818 75%); border-top:none; }
.contact__head .en-l{ color:#fff; }
.contact__head .jp-l{ color:rgba(255,255,255,.8); }
.contact__vline{ background:rgba(255,255,255,.3); }
.contact__phone .tel{ color:#fff; }
.contact__phone .tel i{ color:#ffd7dd; }
.contact__phone .hours{ color:rgba(255,255,255,.75); }
.contact .btn--red{ background:#fff; color:var(--red-deep); box-shadow:0 12px 30px rgba(0,0,0,.22); }
.contact .btn--red:hover{ background:#fff; }

/* SNS帯（ライト） */
.sns-band__copy{ color:var(--strong); }

/* 下層共通 */
.subhero__en{ color:var(--strong); }
.subhero__lead{ color:var(--body); }
.subnav a{ color:var(--strong); border-color:rgba(255,255,255,.28); }
.subhero__ticker .marquee__track span{ -webkit-text-stroke-color:rgba(35,19,23,.3); }
.prose{ color:var(--body); }
.prose h2, .prose h3, .prose strong, .prose .lead{ color:var(--strong); }
.signature .name{ color:var(--strong); }
.info-table td{ color:var(--body); }
.value-item{ background:rgba(255,255,255,.045); box-shadow:none; }
.value-item h3{ color:var(--strong); }
.value-item p{ color:var(--body); }
.feature__body h3{ color:var(--strong); }
.feature__body p{ color:var(--body); }
.entry .t{ color:var(--body); }
.entry:hover{ background:rgba(232,16,46,.1); }
.c-card{ background:rgba(255,255,255,.045); box-shadow:none; }
.c-card__body h3{ color:var(--strong); }
.article-head h1{ color:var(--strong); }
.qa .q{ color:var(--strong); }
.qa .a{ color:var(--body); }
.iv-hero h1{ color:var(--strong); }
.stat{ background:rgba(255,255,255,.045); box-shadow:none; }
.stat__num small{ color:var(--strong); }
.form-row label{ color:var(--strong); }
.form-row input, .form-row textarea, .form-row select{ background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.24); }
.form-check{ color:var(--body); }

/* =========================================================
   サブヒーロー新デザイン（コラージュ／ステッカー風）
   ========================================================= */
.subhero{ background:var(--bg); }
/* 右上に赤ドットのパターン */
.subhero::before{
  content:""; position:absolute; right:-6%; top:-16%; width:56%; height:130%; z-index:0;
  background:radial-gradient(rgba(232,16,46,.2) 1.7px, transparent 1.7px);
  background-size:23px 23px;
  -webkit-mask-image:radial-gradient(75% 75% at 65% 40%, #000 30%, transparent 72%);
          mask-image:radial-gradient(75% 75% at 65% 40%, #000 30%, transparent 72%);
}
/* 大きな赤丸 */
.subhero::after{
  content:""; position:absolute; right:9%; top:6%; z-index:0;
  width:clamp(180px,26vw,360px); aspect-ratio:1; border-radius:50%;
  background-image:linear-gradient(150deg, #ff7a1c 0%, #ed1c24 45%, #9e0720 100%); opacity:.13;
}
/* 写真：傾いたポラロイド風・浮遊 */
.subhero__photo{
  position:absolute; right:7%; top:50%; left:auto; width:min(400px,32vw); height:auto;
  transform:translateY(-54%); rotate:4deg; z-index:1; clip-path:none;
  animation:floaty 7s ease-in-out infinite;
}
.subhero__photo img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:20px; border:6px solid #fff; box-shadow:0 30px 70px rgba(60,10,20,.2); }
.subhero__photo::before{ content:""; position:absolute; inset:0; translate:16px 16px; border-radius:20px; border:2.5px solid var(--red); z-index:-1; }
.subhero__photo::after{ content:none; }
/* 英字に赤マーカー */
.subhero__en{ background:linear-gradient(transparent 66%, rgba(232,16,46,.22) 66%); display:inline-block; padding-right:.1em; }
.subhero__jp{ display:flex; }  /* 見出しの横に回り込まないよう独立行に */
@media (max-width:800px){
  .subhero__photo{ position:static; transform:none; rotate:2deg; opacity:1; width:min(340px,82vw); margin:44px auto 0; }
  .subhero::after{ right:-10%; top:auto; bottom:0; }
}

/* =========================================================
   図解パーツ（リユース業界ページ）
   ========================================================= */
/* 棒グラフ */
.chart{ max-width:860px; margin:56px auto 0; background:rgba(255,255,255,.045); border:1px solid var(--line); border-radius:18px; padding:38px 34px 46px; }
.chart__title{ font-weight:900; color:var(--strong); font-size:clamp(15px,1.9vw,18px); text-align:center; }
.chart__bars{ display:flex; align-items:flex-end; gap:4%; height:230px; margin-top:44px; }
.chart__bar{
  flex:1; position:relative; height:var(--h);
  background:linear-gradient(180deg, #f2a5b1, #e05a72);
  border-radius:8px 8px 0 0;
  transform:scaleY(0); transform-origin:bottom;
  transition:transform 1s var(--ease);
}
.chart.is-in .chart__bar{ transform:none; }
.chart__bars .chart__bar:nth-child(2){ transition-delay:.08s; }
.chart__bars .chart__bar:nth-child(3){ transition-delay:.16s; }
.chart__bars .chart__bar:nth-child(4){ transition-delay:.24s; }
.chart__bars .chart__bar:nth-child(5){ transition-delay:.32s; }
.chart__bars .chart__bar:nth-child(6){ transition-delay:.4s; }
.chart__bars .chart__bar:nth-child(7){ transition-delay:.48s; }
.chart__bars .chart__bar:nth-child(8){ transition-delay:.56s; }
.chart__bar--hot{ background-image:linear-gradient(150deg, #ff7a1c 0%, #ed1c24 45%, #9e0720 100%); }
.chart__val{ position:absolute; top:-28px; left:50%; transform:translateX(-50%); font-family:var(--font-en); font-weight:800; font-size:12.5px; color:var(--red-hot); white-space:nowrap; }
.chart__bar--hot .chart__val{ font-size:14px; color:var(--red); }
.chart__year{ position:absolute; bottom:-24px; left:50%; transform:translateX(-50%); font-family:var(--font-en); font-weight:700; font-size:10.5px; color:var(--dim); }
.chart__note{ margin-top:40px; font-size:11.5px; color:var(--dim); text-align:center; }

/* 景気の二面性カード */
.econ-duo{ display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:860px; margin:44px auto 0; }
.econ-card{ background:rgba(255,255,255,.045); border:1px solid var(--line); border-radius:16px; padding:30px 24px; text-align:center; }
.econ-card i{ font-size:32px; color:var(--red); }
.econ-card h4{ margin-top:12px; color:var(--strong); font-weight:900; font-size:16.5px; }
.econ-card h4 .up{ color:var(--red); }
.econ-card p{ margin-top:8px; color:var(--body); font-size:13.5px; }

/* かくれ資産バー */
.asset-fig{ max-width:860px; margin:44px auto 0; background:rgba(255,255,255,.045); border:1px solid var(--line); border-radius:18px; padding:34px 30px; }
.asset-fig__title{ font-weight:900; color:var(--strong); font-size:clamp(15px,1.9vw,18px); text-align:center; }
.asset-fig__bar{ position:relative; height:52px; margin-top:26px; background:rgba(255,255,255,.14); border-radius:999px; overflow:hidden; }
.asset-fig__fill{ position:absolute; left:0; top:0; height:100%; width:0; background-image:linear-gradient(150deg, #ff7a1c 0%, #ed1c24 45%, #9e0720 100%); border-radius:999px; transition:width 1.3s var(--ease) .2s; }
.asset-fig.is-in .asset-fig__fill{ width:4.6%; }
.asset-fig__mark{ position:absolute; left:6.5%; top:50%; transform:translateY(-50%); font-family:var(--font-disp-en); font-size:26px; color:var(--red); }
.asset-fig__legend{ display:flex; justify-content:center; gap:26px; margin-top:18px; flex-wrap:wrap; font-size:13px; font-weight:700; color:var(--body); }
.asset-fig__legend .dot{ display:inline-block; width:12px; height:12px; border-radius:50%; margin-right:7px; vertical-align:-1px; }
.asset-fig__legend .dot--red{ background:var(--red); }
.asset-fig__legend .dot--gray{ background:rgba(255,255,255,.3); }

@media (max-width:680px){
  .econ-duo{ grid-template-columns:1fr; }
  .chart__bars{ height:170px; }
  .chart__bars .chart__bar:nth-child(3) .chart__year,
  .chart__bars .chart__bar:nth-child(5) .chart__year,
  .chart__bars .chart__bar:nth-child(7) .chart__year{ display:none; }
}

/* =========================================================
   燃える赤 強化（熱血ブースト）
   ========================================================= */
/* セクション見出しの英字は明るい赤グラデ文字（黒地で映える） */
.sec-head .labels .en-l{ color:transparent; background-image:linear-gradient(135deg, #ffb457 0%, #ff5a3c 40%, #e8102e 100%); -webkit-background-clip:text; background-clip:text; }
/* 下層の英字見出しは白＋赤マーカーでパキッと */
.subhero__en{ color:#fff; background-image:linear-gradient(transparent 66%, rgba(232,16,46,.55) 66%); -webkit-background-clip:border-box; background-clip:border-box; }

/* 赤グローを増強 */
.mission{ background:radial-gradient(70% 55% at 90% 15%, rgba(232,16,46,.2), transparent 65%), var(--bg); }
.business{ background:radial-gradient(90% 70% at 8% 10%, rgba(232,16,46,.24), transparent 62%), var(--bg-soft); }
.people{ background:radial-gradient(80% 60% at 12% 88%, rgba(232,16,46,.17), transparent 60%), var(--bg); }
.stories{ background:radial-gradient(85% 65% at 92% 85%, rgba(232,16,46,.2), transparent 62%), var(--bg-soft); }
.subhero{ background:linear-gradient(180deg, rgba(232,16,46,.24), transparent 46%), radial-gradient(70% 80% at 90% 10%, rgba(232,16,46,.2), transparent 60%), var(--bg); }
.page::after{ content:""; position:absolute; left:-12%; bottom:-6%; width:46%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, rgba(232,16,46,.12), transparent 65%); pointer-events:none; }

/* ゴースト・装飾の赤を濃く */
.ghost{ -webkit-text-stroke-color:rgba(232,16,46,.26); }
.subhero::before{ background:radial-gradient(rgba(232,16,46,.32) 1.7px, transparent 1.7px); background-size:23px 23px; }
.subhero::after{ opacity:.22; }
.subhero__ticker .marquee__track span{ -webkit-text-stroke-color:rgba(232,16,46,.45); }
.biz-row__num{ -webkit-text-stroke-color:rgba(232,16,46,.55); }

/* カード類に赤の柱 */
.value-item{ border-left:5px solid var(--red); }
.stat{ border-top:4px solid var(--red); }
.c-card{ border-top:4px solid var(--red); }

/* SNS帯は赤ベタで燃やす */
.sns-band{ background-image:linear-gradient(150deg, #ff7a1c 0%, #ed1c24 45%, #9e0720 100%); border-top:none; }
.sns-band__copy{ color:#fff; }
.sns-band__copy small{ color:#ffd7dd; }
.sns-band::before{ -webkit-text-stroke-color:rgba(255,255,255,.28); }
.sns-band__links a{ background:#fff; color:var(--red-deep); }
.sns-band__links a:hover{ background:#fff; box-shadow:0 12px 30px rgba(0,0,0,.25); }

/* =========================================================
   代表挨拶：写真×挨拶文の2カラム
   ========================================================= */
.greet-top{ display:grid; grid-template-columns:minmax(240px,340px) 1fr; gap:clamp(28px,4.5vw,54px); align-items:start; max-width:920px; margin-inline:auto; }
.greet-top__photo{ position:relative; }
.greet-top__photo img{ width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top; border-radius:16px; border:5px solid #fff; box-shadow:0 22px 50px rgba(60,10,20,.16); }
.greet-top__photo::before{ content:""; position:absolute; inset:0; translate:13px 13px; border-radius:16px; border:2.5px solid var(--red); z-index:-1; }
.greet-top__intro .lead{ font-family:var(--font-disp-jp); font-weight:400; font-size:clamp(19px,2.5vw,27px); color:var(--strong); line-height:1.7; }
.greet-top__intro p{ color:var(--body); font-size:15.5px; }
.greet-top__intro p + p{ margin-top:1.3em; }
.greet-top__intro .lead + p{ margin-top:1.6em; }
@media (max-width:800px){
  .greet-top{ grid-template-columns:1fr; }
  .greet-top__photo{ max-width:300px; margin-inline:auto; }
}

/* =========================================================
   他社分析からの反映パーツ
   ========================================================= */
/* VISION帯のラベル */
.fact__label{ font-family:var(--font-disp-en); font-weight:400; font-size:13px; letter-spacing:.42em; color:#ffd7dd; text-transform:uppercase; margin-bottom:16px; }
.fact__inner{ flex-direction:column; }

/* 数字で見るRAFUCAL（トップ） */
.numbers{ position:relative; padding:0 0 clamp(80px,10vw,140px); background:var(--bg); }
.numbers__label{ display:flex; align-items:baseline; gap:16px; margin-bottom:30px; font-weight:800; font-size:14px; color:var(--dim); letter-spacing:.1em; }
.numbers__label .en{ font-family:var(--font-disp-en); font-weight:400; font-size:20px; letter-spacing:.08em; color:transparent; background-image:linear-gradient(135deg, #ffb457 0%, #ff5a3c 40%, #e8102e 100%); -webkit-background-clip:text; background-clip:text; }
.numbers .stat-grid{ margin-top:0; max-width:none; }

/* PEOPLEカードのキャッチコピー */
.pcard__catch{ font-weight:900; font-size:clamp(15px,1.7vw,18px); color:#fff; line-height:1.65; margin:4px 0 8px; }

/* 「売りたい方へ」導線（BUSINESS内） */
.sell-cta{
  margin-top:48px; display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap;
  border:1px solid var(--line); border-left:5px solid var(--red); border-radius:14px;
  padding:26px 30px; background:rgba(255,255,255,.04);
}
.sell-cta__txt{ font-weight:800; color:#fff; font-size:clamp(14px,1.8vw,16.5px); }
.sell-cta__txt small{ display:block; font-size:12px; color:var(--dim); font-weight:700; margin-top:4px; }

/* フッターの理念タグライン */
.footer__tagline{ margin-top:14px; font-size:12.5px; font-weight:800; color:var(--dim); letter-spacing:.24em; }

/* =========================================================
   炎エフェクト（熱血ファイア）
   ========================================================= */
/* 火の粉パーティクル（JSがspanを生成） */
.embers{ position:absolute; inset:0; z-index:2; overflow:hidden; pointer-events:none; }
.embers span{
  position:absolute; bottom:-12px; left:var(--x);
  width:var(--s); height:var(--s); border-radius:50%;
  background:radial-gradient(circle, #ffe0ae 0%, #ff8a1e 45%, rgba(232,16,46,0) 72%);
  opacity:0; filter:blur(.4px);
  animation:ember-rise var(--dur) linear var(--delay) infinite;
}
@keyframes ember-rise{
  0%{ transform:translate(0,0) scale(1); opacity:0; }
  8%{ opacity:.95; }
  55%{ transform:translate(var(--drift), -46vh) scale(.75); opacity:.5; }
  100%{ transform:translate(calc(var(--drift) * 1.7), -92vh) scale(.25); opacity:0; }
}

/* ヒーローの斜めスラッシュを炎色にしてゆらめかせる */
.hero__slash{
  background:linear-gradient(160deg, #ff7a1c 0%, #e8102e 45%, #9e0720 100%);
  animation:flame-sway 4.5s ease-in-out infinite alternate;
}
@keyframes flame-sway{
  from{ opacity:.28; transform:skewX(-16deg) scaleY(1); }
  to{ opacity:.44; transform:skewX(-14.5deg) scaleY(1.03); }
}

/* VISION帯：下から炎に炙られる背景 */
.fact{ background:radial-gradient(85% 100% at 50% 115%, rgba(255,138,30,.55), transparent 62%), linear-gradient(180deg, #d90f2c 0%, #96091f 100%); }
.fact__label::before{ content:"\f06d"; font-family:"Font Awesome 6 Free"; font-weight:900; margin-right:10px; color:#ffb457; }

/* マーキーの区切りを炎アイコンに */
.marquee__track span::after{ content:"\f06d"; font-family:"Font Awesome 6 Free"; font-weight:900; color:rgba(255,196,120,.9); font-size:.75em; }

/* ボタンのホバーは炎色の光に */
.btn--red:hover{ box-shadow:0 18px 44px rgba(255,110,30,.5); }

/* =========================================================
   CONTACT ZONE（電話・メール・SNSを統合した動きのある連絡セクション）
   ========================================================= */
.contact-zone{
  position:relative; padding:clamp(90px,12vw,150px) 0; overflow:hidden;
  background:radial-gradient(70% 90% at 88% 105%, rgba(232,16,46,.24), transparent 62%), var(--bg);
  border-top:1px solid var(--line);
}
.contact-zone .ghost{ right:auto; left:-2vw; top:auto; bottom:20px; font-size:clamp(80px,15vw,210px); }
.cz-head{ position:relative; z-index:1; margin-bottom:48px; }
.cz-label{ font-family:var(--font-disp-en); font-weight:400; font-size:13px; letter-spacing:.42em; text-transform:uppercase; color:#ff8a1e; }
.cz-label::before{ content:"\f06d"; font-family:"Font Awesome 6 Free"; font-weight:900; margin-right:10px; color:#ffb457; }
.cz-title{ font-family:var(--font-disp-jp); font-weight:400; font-size:clamp(26px,4.6vw,52px); color:#fff; margin-top:14px; line-height:1.4; }
.cz-rows{ position:relative; z-index:1; border-top:1px solid var(--line); }
.cz-row{
  position:relative; display:grid; grid-template-columns:64px 1fr auto 48px; gap:20px; align-items:center;
  padding:28px 18px; border-bottom:1px solid var(--line); overflow:hidden; isolation:isolate;
  opacity:0; transform:translateX(-44px); transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.cz-row.is-in{ opacity:1; transform:none; }
.cz-rows .cz-row:nth-child(2){ transition-delay:.1s; }
.cz-rows .cz-row:nth-child(3){ transition-delay:.2s; }
.cz-rows .cz-row:nth-child(4){ transition-delay:.3s; }
/* ホバーで炎が左から走り込む */
.cz-row::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(150deg, #ff7a1c 0%, #ed1c24 45%, #9e0720 100%);
  transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.76,0,.24,1);
}
.cz-row:hover::before{ transform:scaleX(1); }
.cz-row__icon{
  width:52px; height:52px; border-radius:50%; border:1.5px solid var(--line);
  display:grid; place-items:center; font-size:19px; color:var(--red-hot); transition:.3s var(--ease);
}
.cz-row:hover .cz-row__icon{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.55); color:#fff; }
.cz-row__label{ font-weight:900; color:#fff; font-size:clamp(15px,1.9vw,18px); line-height:1.5; }
.cz-row__label small{ display:block; font-size:11.5px; color:var(--dim); font-weight:700; margin-top:3px; transition:color .3s; }
.cz-row:hover .cz-row__label small{ color:rgba(255,255,255,.85); }
.cz-row__value{
  font-family:var(--font-disp-en); font-weight:400; font-size:clamp(18px,2.6vw,30px); letter-spacing:.04em;
  color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.6); transition:.3s;
}
.cz-row:hover .cz-row__value{ color:#fff; -webkit-text-stroke:0; }
.cz-row__arw{ justify-self:end; font-size:19px; color:var(--red-hot); transition:transform .35s var(--ease), color .3s; }
.cz-row:hover .cz-row__arw{ transform:translateX(8px); color:#fff; }
@media (max-width:680px){
  .cz-row{ grid-template-columns:44px 1fr; gap:14px; padding:22px 10px; }
  .cz-row__icon{ width:44px; height:44px; font-size:16px; }
  .cz-row__value{ grid-column:2; font-size:20px; }
  .cz-row__arw{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  .cz-row{ opacity:1; transform:none; transition:none; }
}

/* =========================================================
   SNS ZONE（フォローセクション・燃え上がるカード）
   ========================================================= */
.sns-zone{ position:relative; padding:clamp(80px,10vw,130px) 0; background:var(--bg-soft); overflow:hidden; }
.sns-zone::before{
  content:"FOLLOW US"; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  font-family:var(--font-disp-en); font-weight:400; font-size:clamp(90px,17vw,250px); line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.09); white-space:nowrap; pointer-events:none;
}
.sns-zone .wrap{ position:relative; z-index:1; }
.sns-zone__head{ text-align:center; margin-bottom:46px; }
.sns-zone__label{ font-family:var(--font-disp-en); font-weight:400; font-size:13px; letter-spacing:.42em; text-transform:uppercase; color:#ff9e3d; }
.sns-zone__title{ font-family:var(--font-disp-jp); font-weight:400; font-size:clamp(22px,3.6vw,40px); color:#fff; margin-top:12px; }
.sns-cards{ display:grid; grid-template-columns:repeat(2,minmax(0,380px)); justify-content:center; gap:24px; }
.sns-card{
  position:relative; overflow:hidden; isolation:isolate; text-align:center;
  border:1px solid rgba(255,255,255,.22); border-radius:20px; padding:44px 30px 38px;
  background:rgba(255,255,255,.05);
  transition:transform .35s var(--ease), border-color .3s, box-shadow .35s;
}
/* ホバーで炎が下から燃え上がる */
.sns-card::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, #ff7a1c 0%, #ed1c24 55%, #9e0720 100%);
  transform:scaleY(0); transform-origin:bottom; transition:transform .45s cubic-bezier(.76,0,.24,1);
}
.sns-card:hover{ transform:translateY(-8px); border-color:transparent; box-shadow:0 24px 50px rgba(120,10,25,.45); }
.sns-card:hover::before{ transform:scaleY(1); }
.sns-card i{ font-size:46px; color:#fff; }
.sns-card__name{ display:block; font-family:var(--font-disp-en); font-weight:400; font-size:24px; color:#fff; margin-top:18px; letter-spacing:.06em; }
.sns-card__id{ display:block; font-family:var(--font-en); font-weight:800; font-size:14px; color:#ff9e3d; margin-top:6px; transition:color .3s; }
.sns-card:hover .sns-card__id{ color:#ffd7dd; }
.sns-card__note{ display:block; font-size:12.5px; font-weight:700; color:rgba(255,255,255,.6); margin-top:12px; transition:color .3s; }
.sns-card:hover .sns-card__note{ color:rgba(255,255,255,.9); }
@media (max-width:680px){
  .sns-cards{ grid-template-columns:1fr; }
}

/* =========================================================
   追加アニメーション（遷移ワイプ・火花・マグネット・塗り文字）
   ========================================================= */
/* ページ遷移ワイプ（炎色の斜めパネル） */
.page-wipe{ position:fixed; inset:0; z-index:600; pointer-events:none; overflow:hidden; }
.page-wipe::before{
  content:""; position:absolute; inset:-5% -20%;
  background:linear-gradient(150deg, #ff7a1c 0%, #e8102e 45%, #9e0720 100%);
  transform:translateX(-115%) skewX(-10deg);
}
.page-wipe.is-out::before{ transition:transform .38s cubic-bezier(.55,0,.3,1); transform:translateX(0) skewX(-10deg); }
.page-wipe.is-cover::before{ transform:translateX(0) skewX(-10deg); }
.page-wipe.is-in::before{ transition:transform .55s cubic-bezier(.3,.55,.2,1) .08s; transform:translateX(115%) skewX(-10deg); }

/* 到着直後のフラッシュ防止：headの同期スクリプトが html に付与し、
   JSがwipe要素を重ねてから外す（コンテンツが素で見える瞬間を作らない） */
html.is-wiping body::after{
  content:""; position:fixed; inset:0; z-index:600; pointer-events:none;
  background:linear-gradient(150deg, #ff7a1c 0%, #e8102e 45%, #9e0720 100%);
}

/* カーソルから散る火花 */
.spark{
  position:fixed; z-index:390; width:6px; height:6px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, #ffe0ae 0%, #ff8a1e 55%, transparent 75%);
  transform:translate(-50%,-50%);
  animation:spark-fly .72s ease-out forwards;
}
@keyframes spark-fly{
  from{ opacity:1; transform:translate(-50%,-50%) scale(1); }
  to{ opacity:0; transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.15); }
}

/* ヒーロー赤マーカーのネオン点灯 */
.hero .title .mark{ transition:none; }
.hero.is-ready .title .mark{ animation:marker-flicker .85s steps(1,end) 1.05s both; }
@keyframes marker-flicker{
  0%{ background-size:0% 100%; }
  35%{ background-size:100% 100%; }
  48%{ background-size:0% 100%; }
  58%{ background-size:100% 100%; }
  70%{ background-size:0% 100%; }
  100%{ background-size:100% 100%; }
}

/* JOIN US.：スクロールに連動して輪郭文字が塗られていく */
.recruit .join{
  background-image:linear-gradient(90deg, #fff var(--fillp,0%), transparent var(--fillp,0%));
  -webkit-background-clip:text; background-clip:text;
}

@media (prefers-reduced-motion: reduce){
  .page-wipe, .spark{ display:none; }
  html.is-wiping body::after{ display:none; }
  .hero.is-ready .title .mark{ animation:none; background-size:100% 100%; }
  .recruit .join{ background-image:none; }
}

/* =========================================================
   フレイムアンビエンス（サイト全体を炎で包む）
   ========================================================= */
/* 画面下端で常に揺れる炎の床 */
.flame-floor{ position:fixed; left:0; right:0; bottom:0; height:30vh; z-index:5; pointer-events:none; mix-blend-mode:screen; opacity:.5; }
.flame-floor i{ position:absolute; bottom:-16vh; border-radius:50%; filter:blur(38px); }
.flame-floor i:nth-child(1){ left:0; width:38vw; height:26vh; background:radial-gradient(closest-side, rgba(255,110,20,.6), transparent 70%); animation:floor-sway 7s ease-in-out infinite alternate; }
.flame-floor i:nth-child(2){ left:34%; width:42vw; height:30vh; background:radial-gradient(closest-side, rgba(232,16,46,.55), transparent 70%); animation:floor-sway 9.5s ease-in-out infinite alternate-reverse; }
.flame-floor i:nth-child(3){ right:-4%; width:36vw; height:24vh; background:radial-gradient(closest-side, rgba(255,150,40,.5), transparent 70%); animation:floor-sway 6.2s ease-in-out infinite alternate; }
@keyframes floor-sway{
  from{ transform:translate(-4%,7%) scale(1); opacity:.7; }
  to{ transform:translate(5%,-5%) scale(1.18); opacity:1; }
}
/* 全画面を漂う火の粉 */
.embers--global{ position:fixed; z-index:4; mix-blend-mode:screen; }

/* 見出しが熾火のように明滅する */
.hero .title, .sec-head .labels .en-l, .subhero__en, .fact__copy,
.cz-title, .recruit h2, .recruit .join, .sns-zone__title, .slogan{
  animation:head-glow 3.6s ease-in-out infinite alternate;
}
@keyframes head-glow{
  from{ text-shadow:0 0 14px rgba(255,110,25,.18); }
  to{ text-shadow:0 4px 34px rgba(255,110,25,.5); }
}

/* 赤ボタンは炎で脈動（ホバー時は既存の炎シャドウへ） */
.btn--red{ animation:btn-flame 2.6s ease-in-out infinite alternate; }
.btn--red:hover{ animation:none; }
@keyframes btn-flame{
  from{ box-shadow:0 8px 26px rgba(232,16,46,.35); }
  to{ box-shadow:0 14px 42px rgba(255,110,30,.62); }
}

/* 赤帯・主要セクションの下端に熾火 */
.marquee{ background:linear-gradient(100deg, #e8102e 0%, #ff7a1c 55%, #c40d28 100%); }
.fact{ box-shadow:inset 0 -34px 70px -22px rgba(255,120,20,.4); }
.recruit{ box-shadow:inset 0 -34px 70px -22px rgba(255,120,20,.35); }
.sns-zone{ box-shadow:inset 0 -30px 60px -20px rgba(255,120,20,.3); }

/* サブヒーローの赤丸もゆらめく */
.subhero::after{ animation:floor-sway 8s ease-in-out infinite alternate; }

/* フッター境界は炎のライン */
.footer{ border-top:none; }
.footer::before{ content:""; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg, transparent 0%, #ff7a1c 20%, #e8102e 50%, #ff7a1c 80%, transparent 100%); }
.footer::after{ content:""; position:absolute; top:0; left:0; right:0; height:30px; background:linear-gradient(180deg, rgba(255,110,25,.16), transparent); pointer-events:none; }
.footer{ position:relative; }

@media (max-width:680px){
  .flame-floor{ height:22vh; opacity:.4; }
}
@media (prefers-reduced-motion: reduce){
  .flame-floor, .embers--global{ display:none; }
  .hero .title, .sec-head .labels .en-l, .subhero__en, .fact__copy,
  .cz-title, .recruit h2, .recruit .join, .sns-zone__title, .slogan{ animation:none; }
  .btn--red{ animation:none; }
  .subhero::after{ animation:none; }
}

/* =========================================================
   炎シルエットの帯（グラフィックとしての炎・結び参考）
   ========================================================= */
.flame-strip{
  position:absolute; left:0; right:0; bottom:-1px; height:72px; z-index:3; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 90' preserveAspectRatio='none'%3E%3Cpath fill='%23150c0e' d='M0,90 L0,72 Q4,68 6,58 Q7,48 12,56 Q16,62 18,50 Q20,36 26,48 Q30,56 33,46 Q37,30 43,44 Q46,52 50,44 Q55,24 61,40 Q64,50 69,44 Q74,34 78,48 Q81,58 86,50 Q90,40 94,52 Q97,60 102,52 Q107,28 113,44 Q116,54 121,48 Q126,36 130,50 Q133,60 138,52 Q142,42 146,54 Q149,62 154,54 Q159,32 165,46 Q168,54 173,48 Q178,38 182,52 Q185,60 190,52 Q194,44 198,56 Q201,64 206,56 Q211,34 217,48 Q220,56 225,50 Q230,42 234,56 Q237,64 240,60 L240,90 Z'/%3E%3C/svg%3E");
  background-repeat:repeat-x; background-size:240px 100%; background-position:bottom left;
  animation:flame-drift 26s linear infinite;
}
/* 2枚目の炎（逆方向・薄め）で奥行き */
.flame-strip::after{
  content:""; position:absolute; inset:0; opacity:.45;
  background-image:inherit; background-repeat:repeat-x; background-size:300px 115%; background-position:bottom left;
  animation:flame-drift-rev 34s linear infinite;
  filter:brightness(1.6);
}
@keyframes flame-drift{ to{ background-position-x:240px; } }
@keyframes flame-drift-rev{ to{ background-position-x:-300px; } }
/* 白炎バージョン（赤帯の下端用） */
.flame-strip--white{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 90' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' opacity='0.16' d='M0,90 L0,72 Q4,68 6,58 Q7,48 12,56 Q16,62 18,50 Q20,36 26,48 Q30,56 33,46 Q37,30 43,44 Q46,52 50,44 Q55,24 61,40 Q64,50 69,44 Q74,34 78,48 Q81,58 86,50 Q90,40 94,52 Q97,60 102,52 Q107,28 113,44 Q116,54 121,48 Q126,36 130,50 Q133,60 138,52 Q142,42 146,54 Q149,62 154,54 Q159,32 165,46 Q168,54 173,48 Q178,38 182,52 Q185,60 190,52 Q194,44 198,56 Q201,64 206,56 Q211,34 217,48 Q220,56 225,50 Q230,42 234,56 Q237,64 240,60 L240,90 Z'/%3E%3C/svg%3E");
}
/* 赤炎バージョン（黒地セクションの下端用） */
.flame-strip--red{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 90' preserveAspectRatio='none'%3E%3Cpath fill='%23e8102e' opacity='0.55' d='M0,90 L0,72 Q4,68 6,58 Q7,48 12,56 Q16,62 18,50 Q20,36 26,48 Q30,56 33,46 Q37,30 43,44 Q46,52 50,44 Q55,24 61,40 Q64,50 69,44 Q74,34 78,48 Q81,58 86,50 Q90,40 94,52 Q97,60 102,52 Q107,28 113,44 Q116,54 121,48 Q126,36 130,50 Q133,60 138,52 Q142,42 146,54 Q149,62 154,54 Q159,32 165,46 Q168,54 173,48 Q178,38 182,52 Q185,60 190,52 Q194,44 198,56 Q201,64 206,56 Q211,34 217,48 Q220,56 225,50 Q230,42 234,56 Q237,64 240,60 L240,90 Z'/%3E%3C/svg%3E");
}
@media (prefers-reduced-motion: reduce){
  .flame-strip, .flame-strip::after{ animation:none; }
}

/* 理念スローガン（赤グラデ文字＋小さな補足） */
.slogan{
  font-family:var(--font-disp-jp); font-weight:400; text-align:center; line-height:1.4;
  font-size:clamp(28px,5vw,56px);
  color:transparent; background-image:linear-gradient(135deg, #ff4f67 0%, #e8102e 100%); -webkit-background-clip:text; background-clip:text;
}
.slogan-sub{ text-align:center; color:var(--body); font-size:clamp(13.5px,1.7vw,15.5px); max-width:40em; margin:20px auto 0; font-weight:600; line-height:2; }

/* =========================================================
   CULTURE フォトマーキー（流れる写真の帯）
   ========================================================= */
.photo-marquee-sec{ position:relative; padding:0 0 clamp(80px,10vw,130px); background:var(--bg); overflow:hidden; }
.photo-marquee{ overflow:hidden; margin-top:28px; }
.photo-marquee__track{ display:flex; gap:18px; width:max-content; animation:pm-scroll 55s linear infinite; will-change:transform; }
.photo-marquee__track img{
  height:clamp(160px,24vw,250px); width:auto; border-radius:14px;
  box-shadow:0 12px 30px rgba(60,10,20,.14);
}
.photo-marquee:hover .photo-marquee__track{ animation-play-state:paused; }
@keyframes pm-scroll{ to{ transform:translate3d(-50%,0,0); } }
/* スマホ: トラックが短く同じ55秒だと遅く見えるため速度を上げ、画像も少し大きく */
@media (max-width:800px){
  .photo-marquee__track{ animation-duration:30s; }
  .photo-marquee__track img{ height:190px; }
}
@media (prefers-reduced-motion: reduce){ .photo-marquee__track{ animation:none; } }

/* =========================================================
   創業ストーリー（タイムライン）
   ========================================================= */
.story-lead{ max-width:760px; margin-inline:auto; text-align:center; }
.story-lead .big{ font-family:var(--font-disp-jp); font-weight:400; font-size:clamp(24px,4.2vw,46px); color:var(--strong); line-height:1.6; }
.story-lead .big .red{ color:var(--red); }
.story-lead p{ margin-top:20px; color:var(--body); font-weight:600; }
.story-tl{ position:relative; max-width:860px; margin:80px auto 0; padding-left:clamp(28px,5vw,60px); }
.story-tl::before{ content:""; position:absolute; left:8px; top:6px; bottom:6px; width:3px; background:linear-gradient(180deg, #ff7a1c 0%, #e8102e 55%, #9e0720 100%); border-radius:2px; }
.story-ch{
  position:relative; padding-bottom:clamp(56px,8vw,90px);
  opacity:0; transform:translateY(36px); transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.story-ch.is-in{ opacity:1; transform:none; }
.story-ch::before{
  content:""; position:absolute; left:calc(-1 * clamp(28px,5vw,60px) + 1px); top:10px;
  width:17px; height:17px; border-radius:50%; background:var(--red); border:4px solid #fff;
  box-shadow:0 0 0 2px var(--red), 0 0 18px rgba(232,16,46,.5);
}
.story-ch__num{ font-family:var(--font-disp-en); font-weight:400; font-size:13px; letter-spacing:.34em; color:var(--red); text-transform:uppercase; }
.story-ch__title{ font-family:var(--font-disp-jp); font-weight:400; font-size:clamp(21px,3.2vw,32px); color:var(--strong); margin-top:10px; line-height:1.5; }
.story-ch__body{ margin-top:16px; color:var(--body); font-size:15.5px; line-height:2.1; max-width:44em; }
.story-ch__body strong{ color:var(--strong); }
.story-ch__photo{ margin-top:26px; border-radius:14px; overflow:hidden; box-shadow:0 18px 44px rgba(60,10,20,.14); max-width:640px; }
.story-ch__photo img{ width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .8s var(--ease); }
.story-ch__photo:hover img{ transform:scale(1.04); }
.story-quote{
  max-width:760px; margin:20px auto 0; padding:clamp(30px,5vw,50px);
  background:linear-gradient(150deg, #d90f2c 0%, #8f0a20 100%); border-radius:20px; color:#fff;
  position:relative; overflow:hidden;
}
.story-quote::before{ content:"\f06d"; font-family:"Font Awesome 6 Free"; font-weight:900; position:absolute; right:18px; bottom:-12px; font-size:110px; color:rgba(255,255,255,.12); }
.story-quote .q-txt{ font-family:var(--font-disp-jp); font-weight:400; font-size:clamp(18px,2.6vw,26px); line-height:1.9; }
.story-quote .q-sub{ margin-top:16px; font-size:13.5px; font-weight:700; color:rgba(255,255,255,.85); line-height:2; }
@media (prefers-reduced-motion: reduce){ .story-ch{ opacity:1; transform:none; transition:none; } }

/* =========================================================
   白×赤テーマ 最終オーバーライド
   （採用サイト＝赤×黒との差別化。結び同様、白の余白×赤の熱）
   ========================================================= */
:root{
  --bg:      #fdfbfa;   /* 白（わずかに暖かい） */
  --bg-soft: #f8f0ed;   /* 薄いウォームグレー */
  --ink:     #1c1214;
  --dim:     #a08e8a;
  --line:    rgba(220,30,60,.22);
  --strong:  #180d10;   /* 見出し＝ほぼ黒 */
  --body:    #54464a;   /* 本文 */
}
/* ヘッダー：白 */
.site-header.scrolled{ background:rgba(255,253,252,.95); box-shadow:0 6px 24px rgba(60,10,20,.08); }
.logo-mark{ filter:none; }  /* 紫ロゴは常に原色で表示 */
.site-header.scrolled .logo-mark{ filter:none; }
.site-header.scrolled .logo-text{ color:var(--ink); }
.site-header.scrolled .gnav a{ color:var(--ink); }
.site-header.scrolled .gnav a.is-cta{ color:#fff; }
.site-header.scrolled .gnav a.is-external{ border-color:rgba(30,15,18,.35); }
.site-header.scrolled .hamburger span{ background:var(--ink); }

/* セクションの赤グローは白地用に弱める */
.mission{ background:radial-gradient(70% 55% at 90% 15%, rgba(232,16,46,.09), transparent 65%), var(--bg); }
.business{ background:radial-gradient(90% 70% at 8% 10%, rgba(232,16,46,.1), transparent 62%), var(--bg-soft); }
.people{ background:radial-gradient(80% 60% at 12% 88%, rgba(232,16,46,.08), transparent 60%), var(--bg); }
.stories{ background:radial-gradient(85% 65% at 92% 85%, rgba(232,16,46,.09), transparent 62%), var(--bg-soft); }
.subhero{ background:linear-gradient(180deg, rgba(232,16,46,.1), transparent 46%), radial-gradient(70% 80% at 90% 10%, rgba(232,16,46,.1), transparent 60%), var(--bg); }
.page::after{ display:none; }

/* 文字・ボーダーを黒系に */
.tag-link{ border-color:rgba(30,15,18,.25); }
.biz-row__num{ -webkit-text-stroke-color:rgba(30,15,18,.3); }
.biz-row__arw{ border-color:rgba(30,15,18,.3); }
.subnav a{ border-color:rgba(30,15,18,.25); }
.subhero__en{ color:var(--strong); }
.stories h4.sub{ color:var(--strong); }
.s-more{ color:var(--strong); }

/* 枠線ボタンは白地でも見えるように */
.btn--line{ border-color:rgba(30,15,18,.45); color:var(--strong); }

/* カードは白＋シャドウ */
.value-item, .stat, .c-card, .chart, .econ-card, .asset-fig{ background:#fff; box-shadow:0 12px 34px rgba(60,10,20,.09); }
.asset-fig__bar{ background:#f3e5e0; }
.asset-fig__legend .dot--gray{ background:#e3cdc6; }
.form-row input, .form-row textarea, .form-row select{ background:#fff; color:var(--ink); border-color:rgba(30,15,18,.2); }
.entry:hover{ background:rgba(232,16,46,.06); }

/* CONTACT ZONE：白地化（ホバーの炎スライドは維持） */
.contact-zone{ background:radial-gradient(70% 90% at 88% 105%, rgba(232,16,46,.12), transparent 62%), var(--bg); }
.cz-title{ color:var(--strong); }
.cz-row__label{ color:var(--strong); }
.cz-row:hover .cz-row__label{ color:#fff; }
.cz-row__value{ -webkit-text-stroke-color:rgba(30,15,18,.4); }
.cz-row__icon{ border-color:rgba(30,15,18,.25); }

/* SNSゾーンは赤帯として固定（白地の中の熱） */
.sns-zone{ background:linear-gradient(150deg, #d90f2c 0%, #8f0a20 100%); }

/* フッター：白 */
.footer{ background:#fff; }
.footer .fcol h3{ color:var(--strong); }
.footer .fcol li a{ color:#6d5b5e; }
.footer .fcol li a:hover{ color:var(--red); }
.footer__bottom a{ color:#6d5b5e; }
.footer__bottom small{ color:#a89694; }

/* モバイル/タブレットドロワー：白 */
@media (max-width:1120px){
  .gnav{ background:#fff; border-left:1px solid var(--line); }
  .gnav a{ color:var(--ink); }
  .gnav a .jp{ color:var(--dim); }
  .gnav a.is-external{ border-color:rgba(30,15,18,.3); }
  .hamburger span{ background:var(--ink); }
  .site-header:not(.scrolled) .hamburger span{ background:#fff; }
  /* メニュー展開中は白ドロワーの上なので×印は常に黒 */
  .site-header .nav-toggle:checked ~ .hamburger span{ background:var(--ink); }
}

/* 炎まわりの白地調整 */
.flame-floor{ mix-blend-mode:normal; opacity:.3; }
.embers--global{ mix-blend-mode:normal; }
@keyframes head-glow{
  from{ text-shadow:0 0 10px rgba(255,110,25,.12); }
  to{ text-shadow:0 3px 22px rgba(255,110,25,.3); }
}
/* 炎シルエット帯は白炎（次の白セクションへ繋ぐ） */
.flame-strip{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 90' preserveAspectRatio='none'%3E%3Cpath fill='%23fdfbfa' d='M0,90 L0,72 Q4,68 6,58 Q7,48 12,56 Q16,62 18,50 Q20,36 26,48 Q30,56 33,46 Q37,30 43,44 Q46,52 50,44 Q55,24 61,40 Q64,50 69,44 Q74,34 78,48 Q81,58 86,50 Q90,40 94,52 Q97,60 102,52 Q107,28 113,44 Q116,54 121,48 Q126,36 130,50 Q133,60 138,52 Q142,42 146,54 Q149,62 154,54 Q159,32 165,46 Q168,54 173,48 Q178,38 182,52 Q185,60 190,52 Q194,44 198,56 Q201,64 206,56 Q211,34 217,48 Q220,56 225,50 Q230,42 234,56 Q237,64 240,60 L240,90 Z'/%3E%3C/svg%3E");
}

/* 横はみ出し防止:
   ghost英字・斜めマーキー・リビール前のtranslateX要素が画面外に出て
   スマホで横スクロール（横揺れ）を起こすため、ページ全体で横方向をクリップ。
   clipはhiddenと違いスクロールコンテナを作らないのでstickyや内部スクロールに影響しない */
html, body{ overflow-x:hidden; overflow-x:clip; }
