@charset "utf-8";
/* =========================================================
   RICH & BUILD TOP ページ専用スタイル
   ========================================================= */

/* ---------------- HERO ---------------- */
.hero{ position:relative; height:100vh; min-height:600px; max-height:1040px; background:var(--dark); }
.hero__slider,.hero__slide{ height:100vh; min-height:600px; max-height:1040px; }
.hero__slide{ position:relative; display:flex !important; align-items:center; }
.hero__slide::before{ content:""; position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.08); }
.hero__slide.is-active::before,.slick-current .hero__bg{ }
.hero__bg{ position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.12); transition:transform 6.5s ease; }
.slick-current .hero__bg{ transform:scale(1); }
.hero__slide::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,10,9,.82) 0%,rgba(10,10,9,.45) 45%,rgba(10,10,9,.2) 100%); }
.hero__copy{ position:relative; z-index:3; width:100%; max-width:1200px; margin:0 auto; padding:0 6%; color:#fff; }
.hero__en{ font-family:var(--font-en); font-weight:600; font-size:clamp(1.2rem,1.6vw,1.5rem); letter-spacing:.34em; text-transform:uppercase; color:var(--gold-2); opacity:0; transform:translateY(20px); }
.hero__ja{ margin-top:.6em; font-size:clamp(3.4rem,7vw,7rem); font-weight:700; line-height:1.22; letter-spacing:.02em; text-shadow:0 2px 30px rgba(0,0,0,.35); }
.hero__ja .accent{ background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero__ja span{ display:block; opacity:0; transform:translateY(30px); }
.hero__lead{ margin-top:1.6em; max-width:34em; font-size:clamp(1.5rem,1.9vw,1.8rem); line-height:2; color:rgba(255,255,255,.86); opacity:0; transform:translateY(20px); }

/* slick-current のときにコピーをアニメーション表示 */
.slick-current .hero__en{ animation:heroUp .9s var(--ease) .35s forwards; }
.slick-current .hero__ja span{ animation:heroUp 1s var(--ease) forwards; }
.slick-current .hero__ja span:nth-child(1){ animation-delay:.5s; }
.slick-current .hero__ja span:nth-child(2){ animation-delay:.68s; }
.slick-current .hero__ja span:nth-child(3){ animation-delay:.86s; }
.slick-current .hero__lead{ animation:heroUp 1s var(--ease) 1.05s forwards; }
@keyframes heroUp{ to{ opacity:1; transform:none; } }

.hero__side{ position:absolute; right:32px; bottom:120px; z-index:4; writing-mode:vertical-rl; font-family:var(--font-en); letter-spacing:.3em; font-size:1.2rem; color:rgba(255,255,255,.6); }
.hero__dots{ position:absolute; left:6%; bottom:42px; z-index:5; display:flex !important; gap:12px; }
.hero__dots li{ width:42px; }
.hero__dots li button{ width:100%; height:3px; padding:0; background:rgba(255,255,255,.3); font-size:0; transition:background .3s; }
.hero__dots li.slick-active button{ background:var(--gold-grad); }
.hero__scroll{ position:absolute; left:50%; bottom:26px; z-index:5; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; font-family:var(--font-en); font-size:1rem; letter-spacing:.2em; color:rgba(255,255,255,.7); }
.hero__scroll .line{ width:1px; height:48px; background:rgba(255,255,255,.4); position:relative; overflow:hidden; }
.hero__scroll .line::after{ content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--gold-2); animation:scrollDown 1.8s ease-in-out infinite; }
@keyframes scrollDown{ 0%{ top:-50%; } 100%{ top:100%; } }
@media (max-width:899px){
  .hero,.hero__slider,.hero__slide{ height:86vh; min-height:520px; }
  .hero__side{ display:none; }
  .hero__dots{ bottom:30px; }
  .hero__slide::after{ background:linear-gradient(180deg,rgba(10,10,9,.55),rgba(10,10,9,.78)); }
}

.visually-hidden{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---------------- MARQUEE（NEWS下：右→左に流れる大型アウトライン文字） ---------------- */
.marquee-band{ background:#fff; padding:clamp(16px,2.6vw,34px) 0; overflow:hidden; border-bottom:1px solid var(--line); }
.marquee{ width:100%; overflow:hidden; pointer-events:none; }
.marquee__track{ display:flex; width:max-content; will-change:transform; animation:marqueeMove 30s linear infinite; animation-play-state:paused; }
/* フォント読込完了後にアニメーション開始（フォント差し替えによる途中ズレを防止） */
.marquee.is-ready .marquee__track{ animation-play-state:running; }
.marquee__track span{ flex:none; white-space:nowrap; font-family:var(--font-en); font-weight:700; text-transform:uppercase; font-size:clamp(3.6rem,8vw,8.4rem); line-height:1.06; letter-spacing:.02em; color:transparent; -webkit-text-stroke:1.4px rgba(2,125,201,.32); }
@keyframes marqueeMove{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (max-width:899px){ .marquee__track span{ -webkit-text-stroke-width:1px; } .marquee__track{ animation-duration:22s; } }
@media (prefers-reduced-motion:reduce){ .marquee__track{ animation:none; } }
/* ヒーロー最下部に重ねるマーキー */
.hero__marquee{ position:absolute; left:0; bottom:0; width:100%; z-index:3; background:linear-gradient(to top, rgba(10,10,9,.5) 0%, rgba(10,10,9,.18) 55%, rgba(10,10,9,0) 100%); border-bottom:0; padding:clamp(20px,4vh,56px) 0 clamp(8px,1.6vh,20px); pointer-events:none; }
.hero__marquee .marquee__track span{ font-size:clamp(2.4rem,6vw,5.5rem); -webkit-text-stroke-color:rgba(255,255,255,.7); }

/* ---------------- NEWS（ヒーロー直下の1行バー） ---------------- */
.news-bar-sec{ background:#fff; border-bottom:1px solid var(--line); }
.news-bar{ display:flex; align-items:center; gap:20px; padding:18px 0; color:var(--ink); }
.news-bar__label{ flex:none; position:relative; padding-right:20px; font-family:var(--font-en); font-weight:700; letter-spacing:.18em; color:var(--gold); font-size:1.4rem; }
.news-bar__label::after{ content:""; position:absolute; right:0; top:50%; transform:translateY(-50%); width:1px; height:18px; background:var(--line); }
.news-bar__date{ flex:none; font-family:var(--font-en); letter-spacing:.04em; color:var(--ink-sub); font-size:1.4rem; }
.news-bar__cat{ flex:none; padding:.28em 1.1em; border-radius:999px; font-size:1.15rem; letter-spacing:.04em; background:var(--gold-soft); color:var(--gold); }
.news-bar__ttl{ flex:1 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:1.5rem; font-weight:500; transition:color .3s var(--ease); }
.news-bar:hover .news-bar__ttl{ color:var(--gold); }
.news-bar__more{ flex:none; display:inline-flex; align-items:center; gap:.55em; font-family:var(--font-en); font-weight:600; font-size:1.25rem; letter-spacing:.08em; color:var(--ink-sub); transition:color .3s var(--ease); }
.news-bar__more .arrow{ position:relative; width:22px; height:8px; }
.news-bar__more .arrow::before{ content:""; position:absolute; top:50%; left:0; width:100%; height:1.5px; background:currentColor; transform:translateY(-50%); }
.news-bar__more .arrow::after{ content:""; position:absolute; top:50%; right:0; width:7px; height:7px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:translateY(-50%) rotate(45deg); }
.news-bar:hover .news-bar__more{ color:var(--gold); }
.news-bar:hover .news-bar__more .arrow{ animation:arrowMove .6s var(--ease); }
@media (max-width:640px){
  .news-bar{ gap:12px; padding:14px 0; }
  .news-bar__date{ font-size:1.25rem; }
  .news-bar__cat,.news-bar__more{ display:none; }
}

/* ---------------- 共通：2カラム見出し ---------------- */
.head-split{ display:flex; align-items:flex-end; justify-content:space-between; gap:30px; flex-wrap:wrap; margin-bottom:clamp(34px,4vw,56px); }
.head-split .sec-head{ margin-bottom:0; }

/* ---------------- NEWS ---------------- */
.news__list{ border-top:1px solid var(--line); }
.news__item{ display:grid; grid-template-columns:160px 130px 1fr auto; align-items:center; gap:24px; padding:24px 8px; border-bottom:1px solid var(--line); transition:background .3s,padding .3s; }
.news__item:hover{ background:var(--bg-soft); padding-left:18px; }
.news__date{ font-family:var(--font-en); letter-spacing:.06em; color:var(--ink-sub); font-size:1.4rem; }
.news__cat{ justify-self:start; padding:.3em 1.2em; border-radius:999px; font-size:1.15rem; letter-spacing:.08em; background:var(--gold-soft); color:var(--gold); }
.news__cat--info{ background:#eef0f2; color:#566; }
.news__ttl{ font-size:1.55rem; font-weight:500; }
.news__item .arrow-c{ width:38px; height:38px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--gold); transition:.3s; }
.news__item:hover .arrow-c{ background:var(--gold-grad); color:#fff; border-color:transparent; }
@media (max-width:768px){
  .news__item{ grid-template-columns:auto 1fr; gap:8px 14px; padding:18px 4px; }
  .news__ttl{ grid-column:1/3; font-size:1.45rem; }
  .news__item .arrow-c{ display:none; }
}

/* ---------------- ABOUT / MESSAGE ---------------- */
.about{ position:relative; overflow:hidden; }
.about__grid{ display:grid; grid-template-columns:0.78fr 1.22fr; gap:clamp(40px,5vw,80px); align-items:center; }
.about__visual{ position:relative; }
.about__visual img{ width:100%; border-radius:6px; box-shadow:var(--shadow); }
.about__visual .badge{ position:absolute; left:-18px; bottom:-18px; background:var(--dark); color:#fff; padding:22px 26px; border-radius:6px; box-shadow:var(--shadow); }
.about__visual .badge .en{ font-family:var(--font-en); color:var(--gold-2); letter-spacing:.16em; font-size:1.1rem; }
.about__visual .badge .ja{ font-size:1.5rem; font-weight:600; margin-top:4px; }
.about__body .lead-big{ font-size:clamp(2rem,3vw,2.8rem); font-weight:700; line-height:1.6; margin-bottom:.8em; }
.about__body .lead-big .accent{ background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.about__body p{ color:var(--ink-sub); }
.mv-cards{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:30px 0 34px; }
.mv-card{ padding:24px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.mv-card .en{ font-family:var(--font-en); letter-spacing:.16em; color:var(--gold); font-size:1.2rem; }
.mv-card .ttl{ font-size:1.7rem; font-weight:700; margin:.3em 0 .5em; }
.mv-card p{ font-size:1.35rem; line-height:1.85; }
@media (max-width:899px){
  .about__grid{ grid-template-columns:1fr; }
  .about__visual{ max-width:520px; margin:0 auto; }
  .mv-cards{ grid-template-columns:1fr; }
}

/* ---------------- STRENGTHS ---------------- */
.strengths__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,2vw,28px); }
@media (max-width:1080px){ .strengths__grid{ grid-template-columns:repeat(2,1fr); } }
.strength{ position:relative; padding:42px 30px 36px; background:var(--dark-2); border:1px solid var(--line-dark); border-radius:8px; overflow:hidden; }
.strength::before{ content:attr(data-no); position:absolute; top:-10px; right:14px; font-family:var(--font-en); font-weight:700; font-size:8rem; line-height:1; color:rgba(63,169,224,.1); }
.strength__icon{ width:56px; height:56px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(63,169,224,.12); color:var(--gold-2); margin-bottom:20px; }
.strength__icon svg{ width:28px; height:28px; }
.strength .strength__ttl{ font-size:2.4rem; font-weight:700; color:#fff; line-height:1.35; }
.strength__ttl .accent{ color:var(--gold-2); }
.strength p{ margin-top:.9em; font-size:1.4rem; line-height:1.85; color:rgba(255,255,255,.72); }
@media (max-width:899px){ .strengths__grid{ grid-template-columns:1fr; } }

/* ---------------- WORK（左右交互） ---------------- */
.work__intro{ max-width:40em; color:var(--ink-sub); margin-bottom:clamp(40px,5vw,70px); }
.work__row{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(36px,5vw,72px); align-items:center; }
.work__row + .work__row{ margin-top:clamp(48px,6vw,90px); }
.work__row:nth-child(even) .work__visual{ order:2; }
.work__visual img{ width:100%; border-radius:6px; box-shadow:var(--shadow); }
.work__no{ font-family:var(--font-en); font-weight:700; font-size:1.4rem; letter-spacing:.1em; color:var(--gold); }
.work__ttl{ font-size:clamp(2.2rem,3.2vw,3rem); font-weight:700; line-height:1.4; margin:.3em 0 .6em; }
.work__body p{ color:var(--ink-sub); }
.work__list{ margin-top:1.4em; display:grid; gap:12px; }
.work__list li{ position:relative; padding-left:1.8em; font-size:1.45rem; }
.work__list li::before{ content:""; position:absolute; left:0; top:.55em; width:12px; height:12px; border-radius:50%; background:var(--gold-grad); }
@media (max-width:899px){
  .work__row{ grid-template-columns:1fr; gap:24px; }
  .work__row:nth-child(even) .work__visual{ order:0; }
}

/* ---------------- JOBS（募集職種カード） ---------------- */
.jobs__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.5vw,32px); }
.iv-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.5vw,32px); }
.job-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; transition:transform .4s var(--ease),box-shadow .4s var(--ease); }
.job-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow); }
.job-card__media{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.job-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.job-card:hover .job-card__media img{ transform:scale(1.06); }
.job-card__tag{ position:absolute; left:14px; top:14px; padding:.4em 1.1em; border-radius:999px; font-size:1.15rem; letter-spacing:.06em; background:rgba(13,13,12,.78); color:var(--gold-2); }
.job-card__body{ padding:26px 26px 30px; display:flex; flex-direction:column; flex:1; }
.job-card__ttl{ font-size:2rem; font-weight:700; }
.job-card__en{ font-family:var(--font-en); letter-spacing:.12em; color:var(--gold); font-size:1.15rem; text-transform:uppercase; margin-top:.3em; }
.job-card p{ margin-top:1em; font-size:1.35rem; color:var(--ink-sub); line-height:1.85; }
.job-card__more{ margin-top:auto; padding-top:1.6em; display:inline-flex; align-items:center; gap:.7em; font-family:var(--font-en); font-weight:600; letter-spacing:.1em; color:var(--gold); }
.job-card__more .arrow{ position:relative; width:24px; height:8px; }
.job-card__more .arrow::before{ content:""; position:absolute; top:50%; left:0; width:100%; height:1.5px; background:currentColor; transform:translateY(-50%);}
.job-card__more .arrow::after{ content:""; position:absolute; top:50%; right:0; width:7px; height:7px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:translateY(-50%) rotate(45deg);}
.job-card:hover .job-card__more .arrow{ animation:arrowMove .6s var(--ease); }
@media (max-width:899px){ .jobs__grid,.iv-grid{ grid-template-columns:1fr; max-width:460px; margin:0 auto; } }

/* ---------------- ROADMAP teaser ---------------- */
.roadmap{ position:relative; }
.roadmap__track{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; position:relative; }
.roadmap__track::before{ content:""; position:absolute; top:42px; left:8%; right:8%; height:2px; background:linear-gradient(90deg,var(--gold-2),var(--gold)); opacity:.4; }
.rm-step{ position:relative; text-align:center; padding:0 10px; }
.rm-step__no{ position:relative; z-index:2; width:84px; height:84px; margin:0 auto 22px; border-radius:50%; background:#fff; border:2px solid var(--gold); display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--gold); box-shadow:0 10px 26px -16px rgba(2,125,201,.8); }
.rm-step__no .y{ font-family:var(--font-en); font-weight:700; font-size:2.6rem; line-height:1; }
.rm-step__no .u{ font-size:1.05rem; letter-spacing:.1em; }
.rm-step__ttl{ font-size:1.9rem; font-weight:700; }
.rm-step__cap{ margin-top:.3em; color:var(--gold); font-size:1.3rem; font-weight:600; }
.rm-step p{ margin-top:.9em; font-size:1.35rem; color:var(--ink-sub); line-height:1.85; }
@media (max-width:768px){
  .roadmap__track{ grid-template-columns:1fr; gap:34px; }
  .roadmap__track::before{ top:0; bottom:0; left:41px; right:auto; width:2px; height:auto; }
  .rm-step{ display:grid; grid-template-columns:84px 1fr; gap:20px; text-align:left; align-items:start; }
  .rm-step__no{ margin:0; }
}

/* ---------------- INTERVIEW ---------------- */
.interview{ overflow:hidden; }
.interview__slider{ margin:0 -12px; }
.interview__slider .slick-slide{ padding:0 12px; height:auto; }
.iv-card{ display:flex; flex-direction:column; background:#fff; border-radius:10px; overflow:hidden; border:1px solid var(--line); height:100%; transition:transform .4s var(--ease),box-shadow .4s var(--ease); }
.iv-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow); }
.iv-card__media{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.iv-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.iv-card:hover .iv-card__media img{ transform:scale(1.05); }
.iv-card__no{ position:absolute; left:16px; top:16px; font-family:var(--font-en); font-weight:700; font-size:1.6rem; color:#fff; background:rgba(13,13,12,.6); padding:.2em .7em; border-radius:4px; }
.iv-card__body{ padding:26px 26px 30px; display:flex; flex-direction:column; flex:1; }
.iv-card__role{ font-size:1.25rem; color:var(--gold); font-weight:600; letter-spacing:.04em; }
.iv-card__catch{ font-size:1.75rem; font-weight:700; line-height:1.5; margin:.4em 0 .5em; }
.iv-card__name{ font-size:1.3rem; color:var(--ink-sub); }
.iv-card__name .en{ font-family:var(--font-en); letter-spacing:.06em; margin-left:.5em; color:var(--ink-mute); }
.interview__slider .slick-prev,.interview__slider .slick-next{ width:48px; height:48px; z-index:5; border-radius:50%; border:1px solid var(--line); background:#fff; }
.interview__slider .slick-prev{ left:-8px; } .interview__slider .slick-next{ right:-8px; }
.interview__slider .slick-prev:before,.interview__slider .slick-next:before{ content:""; }
.interview__slider .slick-prev span,.interview__slider .slick-next span{ position:absolute; top:50%; left:50%; width:9px; height:9px; border-top:1.5px solid var(--gold); border-right:1.5px solid var(--gold); }
.interview__slider .slick-prev span{ transform:translate(-30%,-50%) rotate(-135deg); }
.interview__slider .slick-next span{ transform:translate(-70%,-50%) rotate(45deg); }

/* ---------------- PHOTO STREAM ---------------- */
.stream{ background:var(--dark); padding:0; overflow:hidden; }
.stream__track{ display:flex; }
.stream__track .slick-slide{ margin:0 6px; }
.stream__cell{ position:relative; aspect-ratio:1/1; }
.stream__cell img{ width:100%; height:100%; object-fit:cover; }
.stream__cell::after{ content:""; position:absolute; inset:0; background:rgba(13,13,12,.25); }

/* =========================================================
   LIGHT THEME : オールホワイト＆ゴールド
   ========================================================= */
/* ヒーロー：演出なし（ズーム/スライド停止）＋オーバーレイを明るく */
.hero__bg{ transform:none !important; transition:none !important; }
.hero__slide::before{ display:none; }
.hero__slide::after{ background:linear-gradient(180deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,0) 26%,rgba(20,19,15,.16) 100%); }
/* ヒーロー動画背景 */
.hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
/* ヒーロー左寄せ：表示後にふわっと浮かび上がるメッセージ */
.hero__message{ position:absolute; inset:0; z-index:4; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; text-align:left; padding:0 6%; pointer-events:none; background:linear-gradient(90deg, rgba(10,10,9,.5) 0%, rgba(10,10,9,.28) 38%, rgba(10,10,9,.06) 64%, rgba(10,10,9,0) 82%); opacity:0; animation:heroVeil 1.6s var(--ease) .35s forwards; }
/* ヒーロー：ブランド表示（タグライン＋社名） */
.hero__brand{ margin-bottom:clamp(18px,2.6vh,34px); }
.hero__brand-tag{ display:block; color:#fff; font-family:var(--font-jp); font-weight:600; font-size:clamp(1.15rem,1.5vw,1.5rem); letter-spacing:.16em; text-shadow:0 1px 10px rgba(10,10,9,.55); opacity:0; transform:translateY(28px); animation:heroFloat 1.3s var(--ease) .3s forwards; }
.hero__brand-logo{ display:block; width:clamp(200px,24vw,320px); height:auto; margin-top:.15em; filter:brightness(0) invert(1) drop-shadow(0 2px 12px rgba(10,10,9,.55)); opacity:0; transform:translateY(30px); animation:heroFloat 1.4s var(--ease) .45s forwards; }
.hero__message p{ margin:0; color:#fff; font-family:var(--font-jp); font-weight:700; font-size:clamp(1.55rem,3.4vw,3rem); line-height:2; letter-spacing:.07em; text-shadow:0 2px 26px rgba(10,10,9,.6),0 1px 5px rgba(10,10,9,.55); }
.hero__message p span{ display:block; opacity:0; transform:translateY(30px); animation:heroFloat 1.4s var(--ease) forwards; }
.hero__message p span:nth-child(1){ animation-delay:.6s; }
.hero__message p span:nth-child(2){ animation-delay:.92s; }
.hero__message p span:nth-child(3){ animation-delay:1.24s; }
/* ヒーロー：未経験／経験者ボタン */
.hero__btns{ display:flex; flex-wrap:wrap; gap:14px; margin-top:clamp(24px,3.4vh,42px); pointer-events:auto; opacity:0; transform:translateY(30px); animation:heroFloat 1.4s var(--ease) 1.55s forwards; }
.hero__btn{ font-family:var(--font-jp); text-transform:none; letter-spacing:.04em; font-weight:700; font-size:clamp(1.35rem,1.4vw,1.55rem); box-shadow:0 14px 34px -16px rgba(20,19,15,.55); }
.hero__btn.btn--white{ background:rgba(20,19,15,.22); backdrop-filter:blur(3px); }
/* 黒地×ゴールドのリッチボタン（メタリック仕上げ） */
.btn--luxe{
  color:#f6e2a0; border:1.6px solid transparent;
  background:
    linear-gradient(160deg,#211c14 0%,#14110c 45%,#0b0906 100%) padding-box,
    linear-gradient(135deg,#fbf1c0 0%,#e6c76e 22%,#b9862f 50%,#e6c76e 78%,#fbf1c0 100%) border-box;
  box-shadow:
    0 20px 42px -18px rgba(0,0,0,.75),
    0 6px 20px -10px rgba(201,155,60,.35),
    inset 0 1px 0 rgba(255,244,204,.22);
  text-shadow:0 1px 6px rgba(201,155,60,.35);
}
/* ホバー時に走る光沢（シャインスイープ） */
.btn--luxe::after{
  content:""; position:absolute; top:0; left:-75%; width:45%; height:100%;
  background:linear-gradient(105deg,transparent 0%,rgba(255,247,214,.55) 50%,transparent 100%);
  transform:skewX(-18deg); pointer-events:none; z-index:1;
}
.btn--luxe:hover::after{ animation:luxeShine .85s var(--ease); }
@keyframes luxeShine{ from{ left:-75%; } to{ left:135%; } }
/* ホバー：黒地を保ったまま金の輝きとリフトを強調 */
.btn--luxe::before{ background:linear-gradient(135deg,rgba(230,199,110,.20),rgba(201,155,60,0) 70%); }
.btn--luxe:hover{
  color:#fff3ce; border-color:transparent; transform:translateY(-2px);
  box-shadow:
    0 24px 48px -18px rgba(0,0,0,.8),
    0 10px 30px -8px rgba(201,155,60,.55),
    inset 0 1px 0 rgba(255,244,204,.3);
}
@media (max-width:560px){ .hero__btns{ width:100%; } .hero__btn{ flex:1 1 100%; justify-content:center; } }
@keyframes heroFloat{ to{ opacity:1; transform:none; } }
@keyframes heroVeil{ to{ opacity:1; } }
@media (max-width:899px){ .hero__message{ justify-content:flex-start; padding-top:24vh; } .hero__message p{ line-height:1.95; letter-spacing:.04em; } }
@media (prefers-reduced-motion:reduce){ .hero__message,.hero__message p span,.hero__btns,.hero__brand-tag,.hero__brand-logo{ animation-duration:.01ms; animation-delay:0s; opacity:1; transform:none; } }
/* ヒーロー右下：企業様向け導線ボタン */
.hero__biz{ position:absolute; right:clamp(16px,3vw,44px); bottom:clamp(22px,4vh,46px); z-index:6; display:inline-flex; align-items:center; gap:.7em; padding:.95em 1.6em; border-radius:999px; background:rgba(255,255,255,.94); color:var(--gold); font-size:1.4rem; font-weight:700; letter-spacing:.02em; box-shadow:0 12px 30px -12px rgba(20,19,15,.4); backdrop-filter:blur(4px); transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease); }
.hero__biz:hover{ background:var(--gold-grad); color:#fff; transform:translateY(-2px); }
.hero__biz .arrow{ position:relative; width:20px; height:8px; flex:none; }
.hero__biz .arrow::before{ content:""; position:absolute; top:50%; left:0; width:100%; height:1.5px; background:currentColor; transform:translateY(-50%); }
.hero__biz .arrow::after{ content:""; position:absolute; top:50%; right:0; width:7px; height:7px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:translateY(-50%) rotate(45deg); }
.hero__biz:hover .arrow{ animation:arrowMove .6s var(--ease); }
@media (max-width:899px){ .hero__biz{ right:12px; bottom:74px; padding:.8em 1.15em; font-size:1.1rem; gap:.5em; } }
.hero::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg,rgba(255,255,255,.52) 0%,rgba(255,255,255,.34) 45%,rgba(255,255,255,.44) 100%); }
.hero__dots li button{ background:rgba(255,255,255,.55); }
.hero__scroll{ color:rgba(20,19,15,.55); }
.hero__scroll .line{ background:rgba(20,19,15,.28); }
@media (max-width:899px){ .hero__slide::after{ background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 30%,rgba(20,19,15,.18) 100%); } }

/* 強みカード（旧・黒）→ 白カード */
.strength{ background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.strength::before{ color:rgba(2,125,201,.13); }
.strength__icon{ background:var(--gold-soft); color:var(--gold); }
.strength .strength__ttl{ color:var(--ink); }
.strength__ttl .accent{ color:var(--gold); }
.strength p{ color:var(--ink-sub); }

/* 代表バッジ：ゴールド */
.about__visual .badge{ background:var(--gold-grad); color:#fff; }
.about__visual .badge .en{ color:rgba(255,255,255,.85); }

/* 写真上のタグ・番号 */
.job-card__tag{ background:rgba(255,255,255,.92); color:var(--gold); }
.iv-card__no{ background:var(--gold); color:#fff; }

/* ---------------- 3年ロードマップ：①→②→③ を順番に表示 ---------------- */
.rm-step{ opacity:0; transform:translateY(22px); }
.roadmap__track::before{ transform:scaleX(0); transform-origin:left center; }
@media (max-width:768px){ .roadmap__track::before{ transform:scaleY(0); transform-origin:center top; } }
.roadmap__track.is-play::before{ animation:rmLine 1.4s var(--ease) .2s forwards; }
.roadmap__track.is-play .rm-step{ animation:rmStepIn .6s var(--ease) forwards; }
.roadmap__track.is-play .rm-step:nth-child(1){ animation-delay:.15s; }
.roadmap__track.is-play .rm-step:nth-child(2){ animation-delay:.75s; }
.roadmap__track.is-play .rm-step:nth-child(3){ animation-delay:1.35s; }
@keyframes rmLine{ to{ transform:none; } }
@keyframes rmStepIn{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  .rm-step{ opacity:1; transform:none; }
  .roadmap__track::before{ transform:none; }
}

/* セクション間の余白は共通(style.css)で一括管理（TOP個別の上書きは廃止） */

/* =========================================================
   DESIGN UPLIFT : ヒーロー以下のデザイン性強化（TOP専用）
   ========================================================= */

/* ---- 共通：大型英字ウォーターマーク（見出し背景） ---- */
#about, #strengths, #roadmap{ position:relative; overflow:hidden; }
#about > .inner, #strengths > .inner, #roadmap > .inner{ position:relative; z-index:1; }
#about::after, #strengths::after, #roadmap::after{
  content:attr(data-wm); position:absolute; top:clamp(6px,2.4vw,30px); left:50%;
  transform:translateX(-50%); z-index:0; pointer-events:none; white-space:nowrap;
  font-family:var(--font-en); font-weight:700; font-size:clamp(6.4rem,15vw,15rem);
  line-height:1; letter-spacing:.04em;
  color:transparent; -webkit-text-stroke:1.2px rgba(2,125,201,.07);
}
#strengths::after{ -webkit-text-stroke-color:rgba(2,125,201,.10); }

/* ---- 共通：見出し英字ラベルを少しリッチに ---- */
.sec-head__en{ position:relative; z-index:1; }

/* ---- ABOUT / MV カード（リッチ版） ---- */
#about .sec-head__lead{ font-size:1.55rem; line-height:2.05; }
.mv-cards{ gap:clamp(20px,2.4vw,30px); }
.mv-card{
  position:relative; overflow:hidden; isolation:isolate;
  padding:clamp(34px,3.4vw,46px) clamp(28px,3vw,42px) clamp(30px,3vw,40px) clamp(34px,3.4vw,48px);
  border:1px solid var(--line); border-radius:22px; background:#fff;
  box-shadow:var(--shadow-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
/* 左の縦グラデーションバー（常時表示） */
.mv-card::before{ content:""; position:absolute; top:0; left:0; width:5px; height:100%;
  background:var(--gold-grad); }
/* 右上の光彩（ホバーで点灯） */
.mv-card::after{ content:""; position:absolute; z-index:-1; top:-45%; right:-30%;
  width:75%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle, rgba(63,169,224,.18), transparent 70%);
  opacity:0; transition:opacity .6s var(--ease); }
.mv-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow); border-color:transparent; }
.mv-card:hover::after{ opacity:1; }
/* 大きな連番ウォーターマーク */
.mv-card__no{
  position:absolute; top:clamp(8px,1.4vw,18px); right:clamp(18px,2.2vw,30px);
  font-family:var(--font-en); font-weight:700; font-size:clamp(5rem,7.5vw,7.8rem);
  line-height:1; color:transparent; -webkit-text-stroke:1.4px rgba(2,125,201,.15);
  pointer-events:none; user-select:none; z-index:0;
}
/* アイコンバッジ */
.mv-card__icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:clamp(54px,5vw,64px); height:clamp(54px,5vw,64px); border-radius:18px;
  background:var(--gold-grad); color:#fff;
  box-shadow:0 14px 30px -14px rgba(2,125,201,.85);
  margin-bottom:clamp(18px,2vw,24px); position:relative; z-index:1;
  font-family:var(--font-en); font-weight:700; font-size:clamp(2.6rem,2.8vw,3.1rem);
  line-height:1; letter-spacing:.02em; text-transform:uppercase;
}
.mv-card__icon::after{ content:""; position:absolute; left:14px; right:14px; bottom:11px; height:2px;
  background:rgba(255,255,255,.5); border-radius:2px; }
.mv-card .en{
  display:inline-flex; align-items:center; gap:.6em; position:relative; z-index:1;
  font-family:var(--font-en); letter-spacing:.18em; color:var(--gold); font-size:1.25rem; font-weight:600;
}
.mv-card .en::before{ content:""; width:22px; height:2px; background:var(--gold-grad); }
.mv-card .ttl{ font-size:clamp(2rem,2.4vw,2.3rem); font-weight:700; margin:.35em 0 .55em; position:relative; z-index:1; }
.mv-card__desc{ font-size:1.4rem; line-height:1.95; color:var(--ink-sub); position:relative; z-index:1; }
.mv-card__desc .accent{ font-weight:700;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* ---- STRENGTHS カード ---- */
.strength{ border-radius:16px; padding:46px 32px 38px;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease); }
.strength::after{ content:""; position:absolute; top:0; left:0; width:100%; height:3px;
  background:var(--gold-grad); opacity:.9; }
.strength:hover{ transform:translateY(-7px); box-shadow:var(--shadow); }
.strength__icon{ box-shadow:0 0 0 6px rgba(2,125,201,.06); }
.strength .strength__ttl{ position:relative; padding-bottom:.55em; }
.strength .strength__ttl::after{ content:""; position:absolute; left:0; bottom:0;
  width:42px; height:2px; background:var(--gold-grad); }

/* ---- WORK：写真フレーム＆番号 ---- */
.work{ position:relative; }
.work__visual{ position:relative; z-index:1; }
.work__visual::after{ content:""; position:absolute; z-index:-1; right:-16px; bottom:-16px;
  width:62%; height:68%; border-radius:18px; background:var(--gold-grad); opacity:.13; }
.work__row:nth-child(even) .work__visual::after{ right:auto; left:-16px; }
.work__visual img{ border-radius:18px; position:relative; }
.work__no{ display:inline-flex; align-items:center; gap:.5em; font-size:1.6rem;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.work__no::before{ content:""; width:28px; height:2px; background:var(--gold-grad); }
.work__ttl{ letter-spacing:.01em; }

/* ---- ROADMAP：円とカード感の微調整 ---- */
.rm-step__no{ transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.rm-step:hover .rm-step__no{ transform:translateY(-4px); box-shadow:0 16px 30px -14px rgba(2,125,201,.7); }
.roadmap__track::before{ height:2px; opacity:.55;
  background:linear-gradient(90deg, rgba(2,125,201,0), var(--gold-2), var(--gold), rgba(2,125,201,0)); }
.rm-step__ttl{ letter-spacing:.01em; }

/* ---- JOBS / INTERVIEW カード ---- */
.job-card, .iv-card{ border-radius:16px; position:relative; }
.job-card::after, .iv-card::after{ content:""; position:absolute; top:0; left:0; width:100%; height:3px;
  background:var(--gold-grad); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease); z-index:3; }
.job-card:hover::after, .iv-card:hover::after{ transform:scaleX(1); }
.job-card__media::after, .iv-card__media::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(2,40,70,0) 52%, rgba(2,40,70,.42));
  opacity:0; transition:opacity .45s var(--ease); }
.job-card:hover .job-card__media::after, .iv-card:hover .iv-card__media::after{ opacity:1; }
.job-card__ttl{ position:relative; display:inline-block; }
.iv-card__catch{ position:relative; }

/* ---- SLOGAN：淡いブルーバンド＋三角モチーフ ---- */
.slogan{ background:linear-gradient(135deg,#eaf4fc 0%,#dcecfb 100%); }
.slogan::before{ display:block; inset:0; opacity:1;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='112'%3E%3Cpath d='M64 14 L114 98 L14 98 Z' fill='none' stroke='%23027dc9' stroke-width='2' opacity='0.07'/%3E%3C/svg%3E") repeat;
  background-size:128px 112px; }
.slogan__en{ letter-spacing:.34em; }

/* ---- CTA：ブルーグラデの訴求パネル＋三角ブループリント ---- */
#cta{ background:linear-gradient(135deg,#0a6cb0 0%,#027dc9 52%,#3fa9e0 100%); color:#fff; }
#cta::before{ display:block; content:""; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:1;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='132' height='116'%3E%3Cpath d='M66 14 L118 102 L14 102 Z' fill='none' stroke='%23ffffff' stroke-width='2' opacity='0.12'/%3E%3C/svg%3E") repeat;
  background-size:132px 116px; }
#cta::after{ display:none; }
#cta .inner{ z-index:2; }
#cta .cta__en{ color:rgba(255,255,255,.88); }
#cta .cta__ja{ color:#fff; }
#cta .cta__ja .text-gold{ color:#fff; background:linear-gradient(transparent 76%, rgba(255,255,255,.42) 0); padding:0 .08em; }
#cta .cta__lead{ color:rgba(255,255,255,.92); }
#cta .cta__tel .num{ color:#fff; }
#cta .cta__tel .note{ color:rgba(255,255,255,.72); }
#cta .btn--gold{ background:#fff; color:var(--gold); border-color:#fff; box-shadow:0 16px 34px -16px rgba(0,0,0,.5); }
#cta .btn--gold::before{ background:#0a2a44; }
#cta .btn--gold:hover{ color:#fff; }
