/* =========================================
   Global / Base（全ページ共通）
========================================= */
:root{
    --rb-primary: #0d6efd;
    --rb-primary-2: #0a49de;
    --rb-deep: #0a1e44;
    --rb-deep-2: #071226;
    --bs-body-font-family: "Noto Sans JP",
    "Hiragino Sans","ヒラギノ角ゴ ProN W3","Yu Gothic","YuGothic",
    "Meiryo","Segoe UI", Arial, system-ui, sans-serif;
  }
  
  html, body {
    scroll-behavior: smooth;
    font-family: var(--bs-body-font-family);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  a { text-decoration: none; }
  a:hover { text-decoration: underline; }

  /* ロゴ */
  .logo-img {
    width: 200px;
  }
  
  /* fixed-topヘッダーの余白（Headerをfixed-topにしている場合） */
  .pt-header { padding-top: 80px; }
  
  /* 汎用ユーティリティ */
  .object-fit-cover { object-fit: cover; }
  .rb-zoom { transition: transform .5s ease; }
  .rb-zoom:hover { transform: translateZ(0) scale(1.02); }
  
  
  /* 汎用セクション帯 */
  .rb-blue{
    background: radial-gradient(
      circle at 7% 55%,
      #009BF0 0 0%,
      #0057C7 33% 90%
    );
  }
  .rb-recruit{
    background: radial-gradient(
      circle at 80% 70%,
      #009BF0 0 0%,
      #0057C7 33% 90%
    );
    padding: 7rem!important;
  }
  
  /* News（汎用のlist-group調整） */
  .list-group-item{ border-color: rgba(0,0,0,.06); }

  :root { --marquee-duration: 20s; }
  .flow-message{
    display: inline-block;
    font-size: 16rem;
    white-space: nowrap;
    color: rgb(150, 218, 255);
    opacity: 0.2;
    font-family: "Outfit", sans-serif;
    font-weight: 600;
    letter-spacing: -2px;
    padding-right: 4rem;             /* 2つの間の間隔 */
    top:10% !important;
  }
  .flow-track{
    display: inline-flex;
    width: max-content;
    animation: rb-marquee var(--marquee-duration) linear infinite;
    will-change: transform;
  }

/* リンク一覧（区切り線＆↗アイコン） */
.rb-link-list{
  list-style:none;
  margin:0;
  padding:0 2px !important;
  font-size: 0.9rem;
}
.rb-link-list li{
  border-bottom:1px solid #c1c5cc;
}
.rb-link-row{
  all: unset; display:flex; align-items:baseline; width:100%;
  padding:14px 0; cursor:pointer; color:#1a1f29;
}
.rb-link-row:hover{ color:#0057d9; }

.rb-link-icon{
  font-size: 16px;            /* お好みで 16–20px */
  line-height: 1;
  margin-left: .3em;          /* 文字との間隔 */
  vertical-align: -2px;       /* ベースライン調整 */
  color: #0155C4;
  transition: transform .15s ease, color .15s ease;
}

  @keyframes rb-marquee{
    /* 2つ分の幅のうち、ちょうど半分だけ左へ動かすと継ぎ目が消える */
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
  
  /* ユーザーの reduced-motion 設定に配慮（任意） */
  @media (prefers-reduced-motion: reduce){
    .flow-track{ animation: none; }
  }
  
/* ふわっと表示（ページロードで一度だけ） */
.rb-fade-in{
  opacity: 0;
  transform: translateY(16px) scale(0.98);
  animation: rbFadeInUp 2.9s cubic-bezier(.22,.61,.36,1) .2s both; /* 遅延0.1s */
  will-change: transform, opacity;
}

@keyframes rbFadeInUp{
  0%{
    opacity: 0;
    transform: translateY(16px) scale(0.98);
  }
  100%{
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* 見出しブロック */
.rb-sec-head{ position: relative; }

/* セクション見出し（共通） */
.rb-sec-title{
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: .01em;
  font-size: clamp(2rem, 2.5vw, 2rem);   /* 画像のように大きめ */
  margin: 0;
}

.rb-sec-sub{
  font-size: clamp(.9rem, 1.1vw, 1.2rem);
  letter-spacing: .02em;
}

/* 左下の青いバー */
.rb-sec-bar, .rb-sec-bar-white{
  width: 100px;           /* 長さはお好みで */
  height: 4px;
  background-color: #009BF0;
}

.rb-sec-bar-white{
  width: 100px;           /* 長さはお好みで */
  height: 4px;
  background-color: #fff;
}

/* 右側の本文（ゆったりめの行間） */
.rb-sec-lead{
  font-size: 1rem;
  line-height: 2;         /* スクショに近いゆとり */
  letter-spacing: .02em;
}

.rb-sec-description {
  width: 80%;
}

/* 小さな画面では縦並び＆マージン調整 */
@media (max-width: 991.98px){
  .rb-sec-head{ margin-bottom: 12px; }
  .rb-sec-bar{ width: 140px; height: 5px; }
}

/* 動きに弱い人の設定に配慮（任意） */
@media (prefers-reduced-motion: reduce){
  .rb-fade-in{
    animation: none;
    opacity: 1;
    transform: none;
  }
}

  /* Responsive（共通） */
  @media (max-width: 991.98px){
    .pt-header { padding-top: 64px; }
  }
  @media (prefers-reduced-motion: reduce){
    .rb-zoom{ transition: none; }
    html, body { scroll-behavior: auto; }
  }

  /* =========================================
     Custom Style
  ========================================= */
  .btn-normal {
    padding: 20px 80px;
    background-color: #fff;
    color: #0055C4;
  }

  /* 画面全体をガラスでぼかす */
.rb-glass-backdrop{
  position: fixed; inset: 0;
  background: rgba(10,16,28,.28);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  display: grid; place-items: center;
  z-index: 1050;
  animation: rbFade .18s ease;
}
