@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 * サイト：株式会社タウシステム 採用サイト（ポップ／親しみやすい青基調）
 * 共通main.cssの値・装飾では再現できない「ぽってり立体」デザインを tau- で追加。
 *
 * .tau-dots / --white / --blue-card / --footer  - ドット柄背景（ポップなパターン背景）
 * .tau-sec / --tight / --flush-*               - セクション上下余白（clamp可変）
 * .tau-wrap / --narrow / --mid / --read / --form - コンテンツ最大幅ラッパー
 * .tau-btn / --blue --white --yellow --sm --block - ぽってり押し込みピルボタン
 * .tau-card / --soft / --pad / --flat            - 白カード（2.5px枠+ハードオフセット影）
 * .tau-bnr / --tilt-l --tilt-r                   - ホバーで浮くナビバナーカード
 * .tau-badge / --blue --outline                  - ラベルバッジ（イエロー/ブルー）
 * .tau-en                                        - Fredoka英字ラベル
 * .tau-eyebrow                                    - 中央寄せEN+JA見出しブロック
 * .tau-title-* (mv/page/sec/h2/h3)               - 見出しタイプ別clampサイズ
 * .tau-lead                                       - リード文
 * .tau-hero / __crumb / __row                     - 下層ページヒーロー（ドット背景）
 * .tau-grid-auto / --sm --xs                      - auto-fit grid（カード自動折返し）
 * .tau-ph (-box -tile -rotate -stripe -grad)      - 写真差し替え用プレースホルダー
 * .tau-float-a / -b / __wrap / __sticker          - MV浮遊カード+アニメ+ステッカー
 * .tau-chip                                       - MV特長チップ
 * .tau-kv / __row __key __val                     - 項目名+内容テーブル（会社概要等）
 * .tau-icon-circle / --sm --lg --yellow --white   - 丸アイコン枠
 * .tau-note (--blue/--yellow)                     - 補足ボックス
 * .tau-tl / __row __time __mark __body            - 1日のスケジュール用タイムライン
 * .tau-voice / __head __body __qrow __q           - 先輩社員Q&Aカード
 * .tau-cta-band (--blue/--accent)                 - 帯CTA
 * .tau-inp                                        - フォーム入力欄（角丸+フォーカス枠）
 * .tau-form-label / __req                         - フォームラベル
 * .tau-qr                                         - QRコードボックス
 * .tau-news-row                                   - お知らせ行リンク
 * .tau-pager / __item                             - ページネーション
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・装飾パターン不足：ハードオフセット影（0 8px 0 色）= ぽってり立体。共通の
 *   shadow-* はぼかし影のみ。ドット柄(polka-dot)は色/サイズ/密度がデザインと不一致。
 * ・状態不足：press（押し込み）ホバー＝translateY+影縮小。共通hover-upは浮きのみ。
 * ・値の粒度不足：見出し・本文がclamp()可変。共通fz-*は固定値刻みのみ。
 * ・構造不足：MV浮遊カード（傾き+ふわふわ）/ ステッカー吹き出しの重なり構造。
 */

:root {
  --tau-blue:   #1565C0;
  --tau-blue-d: #0D47A1;
  --tau-blue-l: #1E88E5;
  --tau-blue-w: #BBD7F5;   /* 白ボタンの影 */
  --tau-yellow: #FFC233;
  --tau-yellow-d: #C7921A;
  --tau-yellow-e: #E0A91F;
  --tau-yellow-ink: #5A3D00;
  --tau-acc:  #E3F2FD;     /* 薄い青（背景・枠・影） */
  --tau-soft: #F4F9FF;
  --tau-line2: #EEF4FB;
  --tau-ink:  #1A2740;
  --tau-ink2: #33425C;
  --tau-ink3: #41506B;
  --tau-gray: #5A6B85;
}

/* ============================================================
 * 背景：ポップなドット柄パターン
 * ============================================================ */
.tau-dots {
  background-color: var(--tau-acc);
  background-image: radial-gradient(#BBD4F5 2.5px, transparent 2.5px);
  background-size: 26px 26px;
}
.tau-dots--white {
  background-color: #fff;
  background-image: radial-gradient(#EAF2FB 2px, transparent 2px);
  background-size: 24px 24px;
}
.tau-dots--footer {
  background-image: radial-gradient(rgba(255, 255, 255, .08) 2px, transparent 2px);
  background-size: 22px 22px;
}
.tau-dots--card {
  background-image: radial-gradient(rgba(255, 255, 255, .1) 2px, transparent 2px);
  background-size: 24px 24px;
}

/* ============================================================
 * レイアウト：セクション余白 / ラッパー幅
 * ============================================================ */
.tau-sec { padding: clamp(48px, 6vw, 84px) 24px; }
.tau-sec--tight { padding: clamp(48px, 5vw, 68px) 24px; }
.tau-sec--mv { padding: clamp(48px, 7vw, 92px) 24px; }
.tau-sec--flush-top { padding-top: 0; }
.tau-sec--flush-bottom { padding-bottom: clamp(48px, 6vw, 72px); }

.tau-wrap { max-width: 1240px; margin-inline: auto; }
.tau-wrap--mid { max-width: 1180px; margin-inline: auto; }
.tau-wrap--narrow { max-width: 1140px; margin-inline: auto; }
.tau-wrap--read { max-width: 1080px; margin-inline: auto; }
.tau-wrap--form { max-width: 940px; margin-inline: auto; }

/* ============================================================
 * ぽってり押し込みピルボタン
 * ============================================================ */
.tau-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-family: inherit;
  font-weight: 900;
  font-size: 17px;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  padding: 17px 28px;
  border-radius: 999px;
  border: 2px solid;
  cursor: pointer;
  box-shadow: 0 6px 0 var(--tau-sh);
  transition: transform .08s ease, box-shadow .08s ease;
}
.tau-btn:hover  { transform: translateY(2px); box-shadow: 0 4px 0 var(--tau-sh); }
.tau-btn:active { transform: translateY(4px); box-shadow: 0 2px 0 var(--tau-sh); }
.tau-btn svg { display: block; flex: none; }

.tau-btn--blue {
  --tau-sh: var(--tau-blue-d);
  background: var(--tau-blue); color: #fff; border-color: var(--tau-blue-d);
}
.tau-btn--white {
  --tau-sh: var(--tau-blue-w);
  background: #fff; color: var(--tau-blue); border-color: var(--tau-blue);
}
.tau-btn--yellow {
  --tau-sh: var(--tau-yellow-d);
  background: var(--tau-yellow); color: var(--tau-yellow-ink); border-color: var(--tau-yellow-e);
}
.tau-btn--lg { font-size: 18px; padding: 18px 30px; }
.tau-btn--sm { font-size: 15px; padding: 12px 20px; }
.tau-btn--block { width: 100%; justify-content: space-between; }
.tau-btn--full { width: 100%; }
.tau-btn--wide  { flex: 1 1 300px; justify-content: space-between; padding: 22px 28px; }

/* ============================================================
 * 白カード（2.5px枠 + ハードオフセット影）
 * ============================================================ */
.tau-card {
  background: #fff;
  border: 2.5px solid var(--tau-acc);
  border-radius: 20px;
  box-shadow: 0 8px 0 var(--tau-acc);
}
.tau-card--deep { box-shadow: 0 10px 0 var(--tau-acc); }
.tau-card--deeper { box-shadow: 0 12px 0 var(--tau-acc); }
.tau-card--clip { overflow: hidden; }
.tau-card--pad { padding: clamp(28px, 4vw, 46px); }
.tau-card--pad-sm { padding: 30px 26px; }
.tau-card--pad-md { padding: clamp(26px, 3.5vw, 40px); }
.tau-card--pad-row { padding: 28px 30px; }

/* フローのステップ箱 */
.tau-step {
  background: var(--tau-soft);
  border: 2px solid var(--tau-acc);
  border-radius: 16px;
  padding: 18px 16px;
}
.tau-step__en { font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 13px; color: var(--tau-blue); }
.tau-step__title { font-size: 15px; font-weight: 900; margin-top: 8px; line-height: 1.5; }

/* 社風セクションの「POINT」あしらい（見出し「社風・職場環境」の右上に配置） */
.tau-culture { position: relative; overflow: hidden; }
.tau-culture-head { position: relative; display: inline-block; isolation: isolate; }
.tau-culture-deco {
  position: absolute; top: -32px; right: -50px;
  width: clamp(52px, 6vw, 76px); height: auto;
  --rot: -8deg;
  animation: tauFloat 6s ease-in-out infinite;
  pointer-events: none; z-index: -1;   /* 見出しテキストの背面・背景の前面 */
}
@media (max-width: 700px) {
  .tau-culture-deco { width: 46px; top: -22px; right: -30px; }
}

/* 薄い青タイル（こんな人に向いています 等） */
.tau-tile-acc {
  background: var(--tau-acc);
  border-radius: 20px;
  padding: 32px 26px;
  text-align: center;
}

/* 番号サークル（成長ステップ） */
.tau-stepnum {
  display: flex; align-items: center; justify-content: center; flex: none;
  width: 72px; height: 72px; border-radius: 50%; color: #fff;
  font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 24px;
}
.tau-stepnum--l { background: #90CAF9; }
.tau-stepnum--m { background: #42A5F5; }
.tau-stepnum--d { background: #1565C0; }

/* ナビバナーカード（ホバーで浮く） */
.tau-bnr {
  position: relative;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--tau-ink);
  background: #fff;
  border: 2.5px solid var(--tau-acc);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 0 var(--tau-acc);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.tau-bnr--tilt-l { transform: rotate(-1.5deg); }
.tau-bnr--tilt-r { transform: rotate(1.5deg); }
.tau-bnr:hover {
  transform: translateY(-6px) rotate(0);
  box-shadow: 0 14px 0 var(--tau-blue-w);
  border-color: var(--tau-blue);
}
.tau-bnr__media {
  aspect-ratio: 16 / 10;
  background: #EAF3FC;
  border-bottom: 2px solid var(--tau-acc);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; color: #9DBBDC;
}
.tau-bnr__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tau-bnr__body { padding: 0 22px 24px; }
.tau-bnr__icon {
  display: flex; width: 66px; height: 66px; border-radius: 50%;
  align-items: center; justify-content: center;
  margin-top: -33px; border: 4px solid #fff;
  box-shadow: 0 8px 16px rgba(13, 71, 161, .22);
}
.tau-bnr__more {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 16px; color: var(--tau-blue); font-weight: 900; font-size: 14px;
}
/* 「タウシステムを、もっと知る。」バナー本文だけ行間を詰める */
.tau-bnr__body .tau-body { line-height: 1.6; }

/* ============================================================
 * バッジ / 英字ラベル / 見出し
 * ============================================================ */
.tau-badge {
  display: inline-block;
  background: var(--tau-yellow); color: var(--tau-yellow-ink);
  font-weight: 900; font-size: 13px;
  padding: 7px 15px; border-radius: 8px;
}
.tau-badge--blue { background: var(--tau-blue); color: #fff; }
.tau-badge--outline { background: #fff; border: 2px solid var(--tau-blue); color: var(--tau-blue); }

.tau-en {
  font-family: "Fredoka", sans-serif;
  font-weight: 600;
  color: var(--tau-blue);
  letter-spacing: .08em;
  font-size: 16px;
}
.tau-en--sm { font-size: 13px; letter-spacing: .06em; }

.tau-eyebrow { text-align: center; }
.tau-eyebrow__ja {
  margin: 8px 0 0;
  font-size: clamp(26px, 3.6vw, 40px);
  font-weight: 900;
  line-height: 1.3;
}

.tau-title-mv   { font-size: clamp(33px, 5.4vw, 62px); font-weight: 900; line-height: 1.2; letter-spacing: .01em; margin: 0; }
.tau-title-page { font-size: clamp(30px, 4.6vw, 52px); font-weight: 900; line-height: 1.25; margin: 6px 0 0; }
.tau-title-sec  { font-size: clamp(26px, 3.6vw, 40px); font-weight: 900; line-height: 1.3; margin: 0; }
.tau-title-h2   { font-size: clamp(22px, 3vw, 32px); font-weight: 900; line-height: 1.5; margin: 0; }
.tau-title-h3   { font-size: clamp(20px, 2.6vw, 26px); font-weight: 900; line-height: 1.4; margin: 0; }
.tau-text-blue  { color: var(--tau-blue); }
.tau-text-ink3  { color: var(--tau-ink3); }

.tau-lead {
  font-size: clamp(15px, 1.7vw, 18px);
  color: var(--tau-ink3);
  font-weight: 500;
  line-height: 1.9;
  margin: 16px 0 0;
}
.tau-lead--mv { font-size: clamp(16px, 1.8vw, 19px); line-height: 1.95; max-width: 30em; margin-top: 24px; }
.tau-lead--w { max-width: 42em; }
.tau-lead--w2 { max-width: 40em; }
.tau-lead--narrow { max-width: 34em; }
.tau-body { font-size: 15px; color: var(--tau-ink2); font-weight: 500; line-height: 1.85; }
.tau-body--lg { font-size: 16px; line-height: 2.1; }

/* 本文段落の間隔 */
.tau-prose p { margin: 0 0 18px; }
.tau-prose p:last-child { margin-bottom: 0; }

/* ============================================================
 * 下層ページヒーロー（ドット背景）
 * ============================================================ */
.tau-hero { padding: clamp(40px, 5vw, 68px) 24px; }
.tau-hero__crumb { font-size: 13px; font-weight: 700; color: var(--tau-gray); }
.tau-hero__crumb a { color: var(--tau-blue); text-decoration: none; }
.tau-hero__en { margin-top: 18px; }
/* 左テキスト＋右写真の2カラム（写真なしのときはテキストが全幅） */
.tau-hero__grid { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(24px, 4vw, 52px); }
.tau-hero__text { flex: 1 1 460px; min-width: 280px; }
.tau-hero__media { flex: 1 1 360px; min-width: 260px; }
.tau-hero__media img,
.tau-hero__ph {
  width: 100%; aspect-ratio: 16 / 10; display: block;
  object-fit: cover;
  border-radius: 20px; border: 5px solid #fff;
  box-shadow: 0 14px 30px rgba(13, 71, 161, .18);
}
.tau-hero__ph {
  background: linear-gradient(135deg, var(--tau-blue), var(--tau-blue-l));
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  color: rgba(255, 255, 255, .9); font-size: 13px; font-weight: 700;
}

/* ============================================================
 * グリッド（auto-fit）
 * ============================================================ */
.tau-grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.tau-grid-auto--sm { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.tau-grid-auto--lg { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 30px; align-items: start; }
/* スケジュール2カードを縦に並べ、間をしっかり空ける */
.tau-sched-list { display: flex; flex-direction: column; gap: clamp(32px, 4vw, 52px); }
.tau-grid-auto--gap-sm { gap: 22px; }
.tau-flex { display: flex; flex-wrap: wrap; }

/* ============================================================
 * 画像プレースホルダー（写真差し替え用）
 * ============================================================ */
.tau-ph {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 12px; text-align: center;
  color: rgba(255, 255, 255, .92);
}
.tau-ph--grad { background: linear-gradient(135deg, var(--tau-blue), var(--tau-blue-l)); }
/* ナビバナー円形アイコンの個別グラデーション（135deg 左上→右下） */
.tau-grad-1 { background: linear-gradient(135deg, #1565C0, #1E88E5); }
.tau-grad-2 { background: linear-gradient(135deg, #0D47A1, #1565C0); }
.tau-grad-3 { background: linear-gradient(135deg, #1E88E5, #42A5F5); }
.tau-grad-4 { background: linear-gradient(135deg, #1565C0, #1976D2); }
.tau-ph--grad-d { background: linear-gradient(135deg, var(--tau-blue-d), var(--tau-blue)); }
.tau-ph--soft { background: var(--tau-soft); color: var(--tau-gray); }
.tau-ph--tile {
  background: #EAF3FC; color: #9DBBDC;
}
.tau-ph__note { font-size: 13px; font-weight: 700; line-height: 1.6; }
.tau-ph__note span { font-weight: 500; opacity: .75; }
.tau-ph--r16  { border-radius: 16px; }
.tau-ph--r18  { border-radius: 18px; }
.tau-ph--r20  { border-radius: 20px; }
.tau-ph--frame { border: 5px solid #fff; box-shadow: 0 16px 34px rgba(13, 71, 161, .24); }
.tau-ph--pad  { padding: 18px; }
.tau-ph--ar43 { aspect-ratio: 4 / 3; }
.tau-ph--ar45 { aspect-ratio: 4 / 5; }
.tau-ph--rotate-l { transform: rotate(-2deg); }
/* プレースホルダー枠（ar/角丸/白縁/傾き）に実画像をはめる */
.tau-ph-img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* aspect-ratio で高さを決める枠用（flex子で高さが伸びないように height:auto） */
.tau-ph-cover { width: 100%; height: auto; object-fit: cover; display: block; }

/* ============================================================
 * MV：浮遊カード + アニメ + ステッカー
 * ============================================================ */
@keyframes tauFloat {
  0%, 100% { transform: translateY(0) rotate(var(--rot, 0deg)); }
  50%      { transform: translateY(-10px) rotate(var(--rot, 0deg)); }
}
.tau-mv-art { position: relative; min-height: 380px; }
.tau-float {
  position: absolute;
  border-radius: 18px;
  border: 4px solid #fff;
  animation: tauFloat 7s ease-in-out infinite;
}
.tau-float--a {
  top: 18px; left: 6%; width: 64%; aspect-ratio: 4 / 3;
  --rot: -4deg; transform: rotate(-4deg);
  background: linear-gradient(135deg, var(--tau-blue), var(--tau-blue-l));
  box-shadow: 0 14px 30px rgba(13, 71, 161, .28);
  display: flex; align-items: flex-end; padding: 16px;
  color: rgba(255, 255, 255, .9);
  overflow: hidden;
}
/* 浮遊カードにはめ込む実写真（白縁の内側いっぱい） */
.tau-float__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.tau-float--b {
  bottom: 8px; right: 2%; width: 52%; aspect-ratio: 3 / 4;
  --rot: 5deg; transform: rotate(5deg);
  animation-duration: 8s; animation-delay: .8s;
  background: #fff;
  box-shadow: 0 14px 30px rgba(13, 71, 161, .22);
  overflow: hidden;
}
.tau-float--b .tau-float__inner {
  height: 100%; padding: 14px; text-align: center;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  color: var(--tau-gray);
  background: repeating-linear-gradient(135deg, #EDF4FC, #EDF4FC 12px, #F8FBFF 12px, #F8FBFF 24px);
}
.tau-float__note { font-size: 12.5px; font-weight: 700; line-height: 1.6; }
.tau-float__note span { font-weight: 500; opacity: .75; }
.tau-mv-orb {
  position: absolute; top: -90px; right: -90px;
  width: 340px; height: 340px; border-radius: 50%;
  background: var(--tau-yellow); opacity: .18;
}
/* FV右下のあしらい（横長グラデ装飾・コンテンツ背面） */
.tau-mv-deco-br {
  position: absolute; right: 0; bottom: 0;
  width: clamp(220px, 42vw, 600px); height: auto;
  pointer-events: none; z-index: 0;
}
/* 同じ素材を180度回転して左上にも配置 */
.tau-mv-deco-tl {
  position: absolute; left: 0; top: 0;
  width: clamp(200px, 38vw, 540px); height: auto;
  transform: rotate(180deg);
  pointer-events: none; z-index: 0; opacity: .85;
}
@media (max-width: 700px) {
  .tau-mv-deco-br { width: 64%; opacity: .9; }
  .tau-mv-deco-tl { width: 58%; opacity: .7; }
}
.tau-sticker {
  position: absolute; top: 0; right: 8%; z-index: 3;
  background: var(--tau-yellow); color: var(--tau-yellow-ink);
  font-weight: 900; font-size: 14px; line-height: 1.3;
  padding: 12px 16px;
  border-radius: 50% 50% 50% 8px;
  border: 3px solid #fff;
  box-shadow: 0 6px 14px rgba(0, 0, 0, .18);
  transform: rotate(8deg);
}
.tau-sticker--tag {
  position: absolute; bottom: -14px; right: -6px; top: auto;
  font-size: 13px; padding: 10px 16px; border-radius: 14px;
  transform: rotate(5deg);
}

.tau-chip {
  display: inline-flex; align-items: center; gap: 4px;
  background: #fff; border: 1.5px solid var(--tau-blue-w); border-radius: 8px;
  padding: 9px 16px; font-size: 13.5px; font-weight: 700; color: var(--tau-blue);
}

/* ============================================================
 * 項目名+内容テーブル（会社概要・募集要項）
 * ============================================================ */
.tau-kv__row { display: flex; flex-wrap: wrap; border-bottom: 1.5px solid var(--tau-line2); }
.tau-kv__row:last-child { border-bottom: 0; }
.tau-kv__key {
  flex: 0 0 200px;
  background: var(--tau-soft);
  padding: 20px 26px;
  font-weight: 900; font-size: 14.5px; color: var(--tau-blue);
}
.tau-kv--narrow .tau-kv__key { flex-basis: 180px; }
.tau-kv__val {
  flex: 1 1 320px;
  padding: 20px 26px;
  font-weight: 500; font-size: 15px; line-height: 1.8; color: var(--tau-ink2);
}

/* ============================================================
 * 丸アイコン枠
 * ============================================================ */
.tau-icon-circle {
  display: flex; align-items: center; justify-content: center; flex: none;
  width: 64px; height: 64px; border-radius: 50%;
  background: var(--tau-acc);
}
.tau-icon-circle--sm { width: 50px; height: 50px; }
.tau-icon-circle--lg { width: 72px; height: 72px; }
.tau-icon-circle--white { background: #fff; }
.tau-icon-circle--sched { width: 60px; height: 60px; }
.tau-icon-circle--yellow { background: #FFF3D6; }
.tau-icon-sq {
  display: flex; align-items: center; justify-content: center; flex: none;
  width: 72px; height: 72px; border-radius: 18px; background: var(--tau-acc);
}

/* ============================================================
 * 補足ボックス
 * ============================================================ */
.tau-note {
  border-radius: 16px; padding: 20px 22px;
  background: var(--tau-soft); border: 2px solid var(--tau-acc);
}
.tau-note__title { font-weight: 900; font-size: 15px; color: var(--tau-blue); }
.tau-note__title--y { color: var(--tau-yellow-d); }
.tau-note p { font-size: 14px; color: var(--tau-ink2); font-weight: 500; line-height: 1.85; margin: 8px 0 0; }
.tau-note--yellow { background: #FFF8E8; border-color: #FFE3A6; }
.tau-note--yellow p { color: #5A4A1E; }

/* ============================================================
 * 1日のスケジュール用タイムライン
 * ============================================================ */
/* スケジュールのパターンカード（A=ブルー / B=イエロー） */
.tau-sched--a { --tau-ac: #1565C0; --tau-tlc: #1565C0; --tau-headbg: #E3F2FD; --tau-notebg: #F4F9FF; }
.tau-sched--b { --tau-ac: #C7921A; --tau-tlc: #C7921A; --tau-headbg: #FFF3D6; --tau-notebg: #FFF8E8; }
.tau-sched__head { background: var(--tau-headbg); padding: 28px 30px; display: flex; align-items: center; gap: 16px; }
.tau-sched__pattern { font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 14px; color: var(--tau-ac); }
.tau-sched__title { font-size: 21px; font-weight: 900; margin-top: 3px; }
.tau-sched__sub { font-size: 13px; font-weight: 700; color: var(--tau-gray); margin-top: 3px; }
.tau-sched__body { padding: 30px 30px 14px; }
.tau-sched__note {
  margin: 0 30px 30px; border-radius: 14px; padding: 16px 20px;
  background: var(--tau-notebg); color: var(--tau-ac);
  font-size: 13.5px; font-weight: 700; line-height: 1.7;
}

.tau-tl__row { display: flex; gap: 18px; }
.tau-tl__time { flex: 0 0 92px; text-align: right; }
.tau-tl__time span {
  font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 15px;
  color: var(--tau-tlc, var(--tau-blue));
}
.tau-tl__rail { position: relative; flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; }
.tau-tl__mark {
  width: 15px; height: 15px; border-radius: 50%;
  background: var(--tau-tlc, var(--tau-blue));
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--tau-tlc, var(--tau-blue));
  margin-top: 4px;
}
.tau-tl__line { flex: 1; width: 3px; background: var(--tau-acc); }
.tau-tl__body { flex: 1 1 auto; padding-bottom: 24px; }
.tau-tl__body p { font-size: 15px; font-weight: 600; color: var(--tau-ink2); line-height: 1.7; margin: 0; }
.tau-tl__row:last-child .tau-tl__line { display: none; }
.tau-tl__row:last-child .tau-tl__body { padding-bottom: 0; }

/* ============================================================
 * 先輩社員Q&Aカード
 * ============================================================ */
.tau-voice-stack { display: flex; flex-direction: column; gap: clamp(40px, 5vw, 68px); }
.tau-voice__head {
  display: flex; flex-wrap: wrap; align-items: center; gap: 26px;
  padding: clamp(26px, 3.5vw, 40px);
}
.tau-voice__head--blue   { background: var(--tau-acc); --tau-vc: #1565C0; }
.tau-voice__head--yellow { background: #FFF3D6;        --tau-vc: #C7921A; }
.tau-voice__label {
  display: inline-block;
  background: var(--tau-vc); color: #fff;
  font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 13px;
  padding: 6px 14px; border-radius: 8px; letter-spacing: .04em;
}
.tau-voice__name { font-size: clamp(24px, 3vw, 32px); font-weight: 900; margin-top: 12px; }
.tau-voice__profile { font-size: 14px; font-weight: 700; color: var(--tau-gray); margin-top: 6px; }
.tau-cta-band__ttl { font-size: clamp(22px, 3vw, 30px); font-weight: 900; line-height: 1.6; color: #fff; }
.tau-voice__avatar {
  display: flex; align-items: center; justify-content: center; flex: none;
  width: 104px; height: 104px; border-radius: 50%;
  background: #fff; border: 5px solid var(--tau-vc, var(--tau-blue));
  box-shadow: 0 8px 18px rgba(13, 71, 161, .18);
}
.tau-voice__avatar-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.tau-voice__body { padding: clamp(24px, 3.5vw, 40px); display: flex; flex-direction: column; gap: 22px; }
.tau-qrow { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.tau-qrow__q {
  flex: 0 0 auto;
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--tau-blue); color: #fff;
  font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 15px;
}
.tau-qrow__main { flex: 1 1 280px; }
.tau-qrow__title { font-size: 16.5px; font-weight: 900; color: var(--tau-blue); }
.tau-qrow__a { font-size: 15.5px; color: var(--tau-ink2); font-weight: 500; line-height: 1.95; margin: 8px 0 0; }

/* ============================================================
 * 帯CTA
 * ============================================================ */
.tau-cta-band {
  border-radius: 20px;
  padding: clamp(32px, 4vw, 52px);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 28px;
}
.tau-cta-band--acc { background: var(--tau-acc); }
.tau-cta-band--blue { background: var(--tau-blue); color: #fff; text-align: center; flex-direction: column; }

/* footer CTA box */
.tau-footer-cta {
  background: var(--tau-blue);
  border: 2px solid var(--tau-blue-l);
  border-radius: 20px;
  padding: 38px 40px;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 24px;
  box-shadow: 0 8px 0 rgba(0, 0, 0, .18);
}

/* ============================================================
 * フォーム
 * ============================================================ */
.tau-inp {
  width: 100%;
  border: 2px solid var(--tau-acc);
  border-radius: 13px;
  padding: 14px 16px;
  font-size: 15px;
  font-family: inherit;
  background: #FAFCFF;
  color: var(--tau-ink);
}
.tau-inp:focus { outline: none; border-color: var(--tau-blue); box-shadow: 0 0 0 3px var(--tau-acc); }
textarea.tau-inp { resize: vertical; }
.tau-form-label { display: block; font-size: 13.5px; font-weight: 900; margin-bottom: 7px; }
.tau-form-label__req { color: #E0533D; }

/* プライバシーポリシー（番号付き） */
.tau-policy { list-style: none; counter-reset: pol; display: flex; flex-direction: column; gap: 20px; margin-top: 24px; }
.tau-policy > li { position: relative; padding-left: 42px; }
.tau-policy > li::before {
  counter-increment: pol; content: counter(pol);
  position: absolute; left: 0; top: 1px;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--tau-blue); color: #fff;
  font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
}
.tau-policy__ttl { display: block; font-weight: 900; font-size: 16px; color: var(--tau-ink); margin-bottom: 5px; }
.tau-policy p { font-size: 15px; color: var(--tau-ink2); font-weight: 500; line-height: 1.85; margin: 0; }

.tau-qr {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  background: var(--tau-acc); border-radius: 20px;
  padding: clamp(26px, 3.5vw, 36px);
}
.tau-qr__box {
  width: 168px; height: 168px;
  background: #fff; border-radius: 18px; border: 3px solid #fff;
  box-shadow: 0 8px 18px rgba(13, 71, 161, .16);
  margin: 22px 0;
  display: flex; align-items: center; justify-content: center;
}

/* ============================================================
 * お知らせ行リンク
 * ============================================================ */
.tau-news-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px;
  padding: 22px 26px;
  border-bottom: 1.5px solid var(--tau-line2);
  text-decoration: none; color: var(--tau-ink);
}
.tau-news-row:last-child { border-bottom: 0; }
.tau-news-row__date {
  font-family: "Fredoka", sans-serif; font-weight: 600; font-size: 15px;
  color: var(--tau-gray); min-width: 104px;
}
.tau-news-row__cat {
  font-size: 12px; font-weight: 900; color: var(--tau-blue);
  background: var(--tau-acc); border-radius: 999px; padding: 4px 12px;
}
.tau-news-row__title { flex: 1 1 240px; font-size: 15.5px; font-weight: 700; }

/* ============================================================
 * ブログ一覧（記事行）/ サイドバー
 * ============================================================ */
.tau-entry {
  display: block;
  padding: 24px 26px;
  border-bottom: 1.5px solid var(--tau-line2);
  text-decoration: none; color: var(--tau-ink);
}
.tau-entry:last-child { border-bottom: 0; }
.tau-entry:hover { background: var(--tau-soft); }
.tau-entry__meta { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.tau-entry__date { font-family: "Fredoka", sans-serif; font-weight: 600; font-size: 14px; color: var(--tau-gray); }
.tau-entry__title { font-size: 17px; font-weight: 900; margin-top: 9px; line-height: 1.5; }
.tau-entry__excerpt { font-size: 14px; color: var(--tau-gray); font-weight: 500; line-height: 1.8; margin-top: 6px; }

.tau-side__ttl {
  display: flex; align-items: center; gap: 8px;
  font-size: 16px; font-weight: 900; color: var(--tau-ink);
  padding: 0 4px 14px;
}
.tau-arch__link {
  display: flex; justify-content: space-between; align-items: center;
  padding: 13px 4px; border-bottom: 1px solid var(--tau-line2);
  text-decoration: none; color: var(--tau-ink2); font-size: 14px; font-weight: 700;
}
.tau-arch__link:last-child { border-bottom: 0; }
.tau-arch__link:hover { color: var(--tau-blue); }
.tau-arch__count {
  font-family: "Fredoka", sans-serif; font-size: 12px; color: var(--tau-gray);
  background: var(--tau-acc); border-radius: 999px; padding: 2px 10px;
}

/* ============================================================
 * ページネーション
 * ============================================================ */
.tau-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.tau-pager__item {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 46px; height: 46px; padding: 0 8px;
  border-radius: 12px; border: 2px solid var(--tau-acc);
  background: #fff; color: var(--tau-blue);
  font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 15px;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.tau-pager__item:hover { background: var(--tau-acc); }
.tau-pager__item.is-current { background: var(--tau-blue); color: #fff; border-color: var(--tau-blue); }

/* ============================================================
 * 記事本文（entry詳細）
 * ============================================================ */
.tau-article p { font-size: 16px; color: var(--tau-ink2); font-weight: 500; line-height: 2; margin: 0 0 20px; }
.tau-article h2 { font-size: 22px; font-weight: 900; margin: 36px 0 14px; padding-left: 14px; border-left: 6px solid var(--tau-blue); }
.tau-article img { max-width: 100%; height: auto; border-radius: 16px; }

/* ============================================================
 * ヘッダー / フッター（ぽってりポップ版）
 * ============================================================ */
.tau-header {
  position: sticky; top: 0; z-index: 50;
  background: #fff;
  border-bottom: 3px solid var(--tau-acc);
}
.tau-header__inner {
  max-width: 1240px; margin-inline: auto;
  padding: 0 24px; height: 84px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.tau-logo { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.tau-logo__mark {
  display: flex; width: 48px; height: 48px; border-radius: 14px; flex: none;
  background: var(--tau-blue); box-shadow: 0 4px 0 var(--tau-blue-d);
  align-items: center; justify-content: center;
}
.tau-logo__img { height: 38px; width: auto; display: block; flex: none; }
.tau-logo__name { font-weight: 900; font-size: 15px; color: var(--tau-ink); line-height: 1.15; }
.tau-logo__text { display: flex; flex-direction: column; line-height: 1; }
.tau-logo__en {
  font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 21px;
  color: var(--tau-blue); letter-spacing: .02em;
}
.tau-logo__sub { font-size: 12px; font-weight: 700; color: var(--tau-gray); margin-top: 5px; letter-spacing: .04em; }

.tau-nav { display: flex; align-items: center; gap: 4px; }
.tau-nav__link {
  position: relative;
  text-decoration: none; color: var(--tau-ink);
  padding: 10px 13px; font-size: 14px; font-weight: 700; border-radius: 10px;
  transition: color .2s ease;
}
/* ホバー：文字をブルーに＋黄色(#FFC233)の下線が左から伸びる */
.tau-nav__link::after {
  content: ""; position: absolute; left: 13px; right: 13px; bottom: 2px;
  height: 3px; border-radius: 3px; background: var(--tau-yellow);
  transform: scaleX(0); transform-origin: left center;
  transition: transform .25s ease;
}
.tau-nav__link:hover { color: var(--tau-blue); }
.tau-nav__link:hover::after { transform: scaleX(1); }
.tau-nav__link.is-current { color: var(--tau-blue); }
.tau-nav__link.is-current::after { transform: scaleX(1); }
.tau-nav__cta { margin-left: 10px; }

.tau-burger {
  display: none;
  width: 50px; height: 50px; flex-direction: column; gap: 5px;
  align-items: center; justify-content: center;
  background: var(--tau-blue); border: 2px solid var(--tau-blue-d);
  border-radius: 13px; box-shadow: 0 4px 0 var(--tau-blue-d); cursor: pointer;
}
.tau-burger span { display: block; width: 22px; height: 3px; border-radius: 3px; background: #fff; }

.tau-mobilemenu { display: none; background: #fff; border-top: 2px solid var(--tau-acc); padding: 14px 24px 22px; }
.tau-mobilemenu.is-open { display: block; }
.tau-mobilemenu__list { display: flex; flex-direction: column; gap: 6px; }
.tau-mobilemenu__link {
  text-decoration: none; color: var(--tau-ink);
  padding: 14px; font-size: 16px; font-weight: 700;
  border-radius: 12px; background: var(--tau-soft);
}
.tau-mobilemenu__link.is-current { color: var(--tau-blue); }

@media (max-width: 960px) {
  .tau-nav { display: none; }
  .tau-burger { display: flex; }
}

.tau-footer {
  background: var(--tau-blue-d);
  color: #fff;
  background-image: radial-gradient(rgba(255, 255, 255, .08) 2px, transparent 2px);
  background-size: 22px 22px;
}
.tau-footer__inner { max-width: 1240px; margin-inline: auto; padding: 64px 24px 0; }
.tau-footer__cols { display: flex; flex-wrap: wrap; gap: 40px 64px; padding: 56px 4px 48px; }
.tau-footer__logo-row { display: flex; align-items: center; gap: 11px; }
.tau-footer__logo-mark {
  display: flex; width: 42px; height: 42px; border-radius: 12px; flex: none;
  background: #fff; align-items: center; justify-content: center;
}
.tau-footer__logo-chip {
  display: inline-flex; align-items: center;
  background: #fff; border-radius: 10px; padding: 8px 14px;
}
.tau-footer__logo-img { height: 30px; width: auto; display: block; }
.tau-footer__logo-en { font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 20px; letter-spacing: .02em; }
.tau-footer__name { font-weight: 900; font-size: 16px; margin-top: 16px; }
.tau-footer__addr { font-size: 14px; color: #C8DEF7; margin-top: 10px; line-height: 1.9; font-weight: 500; }
.tau-footer__label { font-family: "Fredoka", sans-serif; font-weight: 600; font-size: 13px; color: #9FD0FF; letter-spacing: .08em; }
.tau-footer__links { display: flex; flex-direction: column; gap: 11px; margin-top: 16px; }
.tau-footer__link { color: #fff; text-decoration: none; font-size: 14px; font-weight: 700; }
.tau-footer__link:hover { color: var(--tau-yellow); }
.tau-footer__bottom { border-top: 1.5px solid rgba(255, 255, 255, .18); padding: 22px 4px 28px; text-align: center; }
.tau-footer__copy { font-family: "Fredoka", sans-serif; font-size: 12px; color: #9FD0FF; letter-spacing: .04em; }
.tau-footer-cta__en { font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 15px; color: #9FD0FF; letter-spacing: .06em; }
.tau-footer-cta__ttl { font-size: clamp(24px, 3vw, 32px); font-weight: 900; margin-top: 6px; line-height: 1.3; }
.tau-footer-cta__desc { font-size: 15px; color: #D6E9FF; margin-top: 8px; font-weight: 500; }

/* ============================================================
 * 汎用ヘルパー（インラインstyle回避用の最小限）
 * ============================================================ */
.tau-stack-sm { display: flex; flex-direction: column; gap: 13px; }
.tau-rel { position: relative; }
.tau-white { color: #fff; }
.tau-min-260 { min-width: 260px; }
.tau-min-280 { min-width: 280px; }
.tau-grow { flex: 1 1 320px; min-width: 280px; }
.tau-shrink { flex: none; }
.tau-emoji { font-size: 40px; line-height: 1; }
.tau-fit-img { display: block; margin: 0 auto; width: 90px; height: 90px; object-fit: contain; }
.tau-preline { white-space: pre-line; }

/* flex 子要素の幅（デザインの flex:1 1 basis を再現） */
.tau-fx-wide   { flex: 1 1 460px; min-width: 300px; }   /* MV左テキスト / ヒーロー文 */
.tau-fx-art    { flex: 1 1 380px; min-width: 280px; }   /* MV右ビジュアル */
.tau-fx-photo  { flex: 1 1 280px; min-width: 260px; }   /* 代表写真 */
.tau-fx-text   { flex: 1 1 420px; min-width: 300px; }   /* 挨拶テキスト / フォーム */
.tau-fx-img    { flex: 0 0 280px; min-width: 240px; }   /* 業務イメージ画像 */
.tau-fx-step   { flex: 1 1 150px; min-width: 140px; }   /* フローのステップ */
.tau-fx-half   { flex: 1 1 300px; }                     /* 補足2カラム */
.tau-fx-info   { flex: 1 1 240px; }                     /* 社員プロフィール */
.tau-fx-period { flex: 0 0 180px; min-width: 140px; }   /* 成長ステップの時期 */
.tau-fx-desc   { flex: 1 1 320px; }                     /* 成長ステップの説明 */
.tau-fx-qr     { flex: 1 1 260px; min-width: 240px; }   /* QRコード列 */
.tau-stack-md  { display: flex; flex-direction: column; gap: 18px; }

@media (max-width: 600px) {
  .tau-kv__key { flex-basis: 100%; }
  .tau-tl__time { flex-basis: 70px; }
}
