/* ===== 見出しの階層とサイズ（2026-09-01改訂）=====
   2026-08-30版はタグだけ付けてサイズはインラインstyle任せだったため、
   同じ階層でもページごとにサイズがバラバラだった（H2が40/32/24px、
   recruitのH3(32px)がserviceのH2(32px)と同サイズで階層が逆転）。
   → サイズだけを階層で共通化する。**揃え（中央/左）はページの
   デザインの考え方が異なるため統一しない**（2026-09-01 Saori判断）。

   PC:  H1 40 / H2 40 / H3 32 / H4 20
   SP:  H1 28 / H2 24 / H3 20 / H4 18   */
h1, h2, h3, h4 {
  margin: 0;
  font-weight: inherit;
  line-height: inherit;
}
h1 { font-size: 40px; }
h2 { font-size: 40px; }
h3 { font-size: 32px; }
h4 { font-size: 20px; }
.sp-dot { display: none; }

/* ===== 写真の加工ルール（2026-09-02・カズキタレビュー 9/1）=====
   各ページのFV（メインビジュアル）＝色付き（現状のデュオトーンのまま）
   FV以外の事業所写真＝カラーのまま「色褪せ」フィルター（グレースケールにも
   色スクリーンにもしない）。スタッフ写真＝無加工（鮮明）。
   対象の img に .photo-faded を付ける */
.photo-faded {
  filter: saturate(0.55) contrast(0.92) brightness(1.06) sepia(0.15);
}

/* ===== 飾り英字（Yesteryear）の縁取り・2026-09-01 Saori =====
   Episode 01 / Apply / Concept など、紺色の飾り文字に白い縁を入れて立体的に見せる。
   背景の透かし（opacity:0.2 の大きな Service / Activities / Recruit）は対象外。
   Value 01 と Step01 はそれぞれ個別のクラスで指定済み。 */
[style*="Yesteryear"]:not([style*="opacity:0.2"]) {
  text-shadow:
     2.0px 0.0px 0 #fff,
     1.8px 0.8px 0 #fff,
     1.4px 1.4px 0 #fff,
     0.8px 1.8px 0 #fff,
     0.0px 2.0px 0 #fff,
     -0.8px 1.8px 0 #fff,
     -1.4px 1.4px 0 #fff,
     -1.8px 0.8px 0 #fff,
     -2.0px 0.0px 0 #fff,
     -1.8px -0.8px 0 #fff,
     -1.4px -1.4px 0 #fff,
     -0.8px -1.8px 0 #fff,
     -0.0px -2.0px 0 #fff,
     0.8px -1.8px 0 #fff,
     1.4px -1.4px 0 #fff,
     1.8px -0.8px 0 #fff,
     3px 3px 0 rgba(14,35,73,0.35);
}
/* 画像でしか表現されていないページタイトル等に、読み上げ・検索用の実テキストを持たせる */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body { min-width: 1440px; background-color: #fff; font-family: 'Noto Sans JP', sans-serif; }
img { display: block; max-width: 100%; }
p { margin: 0; }

/* 背景パターンはbodyに敷き、幅1440px固定のpage-rootより外側（左右）にも途切れず続くようにする */
body.page-index {
  background-image: url("images/0e428730-22e1-40f2-a932-715a91df63ec.png");
  background-size: 220px 220px;
  background-position: top left;
}
body.page-recruit {
  background-image: url("images/a30a9ef5-8fe8-434d-a7b7-3be72c279341.png");
  background-size: 220px 220px;
  background-position: top left;
}

nav.site-nav {
  position: fixed;
  height: 591px;
  right: 0;
  overflow: clip;
  top: 40px;
  width: 240px;
  z-index: 100;
}

.sp-nav-bar { display: none; }
.sp-header-backdrop { display: none; }
.sp-inline-photo { display: none; }

/* 吹き出しの尻尾（CSS三角形）。バッジと同色（--tail-color）・枠線 #0e2349 を再現 */
.fukidashi-tail {
  --tail-color: #c3a369;
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 13px solid var(--tail-color);
  filter: drop-shadow(0 1px 0 #0e2349);
}

/* 証言カードの尻尾（白背景＋紺枠 #0e2349 の三角）。旧PNGは背景が焼き込まれ▽周りに色が乗るため置換 */
.quote-card-tail {
  width: 16px;
  height: 12px;
}
.quote-card-tail::before,
.quote-card-tail::after {
  content: "";
  position: absolute;
  left: 0;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
}
/* 下地の紺三角（枠線） */
.quote-card-tail::before {
  top: 0;
  border-top: 12px solid #0e2349;
}
/* 上に白三角を1px内側に重ねて枠だけ残す */
.quote-card-tail::after {
  top: -1px;
  left: 1px;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 11px solid #ffffff;
}

.site-footer {
  background-color: #0e2349;
  display: flex;
  flex-direction: column;
  gap: 32px;
  align-items: center;
  padding-top: 140px;
  margin-left: min(0px, calc(50% - 50vw));
  margin-right: min(0px, calc(50% - 50vw));
  position: relative;
  flex-shrink: 0;
}

.btn-s {
  background-color: #edebbf;
  border: 1px solid #0e2349;
  border-radius: 32px;
  height: 56px;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-shrink: 0;
  cursor: pointer;
  text-decoration: none;
}
.btn-s span {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600; /* ボタンは太字に統一（btn-mと揃える・2026-09-03 Saori） */
  font-size: 16px;
  color: #0e2349;
  letter-spacing: 1.28px;
  white-space: nowrap;
  font-feature-settings: "pkna" 1, "palt" 1;
}
.btn-m {
  background-color: #c55c47;
  border: 1px solid #0e2349;
  border-radius: 36px;
  height: 64px;
  padding: 0 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-shrink: 0;
  cursor: pointer;
  text-decoration: none;
}
.btn-m span {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  font-size: 18px;
  color: #0e2349;
  letter-spacing: 1.44px;
  white-space: nowrap;
  font-feature-settings: "pkna" 1, "palt" 1;
}

.btn-icon { width: 20px; height: 20px; flex-shrink: 0; position: relative; }
.btn-icon img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
.btn-icon-m { width: 24px; height: 24px; flex-shrink: 0; position: relative; }
.btn-icon-m img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }

.menu-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  border-radius: 8px;
  width: 168px;
  cursor: pointer;
  text-decoration: none;
}
.menu-btn span {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 18px;
  color: #0e2349;
  letter-spacing: 1.44px;
  white-space: nowrap;
  font-feature-settings: "pkna" 1;
}
.menu-btn.active { background-color: #0e2349; }
.menu-btn.active span { color: white; }

.loop-animation-static {
  display: flex;
  gap: 16px;
  align-items: center;
  opacity: 0.2;
  width: 100%;
  overflow: hidden;
  height: 97px;
}
.loop-text-item {
  width: 452px;
  height: 97px;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
}
.loop-text-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
}

/* ===== note記事リスト（2026-09-02・カズキタレビュー）=====
   「noteのカードが幼い・何のカードか分からない」→ 写真がないと成立しないカード型を
   やめ、1つの地の上に「日付＋タイトル」を1行ずつ並べて下線で区切る＝リンク一覧として
   読める形にする。トップ（とあるの今）と事業案内（最新のこころみ）で共用。
   データ流し込み（js/note.js）は [data-note-card] [data-note-date] [data-note-title]
   のフックだけを見るので、構造を変えてもそのまま動く */
.news-list {
  display: flex;
  flex-direction: column;
  width: 1040px;
  box-sizing: border-box;
  padding: 8px 40px;
  border: 1px solid #0e2349;
  border-radius: 16px;
  background-image: url('images/18e3d430-6052-41fe-91ae-8a8836f75e1e.png');
  background-size: 16px 16px;
  background-position: top left;
  color: #0e2349;
  font-family: 'Noto Sans JP', sans-serif;
  font-feature-settings: 'pkna' 1, 'palt' 1;
}
body.page-service .news-list {
  background-image: url('images/f8cabe11-f9d6-40be-b35d-9b5cad4b4a53.png');
}
.news-row {
  display: flex;
  align-items: baseline;
  gap: 32px;
  padding: 22px 0;
  border-bottom: 1px solid #0e2349;
  cursor: pointer;
}
.news-row-date {
  flex-shrink: 0;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.8px;
  line-height: 1.6;
}
.news-row-title {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 1.44px;
  line-height: 1.6;
  text-underline-offset: 4px;
}
.news-row:hover .news-row-title { text-decoration: underline; }
/* 最下部の行には線を引かない（2026-09-02 Saori。地の枠と二重になる） */
.news-row:last-child { border-bottom: none; }

/* 記事一覧リンクはPC・SPともテキストリンクにする（2026-08-30・Saori指示）。
   カズキタレビュー「サイト内コンテンツはボタン、外部に飛ぶものはテキストリンクでもいい」。
   noteは外部サイトなのでボタンの重量感を持たせない */
body.page-index section#news .btn-s,
body.page-service .note-list-link {
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: auto !important;
  padding: 0 !important;
  width: auto !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
}

/* ===== body.page-service 固有クラス（PCのみ）===== */

body.page-service {
  background-image: url("images/27c9c291-befa-49d3-b434-7775b901db75.png");
  background-size: 220px 220px;
  background-position: top left;
}
body.page-service .services-root {
  width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  position: relative;
}

body.page-service .fv-inner {
  height: 400px;
  position: relative;
  width: 1040px;
  align-self: center;
  flex-shrink: 0;
  margin-top: 0;
  /* 2026-09-09: 直下に導線を追加。導線側paddingと合算で空きすぎるため64→24（Saori指摘の「半分に」） */
  margin-bottom: 24px;
}
body.page-service .fv-text {
  position: absolute;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: flex-start;
  left: 0;
  top: 50%;
  width: 560px;
  word-break: break-word;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
}
body.page-service .fv-headline {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-shrink: 0;
  color: #476b4a;
  font-size: 40px;
  letter-spacing: 1.6px;
  white-space: nowrap;
  font-feature-settings: 'pkna' 1, 'palt' 1;
}
body.page-service .fv-media {
  position: absolute;
  height: 400px;
  right: 0;
  top: 2px;
  width: 440px;
}

body.page-service .service-section {
  position: relative;
  flex-shrink: 0;
}
body.page-service .service--01 {
  /* 2026-09-01: min-height:2900px の手当てをやめ、section-content を通常フローに
     戻して中身なりの高さにした（中身が増えるたび数値を追う運用をやめる） */
  width: 1440px;
  position: relative;
}
body.page-service .service--02 {
  width: 1440px;
  position: relative;
}

body.page-service .sp-section-badge {
  display: none;
}
body.page-service .sp-title-br {
  display: none;
}

/* 2026-09-01: 絶対配置＋親の min-height 固定で高さを決めていたため、中身が
   増えたぶん（法定研修のリスト）が下の帯にめり込んで切れていた。
   通常フローに戻して中身なりの高さにする */
body.page-service .section-content {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 64px;
  align-items: flex-start;
  margin: 100px 0 100px 240px;
  width: 880px;
}

body.page-service .intro-headline {
  display: flex;
  flex-direction: column;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  justify-content: center;
  flex-shrink: 0;
  font-size: 32px;
  white-space: nowrap;
  font-feature-settings: 'pkna' 1, 'palt' 1;
}

/* 左右のカードの高さを揃える（9/2 Saori指摘）。
   flex-start だと中身の量でカードの丈が変わり、並びが不揃いに見える */
body.page-service .card-list {
  display: flex;
  gap: 16px;
  align-items: stretch;
  position: relative;
  border-radius: 16px;
  flex-shrink: 0;
  width: 100%;
}

body.page-service .card-item {
  flex: 1 0 0;
  min-width: 1px;
}

body.page-service .answer-box {
  background-color: #ececec;
  border: 1px solid #0e2349;
  display: flex;
  height: 80px;
  align-items: center;
  padding: 24px 40px;
  position: relative;
  border-radius: 16px;
  flex-shrink: 0;
  width: 100%;
}

body.page-service .answer-text {
  word-break: break-word;
  display: flex;
  flex-direction: column;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  justify-content: center;
  flex-shrink: 0;
  color: #0e2349;
  font-size: 18px;
  letter-spacing: 1.44px;
  white-space: nowrap;
  font-feature-settings: 'pkna' 1, 'palt' 1;
}

body.page-service .service02-photo-wrapper {
  position: absolute;
  bottom: 28.68px;
  display: flex;
  height: 462.645px;
  align-items: center;
  justify-content: center;
  right: -14.93px;
  width: 369.865px;
}
body.page-service .service02-photo-inner {
  transform: rotate(4deg);
  flex-shrink: 0;
}
body.page-service .service02-photo-box {
  background-color: white;
  height: 440px;
  position: relative;
  border-radius: 16px;
  width: 340px;
}

body.page-service .s02-intro-text h3 { font-size: 32px; }
body.page-service .s02-intro-body { font-size: 18px; font-weight: 400; }
/* H3と本文の間だけ空け、本文どうしは詰める（container の gap:12px を打ち消す） */
body.page-service .s02-intro-body + .s02-intro-body { margin-top: -12px; }
body.page-service .s02-intro-text {
  word-break: break-word;
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  justify-content: center;
  color: #edebbf;
  font-size: 20px;
  letter-spacing: 0.8px;
  width: 560px;
  white-space: pre-wrap;
  font-feature-settings: 'pkna' 1, 'palt' 1;
}

body.page-service .s02-message-box {
  background-image: url('images/f8cabe11-f9d6-40be-b35d-9b5cad4b4a53.png');
  background-size: 16px 16px;
  background-position: top left;
  border: 1px solid #0e2349;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-start;
  padding: 40px 40px 24px;
  position: relative;
  border-radius: 16px;
  box-shadow: 4px 4px 0px 0px #0e2349;
  flex-shrink: 0;
  width: 560px;
}

body.page-service .horei-columns {
  word-break: break-word;
  display: flex;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  gap: 24px;
  align-items: flex-start;
  font-size: 18px;
  color: white;
  letter-spacing: 1.44px;
  width: 100%;
}

/* 2026-09-01: 絶対配置＋親の min-height:1371px で高さを固定していたため、
   noteカードを軽量化したぶんがそのまま下の余白になっていた（Saori指摘）。
   通常フローに戻して中身なりの高さにする */
body.page-service .activities-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 64px;
  align-items: flex-end;
  justify-content: center;
  margin: 100px 0 100px 82px;
  width: 1040px;
}

body.page-service .activities-cards {
  background-color: #c3a369;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 24px;
  position: relative;
  border-radius: 16px;
  flex-shrink: 0;
  width: 100%;
}

body.page-service .info-row {
  word-break: break-word;
  display: flex;
  align-items: center;
  position: relative;
  flex-shrink: 0;
  color: #0e2349;
  width: 100%;
}

body.page-service .info-label {
  display: flex;
  flex-direction: column;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  justify-content: center;
  flex-shrink: 0;
  font-size: 16px;
  letter-spacing: 1.28px;
  width: 160px;
  font-feature-settings: 'pkna' 1, 'palt' 1;
}

body.page-service .service-sidebar {
  /* PC: visible */
}

/* index事業案内カード: 見出し列を104pxに詰めた（説明文の改行位置を指定に合わせるため）ぶん、
   「トレーニング」が3行に割れる。<br>で指定した2行を保つため折返しを禁止する（2026-09-09） */
body.page-index section#services h4 {
  white-space: nowrap;
}

/* ===== 事業案内 セクション導線（2026-09-09 MTG: 下部セクションへ飛べるように）===== */
/* 装飾はセクションの縦書きバッジと同じ（背景#edebbf・紺4px枠・影4px・角丸16px。9/9カズキタ＆Saori） */
body.page-service .service-nav-label {
  display: block;
  width: 100%;
  margin: 0;
  padding: 16px 20px 0;
  text-align: center;
  line-height: 1;
}
body.page-service .service-nav-label span {
  display: inline-block;
  background-color: #edebbf;
  border: 4px solid #0e2349;
  box-shadow: 4px 4px 0px #0e2349;
  border-radius: 16px;
  padding: 12px 28px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 3.2px;
  color: #0e2349;
  font-feature-settings: "pkna" 1;
}
body.page-service .service-nav {
  display: flex;
  justify-content: center;
  gap: 48px;
  flex-wrap: wrap;
  padding: 24px 20px 32px;
  width: 100%;
}
body.page-service .service-nav a {
  display: inline-flex;
  align-items: center;
  gap: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  font-size: 16px;
  color: #0e2349;
  letter-spacing: 1.28px;
  line-height: 1.8;
  text-decoration: underline;
  text-underline-offset: 6px;
  font-feature-settings: "pkna" 1, "palt" 1;
}
body.page-service .service-nav a:hover {
  opacity: 0.7;
}

/* ===== body.page-about 固有クラス（PCのみ）===== */

body.page-about {
  background-image: url("images/9d16024b-061c-409c-ab12-bcc9005783fd.png");
  background-size: 220px 220px;
  background-position: top left;
}
body.page-about .page-root {
  width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  position: relative;
}

body.page-about .main-title-header {
  height: 140px;
  width: 100%;
  position: relative;
  flex-shrink: 0;
}
body.page-about .header-bg {
  position: absolute;
  height: 104px;
  top: 0;
  left: min(0px, calc(50% - 50vw));
  right: min(0px, calc(50% - 50vw));
}
body.page-about .header-bg-wave-wrap {
  position: absolute;
  bottom: 0;
  display: flex;
  height: 24px;
  align-items: center;
  justify-content: center;
  left: 0;
  width: 100%;
}
body.page-about .header-bg-rect {
  position: absolute;
  background-color: #c55c47;
  /* 波と1px重ねる（ズーム80%等の端数丸めで境目に線が出るのを防ぐ・2026-09-03） */
  inset: 0 0 23px 0;
}
body.page-about .header-title {
  position: absolute;
  height: 100px;
  left: 80px;
  top: 40px;
  width: 240px;
}

body.page-about .fv-inner {
  display: flex;
  gap: 98px;
  align-items: flex-start;
  width: 1252px;
  margin: 0 auto;
  padding: 40px 0 48px;
  flex-shrink: 0;
}

body.page-about .concept-section {
  position: relative;
  min-height: 903px;
  width: 1440px;
  flex-shrink: 0;
}
body.page-about .concept-bg-outer {
  position: absolute;
  inset: 0;
}
body.page-about .concept-bg-inner {
  position: absolute;
  background-color: #546895;
  border-top: 1px solid #0e2349;
  top: 0;
  bottom: 0;
  left: min(0px, calc(50% - 50vw));
  right: min(0px, calc(50% - 50vw));
}

body.page-about .company-section {
  position: relative;
  min-height: 1772px;
  width: 1440px;
  flex-shrink: 0;
}
body.page-about .company-bg-outer {
  position: absolute;
  inset: 0;
}
body.page-about .company-bg-inner {
  position: absolute;
  background-color: #476b4a;
  border-top: 1px solid #0e2349;
  top: 0;
  bottom: 0;
  left: min(0px, calc(50% - 50vw));
  right: min(0px, calc(50% - 50vw));
}

body.page-about .location-section {
  position: relative;
  height: 777px;
  width: 1440px;
  flex-shrink: 0;
}
body.page-about .location-bg {
  position: absolute;
  background-color: #c3a369;
  border-top: 1px solid #0e2349;
  top: 0;
  bottom: 0;
  left: min(0px, calc(50% - 50vw));
  right: min(0px, calc(50% - 50vw));
}

/* ===== body.page-recruit 固有クラス（PCのみ）===== */

body.page-recruit .cat-sidebar {
  width: 240px;
  flex-shrink: 0;
  position: relative;
  padding-top: 100px;
}

body.page-recruit .vertical-label {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  left: -15px;
  width: 120px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}
body.page-recruit .vertical-label-inner {
  font-family: 'Yesteryear', cursive;
  font-size: 90px;
  line-height: 1;
  color: #0e2349;
  opacity: 0.2;
  white-space: nowrap;
  transform: rotate(90deg);
}

body.page-recruit .cat-badge {
  position: absolute;
  top: 60px;
  left: 80px;
  background-color: #edebbf;
  border: 4px solid #0e2349;
  border-radius: 16px;
  padding: 24px 0;
  width: 88px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(4px 4px 0px #0e2349);
}
body.page-recruit .cat-badge p,
body.page-recruit .cat-badge h2 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 40px;
  color: #0e2349;
  text-align: center;
  letter-spacing: 3.2px;
  line-height: 1.16;
  width: 40px;
  font-feature-settings: "pkna" 1;
  /* 長音符を縦向きにする（2026-09-09 MTG指摘・だいごさん） */
  writing-mode: vertical-rl;
  text-orientation: upright;
}

body.page-recruit .staff-card {
  flex: 1 0 0;
  min-width: 0;
  border: 1px solid #0e2349;
  border-radius: 16px;
  padding: 16px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  background-size: 16px 16px;
  background-position: top left;
  box-shadow: 4px 4px 0px 0px #0e2349;
}

/* 採用担当者からのメッセージ（横長カード）。
   入社後の声の3枚並びの「外」に兄弟として置き、末尾で締める役割。
   .staff-card を継承しつつ横並びに組み替える（flex:1 0 0 を打ち消して全幅を取る）。 */
body.page-recruit .staff-card-wide {
  flex: none;
  width: 100%;
  flex-direction: row;
  gap: 24px;
  align-items: flex-start;
  padding: 24px;
}
body.page-recruit .staff-card-wide-media {
  display: flex;
  gap: 16px;
  align-items: center;
  width: 260px;
  flex-shrink: 0;
}
/* 採用担当者メッセージカード（仲吉さん）専用: 顔写真を大きく・下に名前と肩書き（2026-09-01 Saori指示） */
body.page-recruit .staff-card-wide-media.staff-card-wide-media-portrait {
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 200px;
  text-align: center;
}
body.page-recruit .staff-card-wide-media-portrait .avatar-placeholder {
  width: 120px;
  height: 120px;
}
body.page-recruit .staff-card-wide-media-portrait > div {
  align-items: center;
  text-align: center;
}
body.page-recruit .staff-card-wide-body {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-left: 1px solid #0e2349;
  padding-left: 24px;
}

body.page-recruit .avatar-placeholder {
  background-color: #ccc;
  border-radius: 42px;
  width: 84px;
  height: 84px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
body.page-recruit .avatar-placeholder img { object-position: center; }
body.page-recruit .avatar-placeholder-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 21.333px;
  color: #c55c47;
  text-align: center;
  letter-spacing: 1.7067px;
  white-space: nowrap;
  font-feature-settings: "pkna" 1, "palt" 1;
}

/* 「働いてみてわかったこと」パートの顔写真。大悟さん「表情が伝わってない」を受けて
   64→96pxに拡大（2026-09-02）。丸を保つため border-radius は width の半分にする */
body.page-recruit .avatar-sm {
  background-color: #ccc;
  border-radius: 48px;
  width: 96px;
  height: 96px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
body.page-recruit .avatar-sm img { object-position: center; }
body.page-recruit .avatar-sm-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #c55c47;
  text-align: center;
  letter-spacing: 1.28px;
  white-space: nowrap;
  font-feature-settings: "pkna" 1, "palt" 1;
}

body.page-recruit .qa-row {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  position: relative;
  width: 100%;
}
body.page-recruit .qa-avatar {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  flex-shrink: 0;
}
body.page-recruit .qa-bubble {
  flex: 1 0 0;
  min-width: 0;
  background-color: #ececec;
  border: 1px solid #0e2349;
  border-radius: 16px;
  padding: 24px 40px;
  position: relative;
}

body.page-recruit .quote-card-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 0 0;
  min-width: 0;
  position: relative;
  align-items: flex-end;
}
body.page-recruit .quote-card {
  background-color: white;
  border: 1px solid #0e2349;
  border-radius: 8px;
  padding: 16px 24px;
  position: relative;
  width: 100%;
}

body.page-recruit .value-item-wrap-r {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-right: 80px;
  width: 100%;
}
body.page-recruit .value-item-wrap-l {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-left: 80px;
  width: 100%;
}
body.page-recruit .value-item-inner {
  display: flex;
  gap: 24px;
  align-items: center;
  padding: 24px 24px 24px 0;
  border: 1px solid #0e2349;
  border-radius: 16px;
  box-shadow: 4px 4px 0px 0px #0e2349;
  width: 100%;
  background-size: 16px 16px;
  background-position: top left;
}
body.page-recruit .value-num {
  border: 1px solid #0e2349;
  border-radius: 0 8px 8px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 0 12px;
  width: 88px;
  flex-shrink: 0;
  font-family: 'Yesteryear', cursive;
  color: #0e2349;
  text-align: center;
  /* 濃い色の文字は白い縁で立体的に（2026-09-01 Saori）。
     -webkit-text-stroke は字が痩せるため、4方向のtext-shadowで縁取る */
  text-shadow:
     2.0px 0.0px 0 #fff,
     1.8px 0.8px 0 #fff,
     1.4px 1.4px 0 #fff,
     0.8px 1.8px 0 #fff,
     0.0px 2.0px 0 #fff,
     -0.8px 1.8px 0 #fff,
     -1.4px 1.4px 0 #fff,
     -1.8px 0.8px 0 #fff,
     -2.0px 0.0px 0 #fff,
     -1.8px -0.8px 0 #fff,
     -1.4px -1.4px 0 #fff,
     -0.8px -1.8px 0 #fff,
     -0.0px -2.0px 0 #fff,
     0.8px -1.8px 0 #fff,
     1.4px -1.4px 0 #fff,
     1.8px -0.8px 0 #fff,
     3px 3px 0 rgba(14,35,73,0.35);
  background-size: 110px 110px;
  background-position: top left;
}
body.page-recruit .value-num .vn-label { font-size: 20px; line-height: 1; font-feature-settings: "pkna" 1, "palt" 1; }
body.page-recruit .value-num .vn-num { font-size: 32px; line-height: 1; letter-spacing: 1.28px; font-feature-settings: "pkna" 1, "palt" 1; }

/* 吹き出し尻尾（横向き◁）。旧PNGは緑背景が焼き込まれ縦位置もカード上寄りでズレるため、CSS三角形で縦中央に配置 */
body.page-recruit .fikidashi-wrap {
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 20px;
}
body.page-recruit .fikidashi-inner { display: none; }
/* 下地の紺三角（枠線） */
body.page-recruit .fikidashi-wrap::before,
body.page-recruit .fikidashi-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
}
body.page-recruit .fikidashi-wrap::before {
  left: 0;
  border-right: 12px solid #0e2349;
}
/* 上に灰三角（カード色 #ececec）を1px内側に重ねて枠だけ残す */
body.page-recruit .fikidashi-wrap::after {
  left: 1px;
  top: 1px;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-right: 11px solid #ececec;
}

body.page-recruit .ojt-step-label {
  position: absolute;
  top: 3px;
  left: 55px;
  transform: translate(-50%, -50%);
  font-family: 'Yesteryear', cursive;
  font-size: 24px;
  color: #c55c47;
  text-align: center;
  /* Stepも白縁に統一（2026-09-03 Saori。他の飾り英字と同じ白枠） */
  text-shadow:
     2.0px 0.0px 0 #fff,
     1.8px 0.8px 0 #fff,
     1.4px 1.4px 0 #fff,
     0.8px 1.8px 0 #fff,
     0.0px 2.0px 0 #fff,
     -0.8px 1.8px 0 #fff,
     -1.4px 1.4px 0 #fff,
     -1.8px 0.8px 0 #fff,
     -2.0px 0.0px 0 #fff,
     -1.8px -0.8px 0 #fff,
     -1.4px -1.4px 0 #fff,
     -0.8px -1.8px 0 #fff,
     -0.0px -2.0px 0 #fff,
     0.8px -1.8px 0 #fff,
     1.4px -1.4px 0 #fff,
     1.8px -0.8px 0 #fff,
     3px 3px 0 rgba(14,35,73,0.35);
  letter-spacing: 0.96px;
  white-space: nowrap;
  font-feature-settings: "pkna" 1, "palt" 1;
}

body.page-recruit .sp-section-badge { display: none; }

/* ===== 中間ブレークポイント（769px〜1439px）=====
   PC版フローティングナビ(nav.site-nav)はページ本体が1440px固定幅のまま
   横スクロールする狭いウィンドウ幅でコンテンツに重なって隠れてしまうため、
   この幅帯だけ先にSP版と同じ折りたたみメニュー（sp-nav-bar）へ切り替える。
   ページ本体のレイアウト自体はPC版のまま（横スクロールは残る）。 */
@media (min-width: 769px) and (max-width: 1439px) {
  nav.site-nav, div.site-nav, nav#site-nav, #site-nav { display: none !important; }
  body { padding-top: 100px; }

  .sp-nav-bar {
    display: flex !important;
    align-items: center;
    gap: 8px;
    position: fixed;
    top: 16px;
    left: 16px;
    width: calc(100% - 32px);
    background: #fff;
    border: 1px solid #0e2349;
    border-radius: 16px;
    padding: 10px 24px;
    z-index: 300;
    box-sizing: border-box;
  }
  .sp-nav-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    text-decoration: none;
  }
  .sp-nav-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
    display: block;
  }
  .sp-nav-item {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    border-radius: 8px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 15px;
    color: #0e2349;
    text-decoration: none;
    white-space: nowrap;
    letter-spacing: 0.08em;
    height: 43px;
    box-sizing: border-box;
  }
  .sp-nav-item.active {
    background-color: #0e2349;
    color: #fff;
  }
}

/* ===== SP（max-width: 768px）===== */
@media (max-width: 768px) {
  /* ===== SPセクションバッジ 共通定義（2026-09-03・壁打ち確定）=====
     左端16px・直下16pxの距離はバッジ自身が所有する（ページごとの下要素padding頼みをやめる）。
     見た目はrecruit準拠に統一（radius 8・box-shadow 3px）。左端はコンテナのpaddingと
     合算で16になるよう各ページ側でmargin-leftを持つ（recruit=コンテナ16→0／service=コンテナ0→16） */
  .sp-section-badge {
    /* 絶対配置の帯背景divより上に描画する（非positionedだと背景に隠れる。
       旧recruitはfilter:drop-shadowの副作用で偶然浮いていた＝box-shadow化で露呈・2026-09-03） */
    position: relative;
    background-color: #edebbf;
    border: 3px solid #0e2349;
    border-radius: 8px;
    box-shadow: 3px 3px 0px #0e2349;
    padding: 8px 20px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 26px;
    color: #0e2349;
    letter-spacing: 2px;
    width: fit-content;
    align-self: flex-start;
    flex-shrink: 0;
    margin: 0 0 16px 0;
  }
  /* aboutのバッジは縦書きh2のSP変換（インラインstyle＋構造セレクタが視覚を所有）。
     クラスは参加のみで、直下距離は既存の親子padding構造が持つため上書きしない（2026-09-03） */
  body.page-about .sp-section-badge { margin: 0; }
  /* 見出しサイズSPの正本はこのメディアクエリ末尾の「SP文字サイズの段」ブロック。
     ここには置かない（2026-09-01に段の設計へ統合） */

  /* ===== グローバルSP ===== */
  body { min-width: unset; overflow-x: hidden; padding-top: 100px; }
  /* PC専用の改行。PCの改行設計をSPに持ち込まず、SPは自然折り返しに任せる
     （sp-title-brの逆向き。2026-09-03 Saori: FV見出しの「し、」孤立の解消で導入） */
  .pc-title-br { display: none; }
  nav.site-nav, div.site-nav, nav#site-nav, #site-nav { display: none !important; }
  /* ===== site-footer SP（全ページ共通）===== */
  .site-footer { width: 100% !important; margin-left: 0 !important; padding-top: 80px !important; padding-left: 20px !important; padding-right: 20px !important; gap: 24px !important; align-items: center !important; }
  .site-footer > div[style*="border:19.2px solid #0e2349"] { border-width: 4px !important; width: 80px !important; height: 80px !important; border-radius: 40px !important; }
  .site-footer > div[style*="opacity:0.2"] { display: none !important; }
  .site-footer > div[style*="white-space:nowrap"][style*="letter-spacing:1.28px"] { white-space: normal !important; text-align: center !important; width: 100% !important; }
  .site-footer > div[style*="white-space:nowrap"][style*="text-align:right"] { white-space: normal !important; text-align: center !important; width: 100% !important; }
  .loop-animation-static { display: none !important; }

  /* SP ヘッダー背景（固定navの裏にページ本体と同じ背景パターンを敷く） */
  .sp-header-backdrop {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100px;
    z-index: 290;
    background-size: 220px 220px;
    background-position: top left;
  }
  body.page-index .sp-header-backdrop { background-image: url('images/0e428730-22e1-40f2-a932-715a91df63ec.png'); }
  body.page-about .sp-header-backdrop { background-image: url('images/9d16024b-061c-409c-ab12-bcc9005783fd.png'); }
  body.page-service .sp-header-backdrop { background-image: url('images/27c9c291-befa-49d3-b434-7775b901db75.png'); }
  body.page-recruit .sp-header-backdrop { background-image: url('images/a30a9ef5-8fe8-434d-a7b7-3be72c279341.png'); background-size: 110px 110px; }

  /* SP navバー */
  .sp-nav-bar {
    display: flex !important;
    align-items: center;
    gap: 8px;
    position: fixed;
    top: 16px;
    left: 16px;
    width: calc(100% - 32px);
    background: #fff;
    border: 1px solid #0e2349;
    border-radius: 16px;
    padding: 10px 24px;
    z-index: 300;
    box-sizing: border-box;
  }
  .sp-nav-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    text-decoration: none;
  }
  .sp-nav-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
    display: block;
  }
  .sp-nav-item {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    border-radius: 8px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 15px;
    color: #0e2349;
    text-decoration: none;
    white-space: nowrap;
    letter-spacing: 0.08em;
    height: 43px;
    box-sizing: border-box;
  }
  .sp-nav-item.active {
    background-color: #0e2349;
    color: #fff;
  }

  /* 波線ピッチ修正（about/recruit/index 共通） */
  div[style*="inset:-2.08%"] { overflow: hidden !important; inset: 0 !important; }
  div[style*="inset:-2.08%"] img,
  img[style*="inset:-2.08%"] {
    width: 1440px !important;
    max-width: none !important;
    height: 100% !important;
    left: 0 !important;
    top: 0 !important;
    inset: auto !important;
    position: absolute !important;
  }

  /* ===== body.page-service SP ===== */
  /* KVをページ最上部(y:0)から敷き、ヘッダー分の空間をKV内部に確保する */
  body.page-service { min-width: unset; overflow-x: hidden; padding-top: 0 !important; }
  body.page-service .sp-header-backdrop { display: none !important; }
  body.page-service .main-title-header { height: 220px !important; }
  body.page-service .main-title-header .header-bg { height: 184px !important; }
  body.page-service .services-root { width: 100% !important; overflow-x: hidden !important; background-size: 220px 220px; }
  body.page-service .main-title-header .header-title { left: 50% !important; top: 110px !important; transform: translateX(-50%) !important; }
  body.page-service .fv-inner {
    width: 100% !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    padding: 24px 16px 12px !important; /* 2026-09-09: 導線追加に伴い下を32→12 */
    align-self: auto !important;
  }
  body.page-service .fv-text {
    position: relative !important;
    transform: none !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
  }
  /* 1行バジェット: 約11字@375px（30px＋余白）。改行はPC専用（.pc-title-br）でSPは自然折り */
  body.page-service .fv-headline { font-size: 30px !important; white-space: normal !important; }
  /* FVコラージュ: 固定サイズの2枚（縦横比1:1維持・ビューポート幅に依存しない） */
  body.page-service .fv-media {
    position: relative !important;
    right: auto !important;
    top: auto !important;
    width: 340px !important;
    height: 260px !important;
    overflow: visible !important;
    margin: 0 auto;
    flex-shrink: 0;
  }
  body.page-service .fv-patern { display: none !important; }
  body.page-service .fv-img-1 {
    position: absolute !important;
    top: 0 !important; right: 0 !important;
    left: auto !important; bottom: auto !important;
    width: 160px !important;
    height: 160px !important;
  }
  body.page-service .fv-img-2 {
    position: absolute !important;
    bottom: 0 !important; left: 0 !important;
    top: auto !important; right: auto !important;
    width: 200px !important;
    height: 200px !important;
  }
  body.page-service .service-section { width: 100% !important; min-height: unset !important; }
  body.page-service .service--02 { margin-top: 0 !important; }
  body.page-service .service-sidebar { display: none !important; }
  /* 事業案内 セクション導線（2026-09-09）
     3項目=27字は375px幅に1行で入らない（11pxまで縮めても340px必要＝実測）。
     可読性を優先し2行の自然折返しにする。高さ約60pxで、ボタン型の縦積み190pxより軽い */
  body.page-service .service-nav-label {
    padding: 12px 12px 0;
  }
  body.page-service .service-nav-label span {
    font-size: 17px;
    padding: 10px 22px;
    border-width: 3px;
    box-shadow: 3px 3px 0px #0e2349;
    letter-spacing: 2.4px;
  }
  body.page-service .service-nav {
    gap: 8px 20px;
    padding: 20px 12px 24px;
    justify-content: center;
    flex-wrap: wrap;
  }
  body.page-service .service-nav a {
    font-size: 14px;
    letter-spacing: 0;
    gap: 0;
    text-underline-offset: 4px;
  }
  
  body.page-service .sp-section-badge {
    /* 1行バジェット: 11字@375px＝(375−40−6)÷(26+2)。超過は文言側で解く（2026-09-03）
       視覚定義は上の共通 .sp-section-badge へ統合（2026-09-03）。ここは位置指定のみ */
    display: block !important;
    position: relative; /* 絶対配置の帯背景divより上に描画する（非positionedだと背景に隠れる） */
    /* 2026-09-01 Saori: 事業案内SPはH2含めて全部左揃えに統一 */
    text-align: left;
    /* コンテナpadding=0のため左端16pxはバッジ自身が持つ */
    margin: 20px 0 16px 16px;
  }
  body.page-service .sp-title-br { display: block !important; }
  body.page-service .section-content {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    /* PC側の margin-left:240px（サイドバー分）を打ち消す。
       打ち消し漏れで本文が右にはみ出していた（2026-09-01） */
    margin: 0 !important;
    width: 100% !important;
    padding: 16px 16px 32px !important;
    gap: 32px !important;
  }
  body.page-service .intro-headline {
    /* H2直下のリード文。3セクションで 21px中央 / 21px左 / 15px左 とバラついていたため
       18px・左揃えに統一（2026-09-01 Saori「事業案内は18px・H2含め全部左揃え」） */
    font-size: 18px !important;
    white-space: normal !important;
    text-align: left !important;
    align-self: flex-start !important;
    width: 100% !important;
  }
  body.page-service .card-list { flex-direction: column !important; }
  body.page-service .card-item {
    width: 100% !important;
    flex: none !important;
    height: auto !important;
    min-height: unset !important;
  }
  /* 写真カード: 絶対配置imgのみ内包するためheight:autoだと高さ0に潰れる。縦横比固定で幅に追従させる（2026-09-01: 素材が縦長化→正方形を試作したが、Saori判断で元の横長比率に確定・object-positionのみ再調整） */
  body.page-service .photo-card { height: auto !important; aspect-ratio: 3 / 2; }
  /* SPでは写真2・3を段落ごとの .sp-inline-photo 側で表示する（1枚目だけ説明文直後に残す） */
  body.page-service .photo-card-2, body.page-service .photo-card-3 { display: none !important; }
  .sp-inline-photo {
    display: block !important;
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    border-radius: 16px;
    overflow: hidden;
    background-color: white;
  }
  .sp-inline-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 16px;
    display: block;
    max-width: none;
  }
  body.page-service .photo-label { width: 160px !important; text-align: center !important; }
  body.page-service .answer-box { height: auto !important; padding: 16px !important; min-height: 60px !important; }
  body.page-service .answer-text { white-space: normal !important; font-size: 15px !important; flex-shrink: 1 !important; min-width: 0 !important; width: 100% !important; }
  body.page-service .service02-photo-wrapper { display: none !important; }
  body.page-service .s02-intro-text { width: 100% !important; }
  body.page-service .s02-message-box { width: 100% !important; }
  /* 事業案内SPは全部左揃え（2026-09-01 Saori）。ラベルの帯は中央固定（left:50%）
     だったので左端へ、本文の中央寄せも解除する */
  body.page-service .s02-message-box > div[style*="left:50%"] {
    left: 20px !important;
    transform: none !important;
  }
  body.page-service .s02-message-box div[style*="text-align:center"],
  body.page-service .s02-message-box p { text-align: left !important; }
  /* service SP wave fix */
  body.page-service .header-bg-wave-wrap { height: 32px !important; }
  body.page-service .header-bg-wave {
    height: 32px !important;
    background-image: url('images/ca096ee1-71a7-4428-91e7-c54bfc843d84.svg');
    background-size: 1440px 32px;
    background-repeat: no-repeat;
    background-position: right top;
  }
  body.page-service .header-bg-wave > div { display: none !important; }
  body.page-service .activities-outer div[style*="height:24px; left:0; top:1px"] {
    height: 32px !important;
    top: 0 !important;
  }
  body.page-service .activities-outer div[style*="height:24px; left:0; top:1px"] > div {
    background-image: url('images/f4d9e285-2dce-4824-9c9f-2003498f094e.svg');
    background-size: 1440px 32px;
    background-repeat: no-repeat;
    background-position: left top;
    position: relative !important;
    inset: 0 !important;
    height: 32px !important;
    width: 100% !important;
  }
  body.page-service .activities-outer div[style*="height:24px; left:0; top:1px"] img { display: none !important; }
  body.page-service .activities-outer { min-height: unset !important; }
  body.page-service .activities-inner {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    margin: 0 !important;
    width: 100% !important;
    padding: 32px 16px 32px !important;
    align-items: flex-start !important;
    /* PCの gap:64px がSPでも効き、カード群と「最新のこころみ」の間だけ極端に空いていた。
       波線（＝色の境目）を挟んだ上下のマージンを揃える（2026-08-25・指示書S-4） */
    gap: 32px !important;
  }
  body.page-service .activities-inner div[style*="left:-97px"] { display: none !important; }
  /* SPは見出し・リード文を左揃えに統一する（2026-08-25・指示書S-4）
     カズキタレビュー「PCで見るから中央揃えなだけで、スマホで見たら全部左に揃えたい」。
     カード内のタイトル(text-align:center)は意匠なので触らない */
  body.page-service .activities-inner > div:first-child { align-items: flex-start !important; }
  body.page-service .activities-inner > div:first-child > div[style*="justify-content:center"] { justify-content: flex-start !important; }
  body.page-service .activities-inner > div:first-child > div[style*="text-align:center"] { text-align: left !important; }
  /* 「最新のこころみ」見出しも同じ扱い（アイコン＋見出しの中央寄せを解除） */
  body.page-service .activities-inner > div:last-child { align-items: flex-start !important; }
  body.page-service .activities-inner > div:last-child > div[style*="justify-content:center"] { justify-content: flex-start !important; }
  body.page-service .activities-inner div[style*="white-space:nowrap"] { white-space: normal !important; flex-shrink: 1 !important; min-width: 0 !important; }
  /* 「地域に開いた、とあるのこころみ」のリード文。他2セクションのリードが18pxなのに
     ここだけ本文と同じ15pxで、リード文に見えなかった（2026-09-01 Saori） */
  body.page-service .activities-inner > div:first-child > div[style*="font-size:18px"] { font-size: 18px !important; }
  body.page-service .activities-cards {
    flex-direction: column !important;
    align-items: center !important;
    gap: 24px !important;
  }
  /* こころみカードのアイコンとカード名。中央だと本文だけ左で不揃いに見えるため
     左端へ寄せる（2026-09-01 Saori「事業案内は全部左揃え」） */
  body.page-service .activities-cards .card-item > div[style*="position:absolute; left:115px"] {
    left: 24px !important;
    transform: none !important;
  }
  body.page-service .activities-cards .card-item h4,
  body.page-service .activities-cards .card-item div[style*="text-align:center"] { text-align: left !important; }
  body.page-service .activities-inner div[style*="align-items:flex-end"] { align-items: center !important; }
  body.page-service .activities-inner div[style*="border-radius:32px"] { align-self: center !important; }
  /* 2026-09-01 Saori: 項目と中身が改行になって縦に伸びていたため、SPでも1行に並べる。
     ラベルは幅を固定して値の頭を揃える */
  body.page-service .info-row { flex-direction: row !important; align-items: baseline !important; gap: 12px !important; }
  body.page-service .info-label { width: 84px !important; flex-shrink: 0 !important; font-size: 15px !important; }
  body.page-service .section-content ul[style*="white-space:nowrap"] { white-space: normal !important; font-size: 15px !important; }
  body.page-service .horei-columns { flex-direction: column !important; gap: 8px !important; }
  body.page-service .horei-columns ul { flex: none !important; width: 100% !important; font-size: 15px !important; }
  body.page-service .section-content div[style*="white-space:nowrap"][style*="letter-spacing:1.44px"] { white-space: normal !important; }
  body.page-service .services-root div[style*="flex:1 0 0; height:0; min-width:1px"] { display: none !important; }

  /* ===== body.page-about SP ===== */
  /* KVをページ最上部(y:0)から敷き、ヘッダー分の空間をKV内部に確保する */
  body.page-about { padding-top: 0 !important; }
  body.page-about .sp-header-backdrop { display: none !important; }
  body.page-about .page-root { width: 100% !important; overflow-x: hidden; background-size: 220px 220px; }
  body.page-about .page-root * { white-space: normal !important; max-width: 100%; box-sizing: border-box; }
  body.page-about .nav-links a span,
  body.page-about .nav-links .menu-btn span { white-space: nowrap !important; max-width: none; }
  body.page-about .page-root [style*="flex-shrink:0"] { flex-shrink: 1 !important; min-width: 0 !important; }
  body.page-about .main-title-header { width: 100% !important; height: 220px !important; }
  body.page-about .header-bg { width: 100% !important; height: 184px !important; left: 0 !important; margin-left: 0 !important; }
  body.page-about .header-bg-rect { right: 0 !important; }
  body.page-about .header-title { left: 50% !important; top: 110px !important; transform: translateX(-50%) !important; text-align: center !important; }
  /* FV: コピー（文章）→ 画像の順。写真はビューポート幅に依存しない固定サイズ */
  body.page-about .fv-inner { flex-direction: column !important; width: 100% !important; gap: 0 !important; padding: 0 !important; align-items: center !important; }
  body.page-about .fv-inner > div:first-child { width: 100% !important; padding: 24px 20px 8px !important; order: 1; }
  body.page-about .fv-inner > div:first-child > div:first-child { width: 100% !important; font-size: 30px !important; }
  body.page-about .fv-inner > div:first-child > div:last-child { width: 100% !important; }
  body.page-about .fv-inner > div:last-child {
    width: 320px !important; height: 320px !important; flex-shrink: 0 !important;
    border-radius: 16px !important; order: 2; margin: 0 auto 32px !important;
  }
  body.page-about .fv-inner > div:last-child img { width: 100% !important; height: 100% !important; max-width: none !important; }
  body.page-about .concept-section { width: 100% !important; min-height: unset !important; }
  body.page-about .concept-bg-outer { inset: 0 !important; }
  body.page-about .concept-section [style*="rotate(90deg)"] { display: none !important; }
  body.page-about .concept-section > div[style*="left:0; top:100px; width:240px"] {
    display: flex !important; position: relative !important; left: auto !important; top: auto !important;
    width: 100% !important; height: auto !important; padding: 20px 20px 0 16px !important; /* 左端16px統一（2026-09-03） */
    justify-content: flex-start !important; align-items: flex-start !important;
  }
  body.page-about .concept-section > div[style*="left:0; top:100px; width:240px"] > div:first-child { display: none !important; }
  body.page-about .concept-section > div[style*="left:0; top:100px; width:240px"] > div:last-child {
    position: relative !important; left: auto !important; top: auto !important;
    width: auto !important; height: auto !important; padding: 10px 20px !important; flex-direction: row !important;
  }
  body.page-about .concept-section > div[style*="left:0; top:100px; width:240px"] > div:last-child p,
  body.page-about .concept-section > div[style*="left:0; top:100px; width:240px"] > div:last-child h2 {
    writing-mode: horizontal-tb !important; font-size: 26px !important; width: auto !important; letter-spacing: 4px !important; line-height: 1.4 !important;
  }
  body.page-about .concept-section > div[style*="left:245px"] {
    position: relative !important; left: auto !important; top: auto !important;
    margin: 0 !important;
    width: 100% !important; border-radius: 0 !important; padding: 24px 20px !important; min-height: unset !important;
  }
  body.page-about .concept-section > div[style*="left:245px"] > div { width: 100% !important; padding: 24px 20px !important; }
  body.page-about .concept-section > div[style*="left:245px"] > div > div { width: 100% !important; padding: 0 !important; }
  /* コンセプト: 文章→画像→文章→画像の交互構造。写真は固定サイズのまま中央寄せで表示する */
  body.page-about .concept-section > div[style*="left:245px"] div[style*="width:275.951px"] {
    display: flex !important; margin: 8px auto !important; max-width: 100% !important;
  }
  body.page-about .concept-section div[style*="justify-content:space-between; gap:32px; width:100%"] {
    flex-direction: column !important; gap: 8px !important; align-items: center !important;
  }
  body.page-about .concept-section div[style*="display:flex; gap:32px; align-items:center; width:100%"] {
    flex-direction: column !important; gap: 8px !important; align-items: center !important;
  }
  body.page-about .concept-section div[style*="display:flex; gap:32px; align-items:center; width:100%"] > div[style*="width:275.951px"] { order: 2; }
  body.page-about .concept-section div[style*="display:flex; gap:32px; align-items:center; width:100%"] > div[style*="flex:1 0 0"] { order: 1; width: 100% !important; }
  body.page-about .company-section { width: 100% !important; min-height: unset !important; }
  body.page-about .company-bg-outer { inset: 0 !important; }
  body.page-about .company-section > div[style*="left:0; top:64px; width:240px"] {
    display: flex !important; position: relative !important; left: auto !important; top: auto !important;
    width: 100% !important; height: auto !important; padding: 20px 20px 0 16px !important; /* 左端16px統一（2026-09-03） */
    justify-content: flex-start !important; align-items: flex-start !important;
  }
  body.page-about .company-section > div[style*="left:0; top:64px; width:240px"] > div:first-child { display: none !important; }
  body.page-about .company-section > div[style*="left:0; top:64px; width:240px"] > div:last-child {
    position: relative !important; left: auto !important; top: auto !important;
    width: auto !important; height: auto !important; padding: 10px 20px !important; flex-direction: row !important;
  }
  body.page-about .company-section > div[style*="left:0; top:64px; width:240px"] > div:last-child p,
  body.page-about .company-section > div[style*="left:0; top:64px; width:240px"] > div:last-child h2 {
    writing-mode: horizontal-tb !important; font-size: 26px !important; width: auto !important; letter-spacing: 4px !important; line-height: 1.4 !important;
  }
  body.page-about .company-section > div[style*="margin-left:240px"] {
    margin-left: 0 !important; margin-top: 0 !important; width: 100% !important; padding: 24px 20px !important;
  }
  body.page-about .company-section [style*="rotate(90deg)"] { display: none !important; }
  body.page-about .company-section div[style*="background-image:url('images/008ed006"] {
    width: 100% !important; margin-top: 0 !important; padding: 24px 20px !important;
  }
  /* 人物パート: 説明文→写真の縦積み（大悟側の親はflex rowなので縦に落とす） */
  body.page-about .company-section div[style*="position:relative; flex-shrink:0; width:100%"] {
    display: flex !important; flex-direction: column !important; justify-content: flex-start !important;
  }
  body.page-about .company-section div[style*="right:-13.56px"],
  body.page-about .company-section div[style*="left:-13.56px"] {
    position: relative !important; left: auto !important; right: auto !important; top: auto !important;
    width: 100% !important; height: auto !important; display: flex !important; justify-content: center !important; margin: 16px 0 0 !important;
  }
  body.page-about .company-section div[style*="right:-13.56px"] > div,
  body.page-about .company-section div[style*="left:-13.56px"] > div { transform: none !important; }
  body.page-about .company-section div[style*="right:-13.56px"] > div > div,
  body.page-about .company-section div[style*="left:-13.56px"] > div > div {
    width: 280px !important; max-width: 100% !important; height: auto !important; min-height: 280px !important;
  }
  /* 2026-09-01 Saori: 項目と中身が改行になって幅（高さ）を取りすぎていたため1行に戻す */
  body.page-about .company-section div[style*="display:flex; align-items:center; flex-shrink:0; color:white; width:100%"],
  body.page-about .company-section div[style*="display:flex; align-items:flex-start; flex-shrink:0; color:white; width:100%"] {
    flex-direction: row !important; gap: 12px !important; align-items: baseline !important;
  }
  body.page-about .company-section div[style*="width:160px"] { width: 84px !important; flex-shrink: 0 !important; font-weight: 600 !important; font-size: 15px !important; }
  /* 値側は残り幅で折り返す（1行化で右にはみ出していた） */
  /* 値側。縦積み時代の flex:none / width:100% を、1行化に合わせて
     「残り幅で折り返す」へ変更（2026-09-01） */
  body.page-about .company-section div[style*="display:flex; align-items:center; flex-shrink:0; color:white; width:100%"] > p,
  body.page-about .company-section div[style*="display:flex; align-items:flex-start; flex-shrink:0; color:white; width:100%"] > p,
  body.page-about .company-section div[style*="display:flex; align-items:flex-start; flex-shrink:0; color:white; width:100%"] > ul {
    flex: 1 1 0 !important; min-width: 0 !important; width: auto !important;
    white-space: normal !important; font-size: 15px !important;
  }
  body.page-about .location-section { width: 100% !important; height: auto !important; margin-top: 0 !important; }
  body.page-about .location-section [style*="rotate(90deg)"] { display: none !important; }
  body.page-about .location-section > div[style*="left:80px; top:100px; width:200px"] {
    display: flex !important; position: relative !important; left: auto !important; top: auto !important;
    width: 100% !important; height: auto !important; padding: 20px 20px 0 16px !important; /* 左端16px統一（2026-09-03） */
    justify-content: flex-start !important; align-items: flex-start !important;
  }
  body.page-about .location-section > div[style*="left:80px; top:100px; width:200px"] > div:first-child { display: none !important; }
  body.page-about .location-section > div[style*="left:80px; top:100px; width:200px"] > div:last-child {
    position: relative !important; left: auto !important; top: auto !important;
    width: auto !important; height: auto !important; padding: 10px 20px !important; flex-direction: row !important;
  }
  body.page-about .location-section > div[style*="left:80px; top:100px; width:200px"] > div:last-child p,
  body.page-about .location-section > div[style*="left:80px; top:100px; width:200px"] > div:last-child h2 {
    writing-mode: horizontal-tb !important; font-size: 26px !important; width: auto !important; letter-spacing: 4px !important; line-height: 1.4 !important;
  }
  body.page-about .location-section > div[style*="left:280px; top:100px"] {
    position: relative !important; left: auto !important; top: auto !important; width: 100% !important; padding: 24px 20px !important;
  }
  body.page-about .location-section div[style*="font-size:18px; letter-spacing:1.44px"] { text-align: left !important; }
  body.page-about .location-section div[style*="height:480px"] { width: 100% !important; height: 300px !important; }
  body.page-about .location-section iframe { width: 100% !important; height: 300px !important; }

  /* ===== body.page-recruit SP ===== */
  /* KVをページ最上部(y:0)から敷き、ヘッダー分の空間をKV内部に確保する */
  body.page-recruit { padding-top: 0 !important; background-size: 110px 110px !important; }
  body.page-recruit .sp-header-backdrop { display: none !important; }
  body.page-recruit #main-title-bar { height: 225px !important; }
  body.page-recruit #main-title-bar > div[style*="height:104px"] { height: 189px !important; }
  body.page-recruit #main-title-bar > div[style*="top:20px"] { top: 125px !important; }
  body.page-recruit #page-root { width: 100% !important; overflow-x: hidden; }
  body.page-recruit #page-root * { white-space: normal !important; max-width: 100%; box-sizing: border-box; }
  body.page-recruit .nav-links .menu-btn span,
  body.page-recruit .btn-m span,
  body.page-recruit .btn-s span,
  body.page-recruit .sp-section-badge { white-space: nowrap !important; max-width: none; }
  body.page-recruit #fv { min-height: 500px !important; padding-bottom: 60px; }
  body.page-recruit #main-title-bar { width: 100% !important; }
  body.page-recruit #main-title-bar > div:first-child { right: 0 !important; width: 100% !important; }
  body.page-recruit #fv > div[style*="top:173px"] {
    position: relative !important; top: 0 !important; left: 0 !important; right: 0 !important;
    width: 100% !important; height: auto !important; aspect-ratio: 375 / 220 !important; border-radius: 0 !important;
    border-left: none !important; border-right: none !important; margin-top: 225px;
  }
  body.page-recruit #fv > div[style*="left:640px"] {
    position: relative !important; top: 0 !important; left: 0 !important; right: 0 !important;
    width: 100% !important; transform: none !important; padding: 32px 20px 0 !important; gap: 24px !important;
  }
  body.page-recruit #fv > div[style*="left:640px"] div[style*="font-size:40px"] { font-size: 30px !important; }
  /* SPはFV本文のパラグラフ内改行（p分割）を解除して自然折返しにする（2026-09-03 Saori）。見出し40pxは対象外 */
  body.page-recruit #fv > div[style*="left:640px"] div[style*="font-size:20px"] p,
  body.page-recruit #fv > div[style*="left:640px"] div[style*="font-size:18px"] p { display: inline; }
  body.page-recruit #fv > div[style*="left:640px"] div[style*="font-size:20px"] { font-size: 15px !important; line-height: 1.8 !important; }
  body.page-recruit #fv > div[style*="left:640px"] div[style*="font-size:18px"] { font-size: 15px !important; }
  body.page-recruit .sp-section-badge {
    /* 視覚定義は共通 .sp-section-badge へ統合（2026-09-03）。ここは表示切替と配置のみ。
       コンテナが padding 16px を持つため左マージンは0（合算で左端16px） */
    display: flex;
    align-items: center;
    justify-content: center;
  }
  body.page-recruit #culture { flex-direction: column !important; padding: 40px 16px 60px !important; gap: 0; }
  body.page-recruit .cat-sidebar { display: none !important; }
  body.page-recruit #culture > div:last-child { flex: none !important; width: 100% !important; padding: 0 !important; gap: 48px !important; }
  body.page-recruit .value-item-wrap-r, body.page-recruit .value-item-wrap-l { padding: 0 !important; }
  body.page-recruit .value-item-inner { flex-direction: column !important; align-items: flex-start !important; padding: 0 16px 16px !important; gap: 12px !important; }
  body.page-recruit .value-num {
    width: auto !important; align-self: flex-start !important; border-radius: 0 !important;
    flex-direction: row !important; padding: 8px 16px !important; gap: 8px !important; justify-content: flex-start !important;
  }
  body.page-recruit .quote-card-wrap { flex: none !important; width: 100% !important; min-width: 0; align-self: auto !important; }
  body.page-recruit .quote-card { flex: none !important; min-height: 60px !important; }
  body.page-recruit #culture div[style*="display:flex; gap:16px; align-items:flex-start; width:100%"] { flex-direction: column !important; gap: 16px !important; }
  body.page-recruit #culture div[style*="min-height:465px"] { display: none !important; }
  body.page-recruit #culture div[style*="grid-template-columns:repeat(3"] { grid-template-columns: 1fr !important; gap: 24px !important; }
  body.page-recruit #culture div[style*="grid-column:2"] { grid-column: 1 !important; }
  body.page-recruit #culture div[style*="background-color:#c3a369"] { padding: 24px 16px !important; }
  body.page-recruit #culture div[style*="align-items:center; justify-content:center"] img { width: 20px !important; height: 20px !important; }
  body.page-recruit #culture div[style*="height:0; min-width:1px"] { display: none !important; }
  /* ===== 見出しの階層を立てる（2026-08-22）=====
     SPで直列スクロールすると各エリアのくくりが判別できないという指摘への対応。
     文言は変えず、L1（セクション）とL2（グループ）の差を余白と装飾で作る。
     L1: 上に区切り線＋大きめの余白で「ここから別の話」を示す
     L2: 左の色帯でL1に従属していることを示す */
  body.page-recruit .section-heading {
    white-space: normal !important;
    line-height: 1.5 !important;
    width: 100% !important;
    margin-bottom: 4px !important;
  }
  /* グループ見出し（自分らしくいられるようになった／学びの面白さに気づいた）。
     ハートアイコンと横並びの入れ子（flex-shrink:0）の中にいるため、
     色帯を足すとアイコンの隣に出て意図とずれる。折り返し許可と字上げのみに留める */
  body.page-recruit .group-heading {
    white-space: normal !important;
    /* H4相当の小見出し（2026-09-01・一度21pxへ上げたのを差し戻し） */
    font-size: 18px !important;
  }
  /* OJTボックス内の見出し（入社後のイメージ）。
     セクション見出しと同じ字送りに揃える。ただし茶色ボックスの中にいるため
     section-heading のような上の区切り線は付けない（箱自体が区切りになっている） */
  body.page-recruit .box-heading {
    white-space: normal !important;
    line-height: 1.5 !important;
    width: 100% !important;
  }
  body.page-recruit #staff-voice { flex-direction: column !important; padding: 40px 16px 60px !important; }
  body.page-recruit #staff-voice div[style*="display:flex; gap:16px; align-items:stretch; width:100%"] { flex-direction: column !important; gap: 16px !important; }
  body.page-recruit .staff-card { flex: none !important; width: 100% !important; min-width: 0; }
  /* 横長カードはSPでは縦積みに戻す（写真行→本文の順）。左の仕切り線も横罫に置き換える */
  body.page-recruit .staff-card-wide { flex-direction: column !important; gap: 16px !important; padding: 16px 24px !important; }
  /* PCで指定した改行位置はSPの狭い幅だと中途半端に切れるので、SPでは無効化して
     自然な折り返しに任せる（2026-09-01） */
  body.page-recruit .staff-card-wide-body br { display: none; }
  /* Staff Voice 2枚のPC用改行指定はSPでは解除し自然折返しに任せる（2026-09-03） */
  body.page-recruit .staff-card p br { display: none; }
  body.page-recruit .staff-card-wide-media { width: 100% !important; }
  body.page-recruit .staff-card-wide-media-portrait { width: 100% !important; }
  body.page-recruit .staff-card-wide-body { border-left: none !important; border-top: 1px solid #0e2349 !important; padding-left: 0 !important; padding-top: 16px !important; }
  body.page-recruit #staff-voice > div:last-child { flex: none !important; width: 100% !important; padding: 0 !important; align-items: flex-start !important; }
  body.page-recruit #staff-voice .btn-s { align-self: center !important; }
  body.page-recruit #want { flex-direction: column !important; padding: 40px 16px 60px !important; }
  body.page-recruit #want > div[style*="z-index:1"] { flex: none !important; width: 100% !important; padding: 0 !important; }
  body.page-recruit .qa-row { flex-direction: column !important; gap: 8px !important; }
  body.page-recruit .qa-avatar { flex-direction: row !important; gap: 12px !important; align-items: center !important; }
  body.page-recruit .qa-bubble { flex: none !important; width: 100% !important; padding: 16px 20px !important; }
  /* SPはアバターがカード上に縦積みになるので、尻尾を上向き△にしてカード上辺左からアバターを指す（PNG尻尾は非表示にしCSS三角形で描く） */
  body.page-recruit .fikidashi-wrap {
    display: block !important;
    position: absolute !important;
    left: 22px !important;
    top: -10px !important;
    width: 20px !important;
    height: 11px !important;
    transform: none !important;
  }
  body.page-recruit .fikidashi-inner { display: none !important; }
  body.page-recruit .fikidashi-wrap::before,
  body.page-recruit .fikidashi-wrap::after {
    content: "";
    position: absolute;
    left: 0;
    width: 0;
    height: 0;
    border-top: 0 !important;
    border-right: 10px solid transparent !important;
    border-left: 10px solid transparent !important;
  }
  /* 下地の紺三角（枠線・上向き） */
  body.page-recruit .fikidashi-wrap::before {
    top: 0;
    border-bottom: 12px solid #0e2349 !important;
  }
  /* 上に灰三角（カード色 #ececec）を1px内側に重ねて枠だけ残す */
  body.page-recruit .fikidashi-wrap::after {
    top: 1px;
    left: 1px;
    border-right: 9px solid transparent !important;
    border-left: 9px solid transparent !important;
    border-bottom: 11px solid #ececec !important;
  }
  body.page-recruit .qa-avatar div[style*="align-items:center; text-align:center"] { align-items: flex-start !important; text-align: left !important; }
  /* 2026-09-09: 本音対談の話者表記変更（肩書き行を削除・width:75px→nowrap）に追従 */
  body.page-recruit .qa-avatar div[style*="white-space:nowrap"] { width: auto !important; }
  body.page-recruit #want > div[style*="flex:1"],
  body.page-recruit #want > div:last-child:not(.sp-section-badge) { flex: none !important; width: 100% !important; padding: 0 !important; }
  body.page-recruit #apply { padding: 60px 16px !important; }
  body.page-recruit #apply > div[style*="width:1040px"] { width: 100% !important; padding: 32px 20px 48px !important; }
  body.page-recruit #apply div[style*="width:800px"] { width: 100% !important; flex-direction: column !important; gap: 16px !important; }
  body.page-recruit .btn-m { flex: none !important; width: 100% !important; height: 56px !important; }

  /* ===== body.page-index SP ===== */
  /* KVをページ最上部(y:0)から敷き、ヘッダー分の空間をKV内部に確保する */
  body.page-index { padding-top: 0 !important; }
  body.page-index .sp-header-backdrop { display: none !important; }
  body.page-index .page-root [style*="width:1440px"] { width: 100% !important; max-width: 100% !important; }
  body.page-index section#mv { width: 100% !important; }
  body.page-index .page-root > section,
  body.page-index .page-root > footer { width: 100% !important; }
  body.page-index .page-root { width: 100% !important; overflow-x: hidden; background-size: 220px 220px; }
  body.page-index .page-root * { white-space: normal !important; max-width: 100%; box-sizing: border-box; }
  body.page-index .nav-links a span,
  body.page-index .nav-links .menu-btn span,
  body.page-index .btn-s span,
  body.page-index .btn-m span { white-space: nowrap !important; max-width: none; }
  body.page-index section#mv { width: 100% !important; height: auto !important; min-height: 220px !important; overflow: hidden !important; position: relative !important; padding: 110px 16px 40px !important; }
  body.page-index section#mv > div:first-of-type { display: none !important; }
  body.page-index section#mv > div:last-child { position: relative !important; left: auto !important; top: auto !important; transform: none !important; width: 100% !important; height: auto !important; }
  body.page-index section#mv > div:last-child > div { position: relative !important; width: 100% !important; height: auto !important; overflow: visible !important; }
  body.page-index section#mv > div:last-child img { position: relative !important; width: 100% !important; height: auto !important; max-width: none !important; display: block !important; }
  body.page-index section#news { width: 100% !important; }
  body.page-index section#news > div:first-child { width: 100% !important; }
  body.page-index section#news > div:first-child > div { width: 100% !important; }
  /* 2026-08-30: SPも200px前後まで削る。上下124pxのpaddingが最大の要因だった */
  body.page-index section#news > div:last-child { padding: 24px 16px 20px !important; align-items: center !important; gap: 14px !important; }
  /* 2026-09-02 カズキタレビュー: SPは上から NEWS&EVENTSラベル → とあるの今 → リード文 の縦積み
     （8/30の「バッジと見出しを横1行」は取り下げ） */
  body.page-index section#news > div:last-child > div:first-child { flex-direction: column !important; gap: 10px !important; align-items: flex-start !important; text-align: left !important; width: 100% !important; }
  body.page-index section#news > div:last-child > div:first-child > div:first-child { flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; }
  body.page-index section#news > div:last-child > div:first-child > div:last-child { white-space: normal !important; text-align: center !important; }
  body.page-index section#news > div:last-child > div:last-child { width: 100% !important; align-items: center !important; }
  body.page-index section#news p[style*="white-space:nowrap"],
  body.page-index section#news p[style*="white-space: nowrap"] { white-space: normal !important; overflow: visible !important; text-overflow: unset !important; }

  /* 2026-08-30: SPを200px前後に収める。内訳は見出しブロック160px＋カード157pxが大半だった */
  /* 見出し「とあるの今」を32px→24pxへ。SPではバッジ＋見出しで87px使っていた */
  body.page-index section#news .news-heading { letter-spacing: 1.5px !important; }
  /* リード文はSPでも1行で出す（Saori: SPだと何の情報か分からない） */
  body.page-index section#news > div:last-child > div:first-child > div:last-child { display: block !important; font-size: 15px !important; line-height: 1.6 !important; text-align: left !important; white-space: normal !important; }
  /* カードと記事一覧リンクの間隔40px→20px */
  body.page-index section#news > div:last-child > div:last-child { gap: 20px !important; }
  /* ===== 「とあるの今」SP軽量化（2026-08-22）=====
     SP直列表示でこの塊が重くファーストビューを侵食していたため、位置は変えず中身を削る。
     写真をなくし、日付＋タイトルだけのプレーンな1枚に絞る。 */
  /* PC用の min-height:897px がSPでも下限として効き、中身を削っても高さが縮まないため解除する */
  body.page-index section#news { min-height: 0 !important; }
  /* ===== note記事リスト SP（トップ・事業案内 共用）=====
     PCと同じリスト型。SPは1件だけ出す（カズキタ「スマホは1行のまま」） */
  .news-list { width: 100% !important; padding: 4px 16px !important; }
  .news-row { flex-direction: column !important; gap: 4px !important; padding: 14px 0 !important; }
  .news-row:nth-child(n+2) { display: none !important; }
  .news-row:first-child { border-bottom: none !important; }
  .news-row-date { font-size: 12px !important; }
  .news-row-title { font-size: 18px !important; }
  /* 記事一覧リンクのテキストリンク化は共通ルールへ移設した（2026-08-30・PCも同じ扱い） */
  body.page-index section#about { height: auto !important; width: 100% !important; margin-top: 40px !important; margin-bottom: 40px !important; overflow: visible !important; }
  body.page-index section#about > div:first-of-type { display: none !important; }
  body.page-index section#about > div:last-child { position: relative !important; height: auto !important; left: 0 !important; top: 0 !important; width: 100% !important; padding: 0 16px !important; }
  body.page-index section#about > div:last-child > div:first-child { position: relative !important; height: auto !important; left: 0 !important; top: 0 !important; width: 100% !important; display: none !important; }
  /* 2026-09-02 Saori: SPは「みんなが写っている真四角の写真」だけにする。
     背面の縦写真（2人・回転）は消し、前面の正方形写真を全幅の正方形で出す */
  body.page-index section#about > div:last-child > div:nth-child(2) { position: relative !important; height: auto !important; aspect-ratio: 1 / 1 !important; left: 0 !important; top: 0 !important; width: 100% !important; overflow: hidden !important; border-radius: 16px !important; }
  body.page-index section#about > div:last-child > div:nth-child(2) > div:first-child { display: none !important; }
  body.page-index section#about > div:last-child > div:nth-child(2) > div:last-child { position: absolute !important; inset: 0 !important; left: 0 !important; top: 0 !important; width: 100% !important; height: 100% !important; border-radius: 16px !important; }
  /* 2026-09-02 Saori: SPの並びを タイトル → 写真 → 文章 → ボタン にする。
     PCではテキスト領域（タイトル＋文章＋ボタン）が1つの箱なので、SPでは箱をほどいて
     （display:contents）カード直下のflexアイテムにし、order で並べ替える */
  body.page-index section#about > div:last-child > div:last-child { display: contents !important; }
  body.page-index section#about > div:last-child > div:last-child > div:first-child { display: contents !important; }
  /* タイトル画像 */
  body.page-index section#about > div:last-child > div:last-child > div:first-child > div:first-child {
    order: 1; position: relative !important; width: 320px !important; max-width: 100% !important; height: 132px !important;
    margin: 24px auto 20px !important;
  }
  /* 写真 */
  body.page-index section#about > div:last-child > div:nth-child(2) { order: 2; }
  /* 文章 */
  body.page-index section#about > div:last-child > div:last-child > div:first-child > div:last-child {
    order: 3; width: 100% !important; margin: 24px 0 0 !important; padding: 0 4px !important;
  }
  /* ボタン */
  body.page-index section#about a.btn-s { order: 4; margin: 24px 0 28px !important; }
  body.page-index section#about > div:last-child > div:last-child { position: relative !important; left: 0 !important; top: 0 !important; width: 100% !important; padding: 24px 20px !important; align-items: center !important; margin-top: 16px !important; }
  body.page-index section#about > div:last-child > div:last-child div[style*="text-align:center"],
  body.page-index section#about > div:last-child > div:last-child div[style*="text-align: center"] { text-align: left !important; width: 100% !important; }
  body.page-index section#about a.btn-s { align-self: center !important; }
  /* 締めコピーのSP行間: line-height:2 は広すぎるため本文標準の1.8へ（2026-09-03 Saori） */
  body.page-index section#about p[style*="line-height:2"] { line-height: 1.8 !important; }
  body.page-index section#about > div:last-child { background-color: white !important; border: 1px solid #0e2349 !important; border-radius: 16px !important; display: flex !important; flex-direction: column !important; gap: 0 !important; overflow: hidden !important; }
  body.page-index section#services { width: 100% !important; border-radius: 24px 24px 0 0 !important; }
  body.page-index section#services > div:last-child { flex-direction: column !important; padding: 60px 16px 40px !important; gap: 40px !important; }
  body.page-index section#services > div:last-child > div:first-child { width: 100% !important; align-items: center !important; }
  body.page-index section#services > div:last-child > div:first-child > div:first-child > div:last-child { text-align: center !important; width: 100% !important; white-space: normal !important; }
  body.page-index section#services a.btn-s { align-self: center !important; }
  body.page-index section#services > div:last-child > div:last-child { width: 100% !important; flex-shrink: unset !important; }
  body.page-index section#services div[style*="gap:20px; align-items:center; position:relative; flex-shrink:0; width:100%"] { flex-direction: row !important; flex-wrap: wrap !important; align-items: flex-start !important; gap: 12px 12px !important; }
  body.page-index section#services div[style*="gap:20px; align-items:center; position:relative; flex-shrink:0; width:100%"] > div:first-child { flex-shrink: 0 !important; width: 64px !important; height: 64px !important; }
  body.page-index section#services div[style*="gap:20px; align-items:center; position:relative; flex-shrink:0; width:100%"] > div:nth-child(2) { flex: 1 !important; min-width: 0 !important; }
  body.page-index section#services div[style*="gap:20px; align-items:center; position:relative; flex-shrink:0; width:100%"] > div:first-child div[style*="border-radius:40px"] { width: 64px !important; height: 64px !important; }
  body.page-index section#services div[style*="gap:20px; align-items:center; position:relative; flex-shrink:0; width:100%"] > div:first-child div[style*="width:48px; height:48px"] { width: 38px !important; height: 38px !important; }
  body.page-index section#services div[style*="height:64px"][style*="border-left"] { display: none !important; }
  body.page-index section#services p[style*="flex:1 0 0"] { flex: 0 0 100% !important; white-space: normal !important; font-size: 15px !important; }
  body.page-index section#services div[style*="width:104px"] { width: auto !important; }
  /* カード名はSPでは1行（PCは幅104pxで2行に折るデザインのまま）2026-08-30 Saori指摘
     2026-09-03: 見出し階層変更(h3→h4)でセレクタ外れしていたのを追従。ラベルはアイコンと天地中央に */
  body.page-index section#services h4 { white-space: normal !important; }
  body.page-index section#services h4 br { display: none !important; }
  body.page-index section#services h4 .sp-dot { display: inline !important; }
  body.page-index section#services div[style*="gap:20px; align-items:center; position:relative; flex-shrink:0; width:100%"] > div:nth-child(2) { align-self: center !important; }
  /* SPでもPCと同じ青背景を出す（bg wrapを消すと地模様が透けて黄色く見えるため、セクション自体に青を付与） */
  body.page-index section#recruit-top { height: auto !important; width: 100% !important; background-color: #546895 !important; border-top: 1px solid #0e2349 !important; }
  body.page-index section#recruit-top > div:first-of-type { position: relative !important; inset: unset !important; width: 100% !important; height: auto !important; display: none !important; }
  body.page-index section#recruit-top > div:last-child { position: relative !important; left: 0 !important; top: 0 !important; width: 100% !important; padding: 60px 16px 40px !important; border-radius: 0 !important; align-items: center !important; }
  body.page-index section#recruit-top div[style*="white-space:nowrap"],
  body.page-index section#recruit-top div[style*="white-space: nowrap"] { white-space: normal !important; text-align: center !important; width: 100% !important; }
  body.page-index section#recruit-top div[style*="top:14px; left:23px"] { left: 0 !important; }
  body.page-index section#recruit-top a.btn-s { align-self: center !important; }
  body.page-index section#contact { width: 100% !important; }
  body.page-index section#contact div[style*="background-color:#c3a369; top:25px"] { top: 0 !important; }
  body.page-index section#contact > div:last-child { flex-direction: column !important; padding: 60px 16px 40px !important; gap: 40px !important; }
  body.page-index section#contact > div:last-child > div:first-child { width: 100% !important; flex: unset !important; min-width: unset !important; }
  body.page-index section#contact div[style*="white-space:nowrap"] { white-space: normal !important; }
  body.page-index section#contact > div:last-child > :last-child { width: 100% !important; flex-shrink: unset !important; }
  body.page-index section#contact button.btn-m { align-self: center !important; }

  /* =====================================================================
     SP文字サイズの段（2026-09-01・Saori指示）
     =====================================================================
     問題: SPで 26/24/22/20/18/16/15/14/13/12 が2px刻みで並び、
     「段」ではなく「ほぼ同じサイズの塊」に見えていた。しかも見出しでない
     要素（Value項目名・Episode 01等の飾り・リード文）が見出しと同じ帯に
     居座り、階層が読めなくなっていた（事業案内・採用で特に顕著）。

     対策: 段そのものを5つに減らし、各段の差を3px以上とる。
     PC側のサイズを入力として、SPの段へ写像する（HTMLは触らない）。

       特大   30px … H1・ページのキャッチコピー      ← PC 40px
       大     26px … H2（セクション名・バッジ）      ← PC 32px
       中     21px … H3（セクション内の見出し）      ← PC 32px相当の見出し
       小見出 18px … H4（カード名・箱の見出し）      ← PC 24/20px
       本文   15px … 本文・リスト                    ← PC 18/16px
       極小   12px … 肩書き・日付・英字ラベル・飾り  ← PC 14/13/12/11/10px

     H1〜H4の4階層をSPでも保つ（2026-09-01 Saori）。差は 4/5/3/3px。
     ※2026-09-01の初版で h3,h4 をまとめて21pxにしていたのは誤り。
       「段を減らす」判断でH4を潰してしまい、階層が3段になっていた。

     PCの 40/32/20 は現状で階層が立っているため触らない。
     ここは末尾に置き、前段の個別 !important より後勝ちさせる。          */

  /* --- 見出しタグ（上部の共通層をSPの段で上書き） --- */
  h1 { font-size: 30px !important; }
  h2 { font-size: 26px !important; }
  h3 { font-size: 21px !important; }
  h4 { font-size: 18px !important; }

  /* --- PCサイズを入力にした写像（インラインstyleを持つ要素） --- */
  body [style*="font-size:40px"] { font-size: 30px !important; }
  body [style*="font-size:32px"] { font-size: 26px !important; }
  body [style*="font-size:24px"],
  body [style*="font-size:20px"] { font-size: 18px !important; }
  body [style*="font-size:18px"],
  body [style*="font-size:16px"] { font-size: 15px !important; }
  body [style*="font-size:14px"],
  body [style*="font-size:13px"],
  body [style*="font-size:12px"],
  body [style*="font-size:10px"] { font-size: 12px !important; }

  /* 英字の飾りラベル（Services / Concept / Recruit 等）は11pxのまま小さく置く。
     ただし Episode 01 / Step01 / Value / Concept のような大きい飾り文字は
     PCで24〜32pxあり、上の写像で18〜22pxに落ちてなお見出しと張り合うため、
     装飾の身分（小）まで下げる */
  body.page-service .service-section p[style*="Yesteryear"],

  /* --- 段から外す例外 --- */
  /* noteカードのタイトルは「とあるの今／最新のこころみ」の主役。中(18px)を保つ
     （共通層で20px指定しているのをSPの段に合わせる） */

  /* 巨大な装飾英字（Apply / Activities 等・PC 90px）は装飾なので段の外 */
  body [style*="font-size:90px"] { font-size: 32px !important; }

  /* 会社案内コンセプトの見出し「Concept」。飾り英字の一律16pxだと小さすぎるので
     カード内の見出しとして一段大きく（2026-09-01 Saori） */
  body.page-about .concept-section div[style*="font-size:24px"][style*="Yesteryear"] { font-size: 22px !important; }

  /* 飾りの英字（Episode 01 / Step01 / Value / Activities）。
     写像より後ろに置いて後勝ちさせる（同じ要素が font-size:24px も持つため） */
  /* 飾り英字（Episode 01 / Step01 / Activities）。読ませる要素なので極小には
     しないが、直上のH4(18px)を追い越さない位置に置く（2026-09-01） */
  body [style*="Yesteryear"] { font-size: 16px !important; }
  /* Step01 / Step02（OJTのステップ番号）。読ませる要素なので小さくしすぎない
     （2026-09-01・一度14pxまで落として読めなくなっていたのを差し戻し） */
  body.page-recruit .ojt-step-label { font-size: 20px !important; }
  /* Value 01 は「Value」(20px)＋「01」(32px)がセットの意匠。片方だけ縮めると
     組が壊れるため、2つの比を保ったまま装飾の大きさへ落とす */
  body.page-recruit .value-num .vn-label { font-size: 16px !important; }
  body.page-recruit .value-num .vn-num { font-size: 26px !important; }

  /* ボタン内のラベルは本文の段に置く（見出しと張り合わせない） */
  body .btn-s span,
  body .btn-s span,
  body .btn-m span,
  body .btn-m span { font-size: 15px !important; }
  /* 「気になったら、ここから」等、PC32pxの誘導文。H2(22px)と同格に見えないよう中へ */
  /* 「気になったら、ここから」の誘導文。飾り英字(Apply)は除く */
  body.page-recruit #apply div[style*="font-size:32px"]:not([style*="Yesteryear"]) { font-size: 21px !important; }
  body.page-recruit #apply div[style*="Yesteryear"] { font-size: 26px !important; }
  /* Service02のリード文（PC20px）。H2(22px)の直下に来るため中(18px)へ */
  /* 3行が全部同じ18pxの塊になっていたため、1行目をH3・残り2行を本文に分ける
     （2026-09-01 Saori指示） */
  body.page-service .s02-intro-text { text-align: left !important; }
  body.page-service .s02-intro-text h3 { font-size: 21px !important; }
  body.page-service .s02-intro-body { font-size: 15px !important; font-weight: 400 !important; }
}
