@charset "UTF-8";

/* =============================================
　サイトベースとリセット 
==============================================*/
html {
  scroll-behavior: smooth;
}

section[id],
div[id] {
  scroll-margin-top: 109px;
}

.mobile-menu-btn,
.mobile-menu,
.mobile-menu-overlay {
  display: none;
}

.sp-only {
  display: none;
}

/* heroクラスを持たないすべてのsection要素に上下120pxを付与 */
section {
  padding: 120px 0;
  box-sizing: border-box;
}

a:hover {
  text-decoration: none;
}

@keyframes fadeInPage {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

a,
button,
.submit-btn,
.btn-back-top,
.nav-link {
  transition: opacity 0.3s ease, background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

body {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  color: #292929;
  line-height: 1.6;
  background-color: #ffffff;
}

@font-face {
  font-family: 'Inter-Local';
  src: url('../fonts/Inter-BlackItalic.woff2') format('woff');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

.font-mincho {
  font-family: 'Zen Old Mincho', serif;
  font-weight: 700;
}

.site-wrapper {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
}

/* タイトル文字の箱 */
.title-container,
.content-container {
  max-width: 1240px;
  width: 100%;
  height: auto;
  margin: 0 auto;
  box-sizing: border-box;
  margin-bottom: 25px;
}

.section-container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto 40px;
}

.pagetop {
  display: none;
}

/* ==========================================
   グローバルナビエリア
   ========================================== */

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
}

/* グローバルナビ枠 */
.header-inner {
  max-width: 1440px;
  padding: 0 25px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 109px;
}

/* ヘッダーロゴ画像サイズ指定 */
.header-logo img {
  width: 187px;
  height: 54px;
  object-fit: contain;
}

.global-nav {
  display: flex;
  align-items: center;
}

.nav-list {
  display: flex;
  align-items: center;
  gap: 17px;
  list-style: none;
}

.nav-link {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.nav-label {
  font-size: 32px;
  font-weight: 900;
  color: #292929;
  paint-order: stroke fill;
  line-height: 1;
}

.nav-text {
  font-size: 14px;
  font-weight: 600;
  color: #292929;
}

/* グローバルナビ　RECRUIT文字色 */
.nav-link--accent .nav-label,
.nav-link--accent .nav-text,
.nav-link--recruit .nav-label,
.nav-link--recruit .nav-text {
  color: #1C236D;
}

/* グローバルナビ　CONTACT文字色 */
.nav-link--contact .nav-label,
.nav-link--contact .nav-text {
  color: #D95A16;
}

.nav-label,
.nav-text {
  transition: color 0.3s ease;
}

/* グローバルナビ（ABOUT〜COMPANY）のホバー時*/
.nav-link:hover .nav-label,
.nav-link:hover .nav-text {
  color: #1C236D;
}

.nav-link--recruit:hover .nav-label,
.nav-link--recruit:hover .nav-text {
  color: #292929;
}

/* グローバルナビ（RECRUIT）ホバー時 */
.nav-link--accent:hover .nav-label,
.nav-link--accent:hover .nav-text {
  color: #ffffff;
}

/* グローバルナビ（CONTACT）ホバー時 */
.nav-link--contact:hover .nav-label,
.nav-link--contact:hover .nav-text {
  color: #ffffff;
}

/* ==========================================
   フッター（Footer）
========================================== */

/* フッター全体 */
footer {
  width: 100%;
  background-color: #ffffff;
  box-sizing: border-box;
  padding-top: 120px;
}

/* インナーコンテナ */
footer .content-container {
  max-width: 1240px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 120px;
}

/* フッターナビエリア */
.footer-content {
  width: 885px;
  min-height: 189px;
  display: grid;
  grid-template-columns: repeat(3, 275px);
  column-gap: 30px;
  row-gap: 40px;
  margin-bottom: 80px;
}

/* 各カラム */
.footer-column {
  width: 100%;
  max-width: 275px;
}

/* タイトル */
.footer-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #1C236D;
  margin: 0 0 8px 0;
  line-height: 1.2;
}

/* アンダーバー */
.footer-title-underline {
  width: 100%;
  height: 1px;
  background-color: #1C236D;
  margin-bottom: 14px;
}

/* リンク一覧 */
.footer-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-link {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #1C236D;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.footer-link:hover {
  opacity: 0.7;
}

/* ===========================================
   2. ロゴ・会社情報エリア
  ========================================== */

.footer-info {
  width: 254px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 60px;
}

.footer-logo {
  margin-bottom: 20px;
}

.footer-logo img {
  width: 180px;
  height: auto;
  display: block;
  margin: 0 auto;
}

.footer-address {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #1C236D;
  line-height: 1.6;
  font-style: normal;
  margin: 0 0 20px 0;
}

.footer-tel {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #1C236D;
  margin: 0 auto;
}

/* ===========================================
   3. 最下部 コピーライト帯
  ========================================== */
.footer-bottom {
  width: 100%;
  height: 60px;
  background-color: #1C236D;
  display: flex;
  align-items: center;
  justify-content: center;
}

.copyright {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: #ffffff;
  margin: 0;
  letter-spacing: 0.05em;
}

/* ==========================================
   各ページメインビジュアル (Page Hero)
========================================== */

.page-hero {
  position: relative;
  width: 100%;
  height: 503px;
  overflow: hidden;
}

/* 背景画像 */
.page-hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.page-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.4;
}

/* ビジュアル内テキストの箱*/
.page-hero-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 100px;
  padding-left: 0;
  box-sizing: border-box;
  display: flex;
  align-items: baseline;
  gap: 25px;
}

/* 英語タイトル*/
.page-hero-title-en {
  font-family: 'Inter', sans-serif;
  font-size: 96px;
  font-weight: 900;
  color: #292929;
  line-height: 1;
  letter-spacing: 0.03em;
  margin: 0;
  -webkit-text-stroke: 2px currentColor;
  paint-order: stroke fill;
}

/* 日本語タイトル*/
.page-hero-title-jp {
  font-size: 24px;
  font-weight: 700;
  color: #292929;
  line-height: 1;
  margin: 0;
}

/* ==========================================
   パンくずリスト (Breadcrumbs)
   ========================================== */

.breadcrumb-container {
  width: 100%;
  height: 56px;
}

.breadcrumb-container .content-container {
  width: 100%;
  max-width: 1240px;
  height: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

ol.breadcrumb-list {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 13px;
  line-height: 1;
  color: #808080;
}

/* 区切り記号（≫）と文字の間隔を9pxに */
li.breadcrumb-item+.breadcrumb-item::before {
  content: "»";
  margin: 0 9px;
  padding: 0;
  color: #808080;
}

.breadcrumb-item a {
  color: #808080;
  text-decoration: none;
}

.breadcrumb-item a:hover {
  text-decoration: underline;
}

.breadcrumb-item[aria-current="page"] {
  color: #808080;
}

/* ==========================================
   【SITE TOP】
========================================== */
/* ------------------------------------------
   　HERO VIEW
------------------------------------------ */

.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.hero-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  background-color: #fff;
}

/* 動画上のキャッチコピー位置 */
.hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  text-align: left;
  box-sizing: border-box;
}

/* 英語タイトル（Make Tomorrow） */
.hero-title {
  font-family: 'Inter-Local', sans-serif;
  font-size: clamp(36px, 10vw, 96px);
  font-weight: 900;
  line-height: 1.0;
  letter-spacing: -0.02em;
  padding-left: clamp(16px, 4.2vw, 100px);
  color: #fff;
  text-align: left;
  white-space: nowrap;
  opacity: 0;
  animation: slideInLeft 1s cubic-bezier(0.75, 1, 0.5, 1) forwards;
}

/* 日本語サブタイトル */
.hero-subtitle {
  font-size: clamp(14px, 4vw, 40px);
  margin-top: 16px;
  padding-left: clamp(16px, 4.2vw, 100px);
  color: #fff;
  text-align: left;
  opacity: 0;
  animation: fadeIn 2s ease 0.8s forwards;
}

/* ============================================
   アニメーションの動き定義 (@keyframes)
  ========================================== */

/* 左からスライドインする動き */
@keyframes slideInLeft {
  0% {
    opacity: 0;
    transform: translateX(-80px);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

/* フェードインする動き */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

/* ============================================
   お知らせセクション（News Section）
   ========================================== */

.news-section {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 120px 0;
  box-sizing: border-box;
}

/* タイトルエリア内の縦整列 */
.section-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 0;
}

/* 日本語タイトル */
.section-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  font-size: 56px;
  color: #1C236D;
  line-height: 1;
  margin: 0;
}

/* アンダーバー */
.title-underline {
  width: 100%;
  max-width: 1240px;
  height: 1px;
  background-color: #1C236D;
  margin-top: 10px;
}

/* 英語表記タイトル */
.section-subtitle {
  font-family: 'Inter', sans-serif;
  font-weight: 300;
  font-size: 16px;
  color: #1C236D;
  line-height: 1;
  margin-top: 10px;
  margin-bottom: 0;
}

/* お知らせエリア */
.news-section .content-container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

/* お知らせリスト */
.news-list {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 700px;
  display: flex;
  flex-direction: column;
  gap: 25px;
  align-items: flex-start;
}

.news-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  width: 100%;
}

/* 日付 */
.news-date {
  font-size: 16px;
  font-weight: 600;
  color: #292929;
  width: 130px;
  white-space: nowrap;
}

/* 本文テキスト */
.news-text {
  font-size: 16px;
  font-weight: normal;
  color: #292929;
  margin: 0;
  line-height: 1.6;
}

/* ==========================================
   事業セクション（Service Section）
   ========================================== */

/* カードの縦並び配置 */
.service-grid {
  width: 100%;
  max-width: 700px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin: 0 auto;
}

/* 基本構造（写真左・内容右） */
.service-card {
  width: 100%;
  display: flex;
  align-items: stretch;
  overflow: hidden;
}

/* 互い違い構造（内容左・写真右） */
.service-card-reverse {
  flex-direction: row-reverse;
}

/* 写真サイズ：横350px × 縦272px */
.service-image {
  width: 350px;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
}

.service-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* テキストエリア */
.service-content {
  width: 350px;
  background-color: #F8F8FA;
  box-sizing: border-box;
  padding: 25px 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 25px;
  text-align: center;
}

/* 見出し */
.service-title {
  font-weight: 700;
  font-size: 32px;
  line-height: 32px;
  color: #292929;
  margin: 0;
  padding: 0;
}

/* 説明文 */
.service-description {
  font-weight: 400;
  color: #292929;
  line-height: 1.8;
  margin: 0;
}

/* リンクボタン (VIEW MORE) */
.service-link {
  width: auto;
  max-width: 300px;
  height: auto;
  min-height: 50px;
  background-color: rgba(255, 255, 255, 0.46);
  backdrop-filter: blur(80px);
  -webkit-backdrop-filter: blur(80px);
  border: 0.5px solid #979797;
  border-radius: 4px;
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  font-size: 20px;
  color: #292929;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12.5px 25px;
  box-sizing: border-box;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.service-link span {
  display: block;
  line-height: 1;
}

.service-arrow {
  width: 60px;
  height: auto;
  display: block;
}

.service-link:hover {
  transform: translateY(4px);
  box-shadow: none;
  background-color: rgba(255, 255, 255, 0.65);
}

/* ==========================================
   採用情報セクション（Recruit Section）
 ========================================== */

.recruit-section {
  position: relative;
  width: 100%;
  min-height: 519px;
  padding-top: 120px;
  padding-bottom: 120px;
  box-sizing: border-box;
  overflow: hidden;
}

/* ★背景画像 */
.recruit-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../images/top/recruit-bg.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0.1;
  z-index: 1;
}

/* ★文字やコンテンツを前に出す記述 */
.recruit-section .section-container,
.recruit-section .content-container {
  position: relative;
  z-index: 2;
}

.recruit-section .content-container {
  width: 700px;
  margin: 0 auto;
}

/* 説明テキスト */
.recruit-text {
  font-size: 16px;
  font-weight: 400;
  color: #292929;
  text-align: center;
  margin: 0 0 25px 0;
  line-height: 1.2;
}

/* 採用バナー全体（700px × 89px / オレンジ色） */
.recruit-banner {
  width: 700px;
  height: 89px;
  background-color: #D95A16;
  margin: 0 auto;
  border-radius: 4px;
  box-sizing: border-box;
  padding: 10px 25px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

/* バナー内の文字 */
.recruit-banner-title {
  color: #ffffff;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

/* 2026年度（サイズ16 / レギュラー / 白） */
.recruit-banner-title .year {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
}

/* 採用特設サイト（サイズ32 / ボールド / 白） */
.recruit-banner-title .main-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
}

.recruit-arrow {
  width: 90px;
  height: auto;
  display: block;
}

/* ★ホバー時：下に4px押し込まれて影が隠れるアニメーション */
.recruit-banner:hover {
  transform: translateY(4px);
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}


/* ==========================================
   【ABOUT】  代表挨拶セクション 
 ========================================== */

#message.about-message-section {
  width: 100%;
  box-sizing: border-box;
}

#message .about-message-inner {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 100px;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  gap: 25px;
  align-items: flex-start;
}

/* 左側：メッセージ本文領域（幅541px × 高さ486px） */
#message .about-message-body {
  width: 541px;
  flex-shrink: 0;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
}

/* 本文テキストグループ */
#message .about-message-text-group {
  font-size: 16px;
  line-height: 1.8;
  color: #292929;
}

#message .about-message-text-group p {
  margin: 0 0 1em 0;
}

/* コーポレートスローガン */
#message .about-message-slogan {
  color: #E5A629;
  font-weight: 400;
  margin-top: 1em;
  margin-bottom: 1em;
}

/* 代表署名部分 */
#message .about-message-sign {
  font-family: 'Noto Sans JP', sans-serif;
  color: #292929;
  text-align: right;
}

#message .about-message-role {
  font-size: 12px;
  margin: 0;
  line-height: 1;
}

#message .about-message-name {
  font-size: 20px;
  font-weight: 400;
}

/* 就活生向けリンク */
.about-message-recruit {
  display: block;
  margin-top: 12px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: #D95A16;
}

.about-message-recruit:hover {
  opacity: 0.7;
}

/* 右側：代表写真（396px × 486px） */
#message .about-message-image {
  width: 100%;
  max-width: clamp(348px, 50vw, 396px);
  flex-shrink: 0;
}

#message .about-message-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

#message .about-message-image .img-sp {
  display: none;
}

#message .about-message-image .img-pc {
  display: block;
  height: 486px;
}

/* ===========================================
   企業理念セクション (#philosophy)
  ========================================== */

.about-philosophy-section {
  width: 100%;
  min-height: 611px;
  margin-left: auto;
  margin-right: auto;
  background-color: #F8F8FA;
  box-sizing: border-box;
}

/* 下部コンテンツコンテナ（左右配置） */
#philosophy .content-container {
  width: 1038px;
  height: 225px;
  padding-left: 0;
  padding-right: 0;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  align-items: center;
  gap: 40px;
}

/* 左側：スローガンボックス (448px * 104px) */
.about-philosophy-slogan-box {
  width: 448px;
  height: 104px;
  text-align: left;
  flex-shrink: 0;
}

/* 英語スローガン */
.about-philosophy-slogan-en {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 800;
  font-size: 48px;
  color: #D95A16;
  line-height: 1.0;
  margin: 0;
}

/* 日本語スローガン*/
.about-philosophy-slogan-jp {
  font-family: 'Zen Old Mincho', serif;
  font-weight: 400;
  font-size: 32px;
  color: #D95A16;
  line-height: 1.2;
  margin: 8px 0 0 0;
}

/* 右側：リスト枠 (550px * 225px) */
.about-philosophy-list {
  width: 550px;
  height: 225px;
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex-shrink: 0;
}

/* 各リストアイテム（数字とテキストの横並び） */
.about-philosophy-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

/* 番号 と　テキスト */
.about-philosophy-num,
.about-philosophy-text {
  font-family: 'Zen Old Mincho', serif;
  font-size: 24px;
  font-weight: 200;
  line-height: 1.4;
  color: #292929;
  flex-shrink: 0;
}

/* ===========================================
   沿革セクション (#history)
 -========================================== */

.about-history-section {
  width: 100%;
  max-width: 1240px;
  height: auto;
  min-height: 1131.31px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* History */
.history-section .section-container {
  margin-bottom: 40px;
}

/* カードエリアを包むコンテナ (1240px * 676px) */
.about-history-wrapper {
  width: 100%;
  max-width: 1240px;
  height: 676px;
  box-sizing: border-box;
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 55px;
  overflow: hidden;
}

/* スクロールするタイムライン枠 */
.about-history-timeline {
  display: flex;
  gap: 12.5px;
  height: 676px;
  align-items: flex-start;
  overflow-x: auto;
  cursor: grab;
  user-select: none;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.about-history-timeline::-webkit-scrollbar {
  display: none;
}

.about-history-timeline:active {
  cursor: grabbing;
}

/* 各カード (400px * 627px) */
.about-history-item {
  width: 400px;
  height: 627px;
  padding: 25px;
  box-sizing: border-box;
  background-color: #E9E9F1;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}

/* 年号エリア */
.about-history-year-box {
  width: 350px;
  height: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  text-align: left;
  margin-bottom: 25px;
}

/* 西暦 */
.about-history-year {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 32px;
  color: #292929;
  line-height: 1.5;
}

/* 和暦 */
.about-history-era {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: #8E8E93;
  line-height: 1;
}

/* 写真エリア */
.about-history-image {
  width: 350px;
  height: 208px;
  margin-bottom: 25px;
  overflow: hidden;
}

.about-history-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* タイトルエリア */
.about-history-title {
  width: 350px;
  height: 64px;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;

  font-size: 24px;
  color: #292929;
  line-height: 1.33;
  margin: 0 0 25px 0;
  display: flex;
  align-items: center;
}

/* 本文テキストエリア */
.about-history-text {
  width: 350px;
  height: 200px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: #292929;
  line-height: 1.75;
  margin: 0;
  overflow: hidden;
}

.about-history-text p {
  margin: 0 0 1em 0;
}

.about-history-text p:last-child {
  margin-bottom: 0;
}

/* ===========================================
   操作用バーエリア (1240px * 44.31px)
  ========================================== */

.about-history-controls {
  position: relative;
  width: 100%;
  height: 44.31px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.about-history-track {
  position: relative;
  width: 1140px;
  height: 44.31px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* 串刺しの横線 */
.about-history-bar {
  position: absolute;
  width: 100vw;
  height: 2px;
  background-color: #D95A16;
  z-index: 1;
  pointer-events: none;
}

/* 操作用つまみ */
.about-history-thumb {
  position: absolute;
  left: 0;
  width: 44.31px;
  height: 44.31px;
  background-color: #D95A16;
  border-radius: 50%;
  z-index: 2;
  transform: translateX(-50%);
  cursor: grab;
  transition: transform 0.1s ease-out;
  touch-action: none;
}

.about-history-thumb:active {
  cursor: grabbing;
  transform: translateX(-50%) scale(1.1);
}

/* ===========================================
 【WORKS】　施工実績セクション (土木部・建築部 共通)
 ========================================== */

.works-section {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* スライドの表示枠 */
.works-container {
  width: 1240px;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

/* 横につなる帯（スライド移動する部分） */
.works-card-wrapper {
  display: flex;
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

/* 1ページ分 (3枚セットのブロック) */
.works-page {
  display: flex;
  width: 1240px;
  flex-shrink: 0;
  gap: 25px;
}

/* 1つのカードサイズ */
.works-card {
  width: 396.67px;
  display: flex;
  flex-direction: column;
}

/* 画像サイズ */
.works-card__img {
  width: 396.67px;
  height: 264.83px;
  overflow: hidden;
  flex-shrink: 0;
}

.works-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.works-card__tag-box {
  display: flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  margin-top: 25px;
}

.works-card__tag {
  width: 62px;
  height: 20px;
  border-radius: 2px;
  background-color: #1C98A6;
  color: #FFFFFF;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.works-card-tag-award {
  width: 98px;
  height: 20px;
  border-radius: 2px;
  background-color: #E5A629;
  color: #FFFFFF;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* テキストとボタンを包む箱 */
.works-card__content {
  width: 396.67px;
  display: flex;
  flex-direction: column;
  margin: 12.5px 0;
}

/* 文字が入る箱と下余白12.5px */
.works-card__text-box {
  width: 396.67px;
  margin-bottom: 12.5px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.works-card__title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  font-size: 24px;
  color: #292929;
  line-height: 1.3;
  margin: 0;
}

/* ボタンが入る箱 (センター寄せ) */
.works-card__btn-box {
  width: 396.67px;
  height: 29px;
  display: flex;
  justify-content: center;
}

/* 詳しく見るボタン */
.works-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 154.4px;
  height: 29px;
  border: 1px solid #1C236D;
  border-radius: 2px;
  color: #1C236D;
  font-size: 14px;
  text-decoration: none;
  background-color: transparent;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

.works-card__btn::after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='8' viewBox='0 0 30 8'%3E%3Cpath d='M0 4H28M25 1L28 4L25 7' stroke='currentColor' stroke-width='1' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-left: 16px;
  vertical-align: middle;
}

/* ホバー時: 色反転 */
.works-card__btn:hover {
  background-color: #1C236D;
  color: #ffffff;
}

/* ==========================================
         ページネーション (1 2 3)
 ========================================== */
.works-pagination {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 40px;
}

/* 選択していない時（枠線のみ） */
.works-page-num {
  width: 30px;
  height: 30px;
  border-radius: 4px;
  border: 1px solid #1C236D;
  background-color: transparent;
  color: #1C236D;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

/* 選択している時（ベタ塗り・白文字） */
.works-page-num.active {
  background-color: #1C236D;
  color: #ffffff;
  border: 1px solid #1C236D;
}

/* 「...」省略記号の表示調整 */
.works-page-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 30px;
  color: #1C236D;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 14px;
}

/* ==========================================
          施工実績 詳細ページ Layout
 ========================================== */

.breadcrumb-item+.breadcrumb-item::before {
  content: " > ";
  padding: 0 9px;
}

/* 全体枠 */
.works-detail-outer {
  width: 1240px;
  height: 926px;
  margin: 0 auto;
  padding: 120px 0;
  box-sizing: border-box;
}

/* メインコンテンツ箱 */
.works-detail-inner {
  width: 1240px;
  height: auto;
  padding: 0 100px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* --- 左側：サブ写真ブロック --- */
.works-detail-media {
  width: 684px;
  height: auto;
  display: flex;
  flex-direction: column;
}

/* メイン写真 (684 * 464) */
.works-detail-main-img {
  width: 684px;
  height: 464px;
  margin: 0 auto;
  margin-bottom: 25px;
  overflow: hidden;
  background-color: #f5f5f5;
}

.works-detail-main-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/*  下段エリア（サブ写真 と テキストエリア を横並びにする） --- */
.works-caption-area {
  width: 684px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.works-detail-sub-img-box {
  width: 299px;
  height: 137px;
  box-sizing: border-box;
  display: flex;
  gap: 25px;
}

/* サブ写真 (108 * 108) */
.works-detail-sub-img {
  width: 137px;
  height: 137px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  overflow: hidden;
  background-color: #f5f5f5;
  box-sizing: border-box;
}

.works-detail-sub-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --- 右側：テキストエリア (360 * 108) --- */
.works-detail-info {
  width: 385px;
  height: 137px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  box-sizing: border-box;
}

.works-detail-tag-box {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  height: 21px;
  margin-bottom: 10px;
}

/* タグ */
.works-detail-tag {
  width: 62px;
  height: 21px;
  border-radius: 2px;
  background-color: #1C98A6;
  color: #FFFFFF;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.works-detail-tag-award {
  width: 104px;
  height: 21px;
  border-radius: 2px;
  background-color: #E5A629;
}

/* タイトル */
.works-detail-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  font-size: 24px;
  color: #292929;
  height: 29px;
  line-height: 29px;
  margin-bottom: 10px;
  line-height: 1;
}

.works-detail-award-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #D95A16;
  height: 19px;
  line-height: 19px;
  margin-bottom: 10px;
  text-align: right;
  min-height: 19px;
}

/* 発注者・施工場所 (NotoSansJP Regular 24) */
.works-detail-meta {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 12px;
  height: 14px;
  line-height: 14px;
  color: #8e8e93;
  margin-bottom: 10px;
  text-align: right;
}

.works-detail-meta:last-child {
  margin-bottom: 0;
}

/* --- ボタンエリア (1240 * 49 / 上40pxあけ) --- */
.works-detail-action {
  width: 1240px;
  height: 49px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 40px;
}

/* ボタン (300 * 49 / 半径4 / 色1C236D) */
.works-detail-back-btn {
  width: 300px;
  height: 49px;
  border-radius: 4px;
  background-color: #1C236D;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-sizing: border-box;
}

/* 棒の長さ60px */
.works-detail-back-icon {
  width: 60px;
  height: auto;
  margin-right: 12px;
}

/* BACK */
.works-detail-back-text-en {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 24px;
  color: #FFFFFF;
  margin-right: 12px;
}

/* 一覧へ戻る */
.works-detail-back-text-ja {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 350;
  font-size: 16px;
  color: #FFFFFF;
}

/* 画像拡大モーダル（全体背景）*/
.image-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* 表示時のクラス */
.image-modal.is-show {
  opacity: 1;
  pointer-events: auto;
}

/* モーダル枠（最大 808px * 549px） */
.modal-content-wrapper {
  position: relative;
  width: 100%;
  max-width: 808px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: scale(0.96);
  transition: transform 0.4s ease;
}

.image-modal.is-show .modal-content-wrapper {
  transform: scale(1);
}

/* 写真枠コンテナ */
.modal-img-container {
  position: relative;
  width: 100%;
  height: 500px;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.35);
}

/* 写真本体（フェードインアニメーション用） */
.modal-img-container img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
  opacity: 1;
  transform: scale(1);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

/* 写真切り替え時のフェードクラス */
.modal-img-container img.is-changing {
  opacity: 0;
  transform: scale(0.98);
}

/* 左右矢印 < >（記号自体が透過白 ＋ ドロップシャドウ） */
.modal-prev,
.modal-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.75);
  font-size: 48px;
  font-family: sans-serif;
  font-weight: 300;
  cursor: pointer;
  padding: 10px 20px;
  line-height: 1;
  filter: drop-shadow(0px 1px 4px rgba(0, 0, 0, 0.8));
  opacity: 0;
  transition: opacity 0.3s ease, color 0.2s ease, transform 0.2s ease;
  z-index: 10;
}

.modal-prev {
  left: 10px;
}

.modal-next {
  right: 10px;
}

/* 写真領域にカーソルが乗ったら矢印を表示 */
.modal-img-container:hover .modal-prev,
.modal-img-container:hover .modal-next {
  opacity: 1;
}

.modal-prev:hover,
.modal-next:hover {
  color: rgba(255, 255, 255, 0.98);
  transform: translateY(-50%) scale(1.1);
}

/* --- 写真の範囲外（下部フッター） --- */
.modal-footer {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
  padding: 0 4px;
  box-sizing: border-box;
}

/* 左下：Image 2 of 3 （透過白背景・角丸） */
.modal-counter {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  font-size: 13px;
  letter-spacing: 0.05em;
  padding: 6px 14px;
  border-radius: 20px;
  backdrop-filter: blur(4px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* 右下：×ボタン（透過白背景・角丸） */
.modal-close {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  color: #fff;
  font-size: 20px;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  border-radius: 50%;
  cursor: pointer;
  backdrop-filter: blur(4px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: background 0.2s ease, transform 0.2s ease;
  display: flex;
  justify-content: center;
  align-items: center;
}

.modal-close:hover {
  background: rgba(255, 255, 255, 0.35);
  transform: scale(1.08);
}

/* =======================================
        【What We Do】施工について
========================================== */

/* Service & Solution 下のテキストエリア */
.what-service-intro-container {
  max-width: 1240px;
  width: 100%;
  height: 56px;
  margin: 40px auto;
}

.what-service-intro-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  text-align: left;
  margin: 0;
}

.what-service-media-container {
  display: flex;
  gap: 40px;
  justify-content: center;
}

/* 各部署カード */
.what-service-card {
  position: relative;
  width: 100%;
  max-width: 600px;
  min-height: 407.2px;
  overflow: hidden;
}

/* 背景画像 */
.what-service-card-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

/* 中央配置用 */
.what-service-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(226, 225, 225, 0.85);
}

/* 写真中央のテキストエリア全体構造 */
.what-service-card-inner {
  width: 100%;
  max-width: 400px;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.what-service-card-header {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
}

/* タイトル「土木部」（96 * 38） */
.what-service-card-title {
  width: 96px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 32px;
  line-height: 1.18;
  color: #1C98A6;
  margin: 0;
  display: flex;
  align-items: flex-start;
}

/* サブリード */
.what-service-card-lead {
  width: 250px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 17px;
  color: #1C98A6;
  margin: 0;
  margin-left: 10px;
  letter-spacing: 0.04em;
}

/* 横線 */
.what-service-card-divider {
  width: 400px;
  height: 1px;
  background-color: #1C98A6;
  border-radius: 1px;
  margin-top: 20.5px;
  margin-bottom: 12.5px;
}

/* 下部テキストエリア */
.what-service-card-desc {
  width: 400px;
  height: 46px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 23px;
  color: #292929;
  margin: 0;
}

/* ==========================================
   グループ事業 (Ohyama Business)
========================================== */

.what-business-section {
  padding-top: 100px;
}

/* 会社ブロックごとの間隔（オオヤマホールディング と 大山石油 の間） */
.what-group-block {
  margin-bottom: 40px;
}

.what-group-block:last-child {
  margin-bottom: 0;
}

/* 会社名タイトル */
.what-group-company-name {
  max-width: 1240px;
  min-height: 29px;
  margin: 0 auto 40px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  font-size: 24px;
  line-height: 29px;
  color: #1C236D;
  text-align: center;
}

/* 1240*493の箱 */
.what-business-outer {
  max-width: 1240px;
  margin: 0 auto 40px;
  box-sizing: border-box;
}

/* 2つ横並びのレイアウト (GAP 40px) */
.what-business-grid {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin-bottom: 40px;
}

.what-business-grid:last-child {
  margin-bottom: 0;
}

/* センター寄せ用の指定（大山石油用） */
.what-business-grid--center {
  justify-content: center;
}

/* 各事業カード: 420*493 */
.what-business-item {
  width: 420px;
  height: auto;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

/* 写真およびタイトルを配置するエリア */
.what-business-media {
  position: relative;
  width: 420px;
  height: 300px;
  margin-bottom: 25px;
}

/* 正円の写真: 300*300 左右中央上寄せ */
.what-business-circle {
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border-radius: 50%;
  overflow: hidden;
}

.what-business-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 写真の左下に少し被るタイトルエリア: 165*60 */
.what-business-title-area {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 165px;
  height: 60px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  z-index: 2;
}

/* 「SERVICE01」*/
.what-business-service-num {
  display: inline-block;
  width: auto;
  height: auto;
  background-color: #ffffff;
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: 20px;
  line-height: 24px;
  color: #D9D9D9;
  padding: 2px 6px;
}

/* 「エネルギー事業」 */
.what-business-service-title {
  display: inline-block;
  width: auto;
  height: auto;
  background-color: #ffffff;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  font-size: 20px;
  line-height: 29px;
  color: #292929;
  margin: 0;
  padding: 2px 6px;
}

/* 写真の下のテキストエリア */
.what-business-info {
  width: 420px;
  height: auto;
}

.what-business-desc {
  width: 420px;
  height: auto;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  /* Regular */
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  margin: 0;
}

/* ==========================================
      社会貢献への取り組み (CSR)
   ========================================== */

/* BCP認定カード */
.what-bcp-card {
  width: 100%;
  height: 382px;
  margin: 0 auto 40px;
  background-color: #F8F8FA;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
  box-sizing: border-box;
}

/* 内部コンテンツエリア */
.what-bcp-inner {
  max-width: 1240px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
  box-sizing: border-box;
}

.what-bcp-img-box {
  width: 202px;
  height: auto;
  flex-shrink: 0;
}

.what-bcp-img-box img {
  width: 100%;
  height: 100%;
  box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.25);
  object-fit: contain;
}

.what-bcp-text-box {
  width: 415px;
  height: 90.5px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  text-align: left;
}

.what-bcp-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  color: #292929;
  margin: 0 0 15px 0;
}

.what-bcp-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 19.5px;
  color: #292929;
  margin: 0;
}

/* ACTIONカード (2つ横並びのレイアウト) */
.what-action-container {
  max-width: 1240px;
  width: 100%;
  margin: 40px auto 0;
  box-sizing: border-box;
}

.what-action-grid {
  display: flex;
  gap: 40px;
  width: 100%;
  height: 100%;
}

.what-action-card {
  width: 600px;
  display: flex;
  flex-direction: column;
}

/* 画像＋被せラベルエリア */
.what-action-media {
  position: relative;
  width: 600px;
  height: 375px;
  font-style: 0;
  overflow: hidden;
  margin-bottom: 20px;
}

.what-action-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 被せラベル */
.what-action-label-area {
  position: absolute;
  left: 0;
  bottom: 30px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.what-action-num {
  display: inline-block;
  background-color: #ffffff;
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: 20px;
  line-height: 1;
  color: #d9d9d9;
  padding: 2px 6px;
  margin-bottom: 5px;
}

/* 活動名タイトル */
.what-action-title {
  display: inline-block;
  background-color: #ffffff;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  font-size: 20px;
  line-height: 1.1;
  color: #292929;
  margin: 0;
  padding: 2px 6px;
}

/* 下部テキスト＆ボタンエリア */
.what-action-body {
  display: flex;
  flex-direction: column;
  margin-top: 25px;
}

/* テキストエリア */
.what-action-desc {
  width: 600px;
  height: 56px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  margin: 0;
  overflow: hidden;
}

/* VIEW MORE エリア（テキストの下25pxあける / 右寄せ） */
.what-action-btn-wrapper {
  margin-top: 25px;
  display: flex;
  justify-content: flex-end;
}

/* PDFリンクボタン */
.what-action-pdf-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.what-action-pdf-link:hover {
  transform: translateY(-5px);
  opacity: 0.7;
}

/* VIEW MORE (PDF) */
.what-action-pdf-text {
  font-family: 'Inter', sans-serif;
  font-weight: 200;
  font-size: 20px;
  color: #292929;
  margin-right: 10px;
}

/* 矢印アイコン (長さ30px) */
.what-action-pdf-icon {
  width: 30px;
  height: auto;
  display: block;
}

/*==========================================
          会社概要セクション
========================================== */

#overview.company-section {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  box-sizing: border-box;
}

#overview .content-container {
  width: 100%;
  max-width: 1240px;
  box-sizing: border-box;
  margin-top: 40px;
  margin-left: auto;
  margin-right: auto;
}

/* 横並びコンテナ */
.company-overview-content {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
  gap: 25px;
}

/* 左：画像が入る箱  */
.company-overview-media {
  width: 100%;
  max-width: 674px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}

.company-overview-media img {
  width: 100%;
  max-width: 674px;
  height: auto;
  max-height: 450px;
  object-fit: cover;
  display: block;
}

/* 右：会社概要テーブルが入る箱 */
.company-overview-detail {
  width: 100%;
  max-width: 541px;
  flex: 1;
}

.company-info-table {
  width: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* 表の1行分 (上下中央寄せ ＋ 横棒) */
.info-row {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #E0E0E0;
  padding: 25px 0;
  box-sizing: border-box;
}

/* 一番下の行：下線（横棒）を完全に消す ＋ 下辺・上下中央寄せ */
.info-row:last-child {
  padding-bottom: 0;
  border-bottom: none;
  align-items: center;
}

/* 項目名  */
.info-row dt {
  width: 140px;
  flex-shrink: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #292929;
  line-height: 1.5;
  margin-left: 20px;
}

/* 内容 */
.info-row dd {
  margin: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #292929;
  line-height: 1.6;
}

/* ==========================================
    交通アクセスセクション全体（画面横いっぱい）
 ========================================== */

section#access.company-section {
  width: 100%;
  height: 836px;
  background-color: #F8F8FA;
  box-sizing: border-box;
}

/* 交通アクセス内のコンテンツ領域 */
section#access.company-section div.content-container {
  width: 100%;
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

/* マップを囲む領域 */
section#access.company-section div.content-container div.map-wrapper {
  width: 100%;
  height: 450px;
}

/* MAP（iframe）の設定 */
section#access.company-section div.content-container div.map-wrapper iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ==========================================
   企業グループ セクション全体
   ========================================== */

section#group.company-section {
  width: 100%;
  box-sizing: border-box;
}

/* ==========================================
   1. シームレススライダー領域
   ========================================== */

section#group.company-section div.company-slider-outer {
  width: 100%;
  height: 250px;
  margin-bottom: 40px;
  overflow: hidden;
  position: relative;
}

/* 横並びトラック */
section#group.company-section div.company-slider-track {
  display: flex;
  gap: 25px;
  width: max-content;
  animation: groupSeamlessScroll 35s linear infinite;
}

/* スライドアイテム（1枚あたり 341.25px * 250px） */
section#group.company-section div.company-slide-item {
  width: 341.25px;
  height: 250px;
  flex-shrink: 0;
  position: relative;
}

/* 写真画像 */
section#group.company-section div.company-slide-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 無限ループ用キーフレームアニメーション */
@keyframes groupSeamlessScroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(calc(-50% - 12.5px));
  }
}

/* ==========================================
   2. 下部の3つのカード領域
   ========================================== *

/* カードを3つ横並びにするコンテナ */
section#group.company-section div.group-cards-container {
  display: flex;
  justify-content: center;
  gap: 25px;
  width: 100%;
}

/* 各カード本体 */
section#group.company-section div.group-card,
section#group.company-section div.group-card-oil {
  width: 362px;
  height: 195px;
  background-color: #F8F8FA;
  padding: 25px;
  box-sizing: border-box;
  flex-shrink: 0;
}

section#group.company-section div.group-card.is-single-line h3.card-title {
  height: 60px;
  display: flex;
  align-items: center;
  margin-bottom: 25px;
}

/* カードタイトル */
section#group.company-section h3.card-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 24px;
  color: #292929;
  line-height: 1.25;
  margin: 0 0 25px 0;
}

/* テキストを入れる箱 */
section#group.company-section div.card-text-box {
  width: 256px;
  height: 48px;
}

/* テキスト内容 */
section#group.company-section p.card-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #292929;
  line-height: 1.4;
  margin: 0;
}

/* ==========================================
          営業所（Offices）セクション
   ========================================== */

section#offices.company-section {
  width: 100%;
  box-sizing: border-box;
}

/* 1240*126 の箱（親コンテナ） */
section#offices.company-section div.content-container {
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 0 40px;
}

/* 2つ横に並べるレイアウト */
section#offices.company-section div.office-grid {
  display: flex;
  justify-content: center;
  gap: 120px;
  width: 100%;
  height: 100%;
}

/* 個別カード*/
section#offices.company-section div.office-card {
  width: 100%;
  max-width: 278px;
  box-sizing: border-box;
  flex-shrink: 0;
}

/* 本社・支店名 */
section#offices.company-section h3.office-name {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 24px;
  color: #292929;
  line-height: 1.2;
  margin: 0 0 20px 0;
  padding: 0;
}

/* 住所 */
section#offices.company-section p.office-address {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #292929;
  line-height: 1.2;
  margin: 0 0 20px 0;
  padding: 0;
}

/* TEL / FAX */
section#offices.company-section p.office-tel {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #292929;
  line-height: 1.2;
  margin: 0;
  padding: 0;
}

/* ==========================================
   個人情報保護方針（Privacy Policy）セクション
   ========================================== */

section#privacy.company-section {
  width: 100%;
  background-color: #F8F8FA;
  box-sizing: border-box;
}

/* 全体エリア */
section#privacy.company-section div.content-container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* スクロール可能な領域 */
section#privacy.company-section div.privacy-scroll-box {
  width: 1230px;
  height: 250px;
  background-color: #FFFFFF;
  padding: 30px;
  box-sizing: border-box;
  overflow-y: auto;
}

/* =========================================
   スクロールバーのカスタマイズ（幅10px）
 ========================================== */

/* バー全体の幅 */
section#privacy.company-section div.privacy-scroll-box::-webkit-scrollbar {
  width: 10px;
}

/* レール部分（背景） */
section#privacy.company-section div.privacy-scroll-box::-webkit-scrollbar-track {
  background-color: #F0F0F3;
  border-radius: 5px;
}

/* つまみ部分 */
section#privacy.company-section div.privacy-scroll-box::-webkit-scrollbar-thumb {
  background-color: #C2C2C7;
  border-radius: 5px;
}

/* つまみホバー時 */
section#privacy.company-section div.privacy-scroll-box::-webkit-scrollbar-thumb:hover {
  background-color: #8E8E93;
}

/* ========================================
   スクロールボックス内のテキスト装飾
 ========================================== */

/* 冒頭リード文 */
section#privacy.company-section p.privacy-lead {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  text-align: left;
  margin: 0 0 30px 0;
  padding: 0;
}

/* 各項目の見出し */
section#privacy.company-section h4.privacy-term-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #8E8E93;
  margin: 0 0 10px 0;
  padding: 0;
  line-height: 1.4;
}

/* 各項目の説明文 */
section#privacy.company-section p.privacy-term-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: #292929;
  margin: 0 0 20px 0;
  padding: 0;
  line-height: 1.6;
}

/* リスト（ol）全体のスタイル */
section#privacy.company-section ol.privacy-term-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: #292929;
  margin: 0 0 20px 0;
  padding-left: 1.5em; /* 番号が入る分のインデントを調整 */
  line-height: 1.6;
  list-style-type: decimal;
}

/* リストの各項目（li）の間隔 */
section#privacy.company-section ol.privacy-term-text li {
  margin-bottom: 10px; /* 項目ごとの余白（必要に応じて調整） */
}

/* リストの最後の項目の下余白をリセット */
section#privacy.company-section ol.privacy-term-text li:last-child {
  margin-bottom: 0;
}

/* 最後の要素の下余白をリセット */
section#privacy.company-section p.privacy-term-text:last-child {
  margin-bottom: 0;
}

/* ==========================================
   お問い合わせセクション全体
   ========================================== */

.contact-section {
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
}

/* 1. ステップナビゲーション */
.contact-section .form-steps-container {
  width: 100%;
  max-width: 840px;
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 auto 40px;
}

.contact-section .step-labels {
  width: 100%;
  height: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.contact-section .step-label {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 24px;
  color: #D9D9D9;
}

.contact-section .step-label:nth-child(1) {
  width: 371px;
  text-align: left;
}

.contact-section .step-label:nth-child(2) {
  width: 110px;
  text-align: center;
}

.contact-section .step-label:nth-child(3) {
  width: 359px;
  text-align: right;
}

.contact-section .step-label.is-active {
  color: #D95A16;
}

.contact-section .step-graphics {
  width: 100%;
  height: 42.35px;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.contact-section .step-line {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 95%;
  height: 5px;
  background-color: #D9D9D9;
  z-index: 1;
}

.contact-section .step-circle {
  width: 41.35px;
  height: 41.35px;
  background-color: #D9D9D9;
  border-radius: 50%;
  position: relative;
  z-index: 2;
}

.contact-section .step-circle.is-active {
  background-color: #D95A16;
}

/* 2. 案内テキストエリア (横全幅背景 #F8F8FA) */
.contact-lead-wrapper {
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  background-color: #F8F8FA;
  padding: 40px 20px;
  margin-bottom: 60px;
  box-sizing: border-box;
}

.contact-lead-inner {
  max-width: 1160px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.contact-lead-main {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 24px;
  line-height: 1.5;
  color: #292929;
  margin: 0 0 20px 0;
  text-align: center;
}

.contact-lead-notes {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lead-note-1 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  color: #292929;
  margin: 0 0 4px 0;
}

.lead-note-2 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 1.5;
  color: #292929;
  margin: 0;
}

/* 3. フォーム本体 */
.contact-form {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto 80px;
  box-sizing: border-box;
}

.form-grid {
  width: 100%;
  margin: 0 auto 40px;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 各行 */
.form-row {
  width: 100%;
  max-width: 740px;
  display: flex;
  align-items: center;
  margin-bottom: 15px;
}

.form-row.form-row--textarea {
  align-items: flex-start;
}

/* 設問部分（220 * 39 / 右側に20pxの空き） */
.form-label {
  width: 220px;
  height: 39px;
  margin: 0 20px 0 0;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

/* 内包エリア（180 * 19 / 両端揃え） */
.form-label>label {
  width: 180px;
  height: 19px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 19px;
  color: #292929;
  cursor: pointer;
}

/* 必須バッジ */
.required-badge {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 25px;
  height: 11px;
  background-color: #1C98A6;
  color: #FFFFFF;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 10px;
  border-radius: 999px;
  padding: px;
  line-height: 1;
  flex-shrink: 0;

}

/* 入力欄エリア */
.form-input-wrap {
  width: 500px;
  margin-left: 0;
}

/* 入力欄本体 */
.form-input {
  width: 100%;
  height: 39px;
  background-color: #FFFFFF;
  border: 0.5px solid #8E8E93;
  border-radius: 6px;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
  padding: 0 20px;
  line-height: 39px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  color: #292929;
  box-sizing: border-box;
  outline: none;
}

/* テキストエリア */
.form-textarea {
  width: 100%;
  height: 120px;
  background-color: #FFFFFF;
  border: 0.5px solid #8E8E93;
  border-radius: 6px;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
  padding: 10px 20px;
  line-height: 1.5;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  color: #292929;
  box-sizing: border-box;
  outline: none;
  resize: vertical;
}

/* プレースホルダー */
.form-input::placeholder,
.form-textarea::placeholder {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 100;
  font-size: 14px;
  color: #8E8E93;
  opacity: 1;
}

.form-note {
  font-size: 12px;
  margin-top: 5px;
}

/* ==========================================
   個人情報同意エリア（丸の色変化・チェック常時表示版）
   ========================================== */

.privacy-consent {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 15px;
}

.consent-checkbox-label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  user-select: none;
}

/* デフォルトのチェックボックスを非表示 */
.consent-checkbox {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

/* 丸型背景 */
.checkbox-custom {
  width: 18px;
  height: 18px;
  background-color: #8E8E93;
  border-radius: 50%;
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  margin-right: 10px;
  box-sizing: border-box;
  transition: background-color 0.2s ease;
}

/* 白抜きチェックマーク（最初から常に表示） */
.checkbox-custom::after {
  content: "";
  position: absolute;
  opacity: 1;
  top: 44%;
  left: 50%;
  width: 6px;
  height: 9px;
  border: solid #FFFFFF;
  border-width: 0 1.5px 1.5px 0;
  transform: translate(-50%, -50%) rotate(45deg);
  box-sizing: border-box;
}

/* ホバー時の処理 */
.consent-checkbox-label:hover .checkbox-custom {
  opacity: 0.7;
  transition: opacity 0.2s ease, background-color 0.2s ease;
}

/* チェックが入った時：背景の丸をオレンジ(#D95A16)に変更 */
.consent-checkbox:checked+.checkbox-custom {
  background-color: #D95A16;

}

/* エラーメッセージ（赤字・12px） */
.error-msg {
  display: block;
  color: #E63946;
  font-size: 12px;
  margin-top: 6px;
  font-family: 'Noto Sans JP', sans-serif;
}

/* テキスト：「に同意する」 */
.consent-text {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 18px;
  color: #292929;
}

/* リンク：「個人情報保護方針」 */
.privacy-link {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 12px;
  color: #8E8E93;
  text-decoration: underline;
}

/* 「個人情報保護方針」にカーソルを載せたときの変化 */
.privacy-link:hover {
  color: #D95A16;
  text-decoration: none;
  transition: 0.3s;
}



/* ==========================================
   送信ボタンエリア
   ========================================== */

.form-submit-wrap {
  width: 100%;
  text-align: center;
  margin-top: 15px;
}

/* ボタン本体（初期状態：無効） */
.submit-btn {
  width: 740px;
  height: 79px;
  padding: 25px 30px;
  background-color: #D95A16;
  opacity: 0.2;
  border: none;
  border-radius: 2px;
  box-sizing: border-box;
  cursor: not-allowed;
  color: #FFFFFF;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1;
  text-align: center;
  transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
}

/* ★入力完了で有効（is-active）になった時のスタイル */
.submit-btn.is-active {
  opacity: 1;
  cursor: pointer;
}

/* 有効時のみホバー演出（px浮き上がる）を適用 */
.submit-btn.is-active:hover {
  transform: translateY(-2px);
  opacity: 0.9;
  box-shadow: 0 6px 12px rgba(217, 90, 22, 0.3);
}

.submit-btn.is-active:active {
  transform: translateY(-0.5px);
}

/* ==========================================
   確認画面（confirm.html）スタイル調整
   ========================================== */

/* 1. ラベル領域の幅と両端揃え（左：テキスト / 右：必須バッジ） */
.contact-form .form-grid .form-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 220px;
  flex-shrink: 0;
}

/* 2. 入力値の表示エリア調整 */
.contact-form .form-grid .confirm-value {
  flex: 1;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #292929;
  line-height: 1.6;
  padding-left: 20px;
  word-break: break-word;
}

/* 3. お問い合わせ内容（改行をそのまま反映） */
.contact-form .form-grid .confirm-value--textarea {
  white-space: pre-wrap;
}

/* 4. 案内テキスト */
.confirm-lead {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #292929;
  line-height: 1.8;
}

.confirm-note {
  font-size: 12px;
  color: #8E8E93;
  display: inline-block;
  margin-top: 8px;
}

/* ==========================================
   送信完了画面（contact-thanks.html）メッセージ領域
   ========================================== */

/* ステップナビ下の余白 40px */
.thanks-lead-wrapper {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

/* 1240 × 171 の外枠 */
.thanks-box {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 40px 20px;
  background-color: #FFFFFF;
  box-sizing: border-box;
  text-align: center;
}

/* 1040 × 34 のタイトル領域 */
.thanks-title-wrap {
  margin-bottom: 0 auto 15px auto;
  text-align: center;
}

/* タイトルテキスト */
.thanks-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 100;
  font-size: 36px;
  line-height: 34px;
  color: #D95A16;
  margin: 0 auto;
  margin-bottom: 15px;
}

/* 1040 × 42 の注記テキスト領域 */
.thanks-notes {
  width: 100%;
  max-width: 1040px;
  min-height: 42px;
  margin: 0 auto;
  text-align: center;
}

/* 注記1行目 */
.thanks-note-1 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  margin: 0;
  display: inline-block;
  text-align: center;
}

/* 注記2行目 */
.thanks-note-2 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
  color: #292929;
  margin: 0;
}

/* 送信完了ページのボタン配置エリア */
.thanks-btn-wrap {
  margin-top: 40px;
  text-align: center;
}

/* トップ戻りボタン */
.btn-back-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 240px;
  height: 52px;
  background-color: #D95A16;
  color: #FFFFFF;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 15px;
  text-decoration: none;
  border-radius: 4px;
  transition: opacity 0.3s ease;
}

.btn-back-top:hover {
  opacity: 0.85;
}


/* ==========================================
   採用MV（Recruit Hero Section）
   ========================================== */

/* 全体枠 */
.recruit-hero {
  width: 100%;
  min-height: 935px;
  background-image: url(../images/recruit/01MV.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

/* インナー枠 */
.recruit-hero-inner {
  width: 100%;
  max-width: 1240px;
  min-height: 935px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
}

/* タイピング文字エリア */
.typewriter-container {
  width: 100%;
  max-width: 1240px;
  margin-bottom: 30px;
}

.typewriter-text {
  font-family: 'Noto Serif JP', serif;
  font-size: 64px;
  line-height: 85px;
  color: #1C236D;
  font-weight: 700;
}

/* ENTRYボタン枠 */
.btn-entry {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 387px;
  height: 59px;
  background-color: #D95A16;
  text-decoration: none;
  box-sizing: border-box;
  transition: opacity 0.3s ease;
  padding: 10px 25px;
}

.btn-entry:hover {
  opacity: 0.85;
}

/* 文字エリア */
.btn-entry-text {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: 32px;
  color: #ffffff;
  line-height: 1;
}

/* 矢印画像 */
.btn-entry-arrow {
  width: 90px;
  margin-left: 25px;
  display: block;
}

/* ==========================================
   採用コンセプト（Recruit Concept Section）
   ========================================== */

.recruit-concept-section {
  width: 100%;
  min-height: 868px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 120px;
  padding-bottom: 120px;
  background-color: #FCEFE8;
  box-sizing: border-box;
}

/* タイトルエリア */
.recruit-concept-header {
  width: 100%;
  max-width: 1240px;
  min-height: 140px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.recruit-concept-catch {
  color: #1C236D;
  margin: 0;
}

/* 上段 */
.recruit-concept-catch .catch-small {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
}

/* 下段 */
.recruit-concept-catch .catch-large {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 40px;
  line-height: 1.3;
}

/* 横棒 */
.recruit-concept-divider {
  width: 100%;
  max-width: 1240px;
  height: 1px;
  background-color: #1C236D;
  margin-top: 10px;
  margin-bottom: 10px;
  margin-left: auto;
  margin-right: auto;
}

/* 本文エリアの箱 */
.recruit-concept-body-wrap {
  width: 100%;
  max-width: 1240px;
  min-height: 448px;
  margin-top: 40px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.recruit-concept-body {
  text-align: center;
  color: #292929;
}

.recruit-concept-body p {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  margin-bottom: 28px;
}

.recruit-concept-body p:last-child {
  margin-bottom: 0;
}

/* ==========================================
   環境・福利厚生（Recruit Environment Section）
   ========================================== */

/* 日本語版サブタイトル */
.section-subtitle-jp {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #1C236D;
  text-align: left;
  margin-top: 10px;
}

/* カードエリア外枠 */
.env-content-container {
  width: 100%;
  max-width: 1240px;
  min-height: 454.25px;
  margin-top: 40px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* 605pxのカードを2つ並べるラック */
.env-card-wrapper {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  width: 100%;
}

/* 605 * 454.25 カード本体 */
.env-card {
  width: 605px;
  min-height: 454.25px;
  background-color: #ffffff;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.25);
  box-sizing: border-box;
  padding: 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 画像保持枠 */
.env-card-img-wrap {
  width: 209px;
  height: 158px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 40px;
}

.env-card-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* 見出し */
.env-card-title {
  width: 555px;
  min-height: 30px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 30px;
  color: #292929;
  text-align: center;
  margin: 0 0 25px 0;
}

/* 説明文 */
.env-card-desc {
  width: 555px;
  min-height: 49px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 24.5px;
  color: #292929;
  text-align: center;
  margin: 0 0 25px 0;
}

/* リンクボタン */
.btn-env-more {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 555px;
  min-height: 77.25px;
  padding: 12px 25px;
  border: 1px solid #D95A16;
  border-radius: 4px;
  background-color: #ffffff;
  text-decoration: none;
  box-sizing: border-box;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

/* ボタン内サブテキスト */
.btn-env-sub {
  display: block;
  width: 504px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 13px;
  color: #D95A16;
  text-align: center;
  margin-bottom: 6px;
  transition: color 0.3s ease;
}

.btn-env-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  /* ExtraBold */
  font-size: 24px;
  color: #D95A16;
  line-height: 1;
  transition: color 0.3s ease, -webkit-text-stroke-color 0.3s ease;
  -webkit-text-stroke: 2px #D95A16;
  paint-order: stroke fill;
}

/* SVG矢印 */
.btn-env-arrow {
  margin-left: 10px;
  transition: transform 0.3s ease;
}

.btn-env-arrow path {
  transition: stroke 0.3s ease;
}

/* ==========================================
   ホバーアニメーション（反転 ＋ 矢印スライド）
   ========================================== */

.btn-env-more:hover {
  background-color: #D95A16;
}

.btn-env-more:hover .btn-env-sub,
.btn-env-more:hover .btn-env-main {
  color: #ffffff;
  -webkit-text-stroke-color: #ffffff;
}

.btn-env-more:hover .btn-env-arrow path {
  stroke: #ffffff;
}

.btn-env-more:hover .btn-env-arrow {
  transform: translateX(6px);
}

/* ==========================================
      【RECRUIT】ヒーローエリア 共通化
 ========================================== */

.entry-hero,
.interview-hero,
.application-hero {
  width: 100%;
  height: 503px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  position: relative;
}

.entry-hero .page-hero-content,
.interview-hero .page-hero-content,
.application-hero .page-hero-content {
  position: absolute;
  max-width: 1240px;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: flex-end;
  box-sizing: border-box;
  bottom: 0;
  left: 0;
  right: 0;
}

/* ヒーロー内インナー */
.entry-hero .entry-hero-inner,
.interview-hero .interview-hero-inner,
.application-hero .application-hero-inner {
  display: flex;
  align-items: flex-end;
  gap: 40px;
  padding: 0 0 25px 0;
  width: 100%;
  box-sizing: border-box;
}

/* 英語タイトル（タイピング演出）共通 */
.entry-hero-title-en,
.interview-hero-title-en,
.application-hero-title-en {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: 96px;
  line-height: 1;
  margin: 0 0 15px 0;
  paint-order: stroke fill;
  -webkit-text-stroke: 5.5px #FFFFFF;
  display: inline-block;
  min-height: 96px;
  max-width: 100%;
}

/* 点滅カーソル共通 */
.entry-hero-title-en.is-typing::after,
.interview-hero-title-en.is-typing::after,
.application-hero-title-en.is-typing::after {
  content: '';
  display: inline-block;
  width: 3px;
  height: 0.9em;
  background-color: #FFFFFF;
  margin-left: 6px;
  vertical-align: bottom;
  animation: blink-caret 0.75s infinite;
}

/* 日本語タイトル共通 */
.entry-hero-title-jp,
.interview-hero-title-jp,
.application-hero-title-jp {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 24px;
  color: #FFFFFF;
  line-height: 1;
  margin: 0 0 25px 0;
  white-space: nowrap;
}

/* 各ページの固有カラー */
.entry-hero,
.entry-hero-title-en {
  background-color: #D95A16;
  color: #D95A16;
}

.interview-hero,
.interview-hero-title-en {
  background-color: #E5A629;
  color: #E5A629;
}

.application-hero,
.application-hero-title-en {
  background-color: #1C98A6;
  color: #1C98A6;
}

/* カーソル点滅アニメーション */
@keyframes blink-caret {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }
}

/* 全幅背景 */
.recruit-interview-section {
  width: 100%;
  background-color: #F8F8FA;
  padding-top: 120px;
  padding-bottom: 120px;
  box-sizing: border-box;
}

.recruit-interview-section.is-custom-interview {
  background-color: #ffffff;
}

/* ヘッダー枠 */
.recruit-interview-header {
  width: 100%;
  max-width: 1240px;
  min-height: 143px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  text-align: left;
}

/* タイトル */
.recruit-interview-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  font-size: 56px;
  color: #1C236D;
  margin: 0;
  line-height: 1.2;
}

.recruit-interview-sub {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #1C236D;
  margin: 0;
  text-align: left;
  margin-top: 10px;
}

/* コンテンツ枠　*/
.recruit-interview-content {
  width: 100%;
  max-width: 1240px;
  min-height: 440px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* 2×2（4名分）を並べるグリッド*/
.recruit-interview-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  max-width: 1240px;
  width: 100%;
  margin: 40px auto 0;
}

/* 1人分カード枠（600 * 200） */
.interview-card {
  width: calc(50% - 20px);
  min-height: 200px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  text-decoration: none;
  box-sizing: border-box;
}

/* 正円画像枠（200 * 200） */
.interview-thumb {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.interview-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.interview-card:hover .interview-thumb img {
  transform: scale(1.15);
}

/* 右側テキストエリア */
.interview-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* メッセージ　*/
.interview-quote {
  width: 100%;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  margin: 0 0 10px 0;
}

/* 入社年・部署・名前　*/
.interview-meta {
  width: 100%;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 14px;
  color: #292929;
  margin: 0 0 10px 0;
}

/* READ MORE */
.interview-more {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/* テキスト　*/
.interview-more span {
  font-family: 'Inter', sans-serif;
  font-weight: 200;
  font-size: 14px;
  color: #1C236D;
  line-height: 1;
}

/* 矢印 */
.interview-arrow {
  margin-left: 10px;
  transition: transform 0.3s ease;
}

/* ホバー時に矢印が右に少し滑る演出 */
.interview-card:hover .interview-arrow {
  transform: translateX(7px);
}

/* ==========================================
   代表メッセージ（Recruit Message Section）
   ========================================== */

.recruit-message-container {
  width: 100%;
  max-width: 1240px;
  min-height: 724px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 100px;
  padding-right: 100px;
  box-sizing: border-box;
}

/* 内包ラック（1112px幅 / PCはCSS Gridで左右2列配置） */
.recruit-message-inner {
  display: grid;
  grid-template-columns: 541px 541px;
  column-gap: 30px;
  row-gap: 30px;
  width: 100%;
  max-width: 1112px;
  margin-left: auto;
  margin-right: auto;
}

/* =========================================
   PCグリッド配置プロパティ
========================================== */

/* キャッチコピー（左列・1行目） */
.message-left-catch {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  max-width: 541px;
  font-family: 'Noto Serif JP', serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
  color: #292929;
  margin: 0;
}

/* 写真＋ネームタグ（左列・2行目） */
.message-photo-wrap {
  grid-column: 1;
  grid-row: 2;
  position: relative;
  width: 100%;
  max-width: 541px;
  margin: 0;
}

.message-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ネームタグ（写真の下辺から20px上） */
.message-name-tag {
  position: absolute;
  bottom: 20px;
  left: 0;
  width: 100%;
  max-width: 231px;
  padding: 8px 20px;
  background-color: #1C236D;
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

.name-tag-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 13px;
  color: #FFFFFF;
  line-height: 1;
}

.name-tag-name {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #FFFFFF;
  line-height: 1;
  margin-left: 20px;
}

/* 応募検討者向けカード（左列・3行目） */
.message-applicant-card {
  grid-column: 1;
  grid-row: 3;
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
  background-color: rgba(217, 90, 22, 0.1);
}

.applicant-card-label {
  width: 501px;
  min-height: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 16px;
  color: #292929;
  text-align: center;
  margin-bottom: 20px;
  padding: 4px 0;
}

.applicant-card-text {
  width: 501px;
  margin: 0 auto 20px auto;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 24.5px;
  color: #292929;
  text-align: left;
}

.applicant-card-text:last-child {
  margin-bottom: 0;
}

/* 右側テキストエリア（右列・1〜3行目を縦にスルーして配置） */
.recruit-message-right {
  grid-column: 2;
  grid-row: 1 / span 3;
  width: 100%;
  display: flex;
  flex-direction: column;
}

/* 右側文章ブロックのスペーシング */
.block-top,
.block-mid {
  margin-bottom: 40px;
}

.message-sub-title {
  width: 100%;
  max-width: 541px;
  min-height: 72px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  font-size: 24px;
  line-height: 36px;
  color: #1C98A6;
  margin: 0 0 20px 0;
}

.message-text {
  width: 541px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  margin: 0 0 20px 0;
}

.message-text:last-child {
  margin-bottom: 0;
}

.message-text-bold,
.message-text .text-bold {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  /* Bold */
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  margin: 0;
}

.message-text-bold {
  display: block;
  margin-bottom: 4px;
}

/* =======================================
   エントリーフォーム
 ========================================== */

.form-select {
  width: 100%;
  height: 39px;
  background-color: #FFFFFF;
  border: 0.5px solid #8E8E93;
  border-radius: 6px;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
  padding: 0 20px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  color: #292929;
  box-sizing: border-box;
  outline: none;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: none;
}

/* ▼選択してくださいの文字色をプレースホルダーと同色に */
.form-select:has(option[value=""]:checked) {
  color: #8E8E93;
}

/* 展開される選択肢リストの文字色 */
.form-select option {
  color: #292929;
}

/* ==========================================
   カスタムプルダウン（アニメーション＆指定色）
   ========================================== */

.custom-select-wrap {
  position: relative;
  width: 100%;
}

/* 表示枠 */
.custom-select-trigger {
  width: 100%;
  height: 39px;
  background-color: #FFFFFF;
  border: 0.5px solid #8E8E93;
  border-radius: 6px;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
  padding: 0 20px;
  line-height: 39px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 100;
  color: #8E8E93;
  box-sizing: border-box;
  cursor: pointer;
  user-select: none;
}

.custom-select-trigger.is-selected {
  color: #292929;
  font-weight: normal;
}

/* プルダウンメニュー（畳まれた状態：上端に潰した状態） */
.custom-select-options {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  margin: 4px 0 0 0;
  padding: 0;
  list-style: none;
  background-color: #FFFFFF;
  border: 0.5px solid #8E8E93;
  border-radius: 6px;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.15);
  z-index: 100;
  overflow-y: auto;
  box-sizing: border-box;
  transform-origin: top center;
  transform: scaleY(0);
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  transition:
    transform 0.28s cubic-bezier(0.16, 1, 0.3, 1),
    max-height 0.28s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.2s ease,
    visibility 0.28s;
}

/* 開いた状態（上からロールスクリーンが降りる） */
.custom-select-wrap.is-open .custom-select-options {
  transform: scaleY(1);
  max-height: 222px;
  opacity: 1;
  visibility: visible;
}

/* 各選択肢（1行37px） */
.custom-option {
  height: 37px;
  line-height: 37px;
  padding: 0 20px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  color: #292929;
  cursor: pointer;
  box-sizing: border-box;
  transition: background-color 0.15s ease;
}

/* ホバー＆選択時 */
.custom-option:hover,
.custom-option.is-selected {
  background-color: #d9d9d9;
}

/* ==========================================
   1日のスケジュール セクション 
   ========================================== */

section.schedule-section {
  width: 100%;
  padding: 120px 0;
  box-sizing: border-box;
}

/* 背景色の指定（odd: F8F8FA / even: ffffff） */
section.schedule-section.is-odd {
  background-color: #F8F8FA;
}

section.schedule-section.is-even {
  background-color: #ffffff;
}

/* インナー枠 */
.schedule-inner {
  width: 100%;
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* コンテナ（左右振り分けで間に自動で40pxの隙間ができる） */
.schedule-container {
  width: 100%;
  max-width: 1240px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* 偶数番目（is-even）は左右ブロック（写真と右グループ）の位置を反転 */
section.schedule-section.is-even .schedule-container {
  flex-direction: row-reverse;
}

/* ==========================================
   【左列】写真＆メッセージ (幅479px)
 ========================================== */

.schedule-left {
  width: 479px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.schedule-left-block {
  width: 479px;
  display: flex;
  flex-direction: column;
}

.schedule-img-box {
  position: relative;
  width: 479px;
  height: 286px;
  margin-bottom: 40px;
  overflow: hidden;
}

.schedule-img-box img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.interview-name-tag {
  position: absolute;
  bottom: 20px;
  left: 0;
  width: auto;
  padding: 8px 20px;
  background-color: #1C236D;
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

.name-tag-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 13px;
  color: #FFFFFF;
  line-height: 1;
}

.name-tag-name {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #FFFFFF;
  line-height: 1;
  margin-left: 20px;
}

.schedule-text-box {
  width: 100%;
}

.schedule-heading-mincho {
  font-family: 'Zen Old Mincho', serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 36px;
  color: #292929;
  text-align: left;
  margin: 0 0 25px 0;
}

.schedule-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  text-align: left;
  margin: 0;
}

.schedule-message-box {
  margin-top: 25px;
}

/* =========================================
   【右列グループ】（幅721px）
 ========================================== */

.schedule-right-group {
  width: 721px;
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  box-sizing: border-box;
}

/* 中央：縦書き＋タイムライン */
.schedule-center {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 30px;
}

/* 縦書きタイトル */
.schedule-vertical-title {
  width: 40px;
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-family: 'Zen Old Mincho', serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 50px;
  color: #1C236D;
  margin: 0;
  letter-spacing: 0.1em;
}

/* スマホ用ラッパー（PCでは横並びのコンテナとして機能） */
.schedule-timeline-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 30px;
}

/* タイムラインの箱 */
.schedule-timeline {
  width: 59px;
  padding: 30px 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

.timeline-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.timeline-time {
  width: 65px;
  height: 42px;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 20px;
  color: #1C236D;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
}

.timeline-line {
  width: 1px;
  height: 102px;
  background-color: #1C236D;
  border-radius: 1px;
  margin-bottom: 15px;
}

/* 右側：カード群 */
.schedule-right {
  width: 548px;
  padding: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  padding-top: 45px;
}

.schedule-card {
  width: 548px;
  height: 140px;
  padding: 40px;
  background-color: #E9E9F1;
  border-radius: 0 10px 10px 10px;
  box-sizing: border-box;
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-weight: 600;
  font-size: 20px;
  color: #292929;
}

.schedule-holiday-box {
  width: 548px;
  height: 135px;
  padding: 25px;
  background-color: #FCEFE8;
  border-radius: 4px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-left: 83px;
  margin-top: -30px;
}

.holiday-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #292929;
  text-align: center;
  margin-bottom: 10px;
}

.holiday-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  text-align: center;
}

/* ==========================================
   募集要項ページ
   ========================================== */

.application-content-section {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  box-sizing: border-box;
}

.application-header-wrap {
  width: 100%;
  max-width: 1240px;
  height: 106px;
  margin-bottom: 30px;
}

.application-container {
  width: 100%;
  max-width: 1240px;
  padding: 30px 100px 0;
  box-sizing: border-box;
}

.application-inner {
  width: 1040px;
  margin: 0 auto;
}

.application-list {
  width: 1040px;
  margin: 0;
  padding: 0;
}

.application-row {
  display: flex;
  align-items: flex-start;
  width: 1040px;
  padding-left: 20px;
  padding-bottom: 25px;
  margin-bottom: 25px;
  border-bottom: 1px solid #292929;
  box-sizing: border-box;
}

.application-row:last-child {
  border-bottom: none;
}

.application-term {
  width: 100px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 19px;
  color: #292929;
  text-align: left;
  flex-shrink: 0;
  margin-right: 40px;
}

.application-desc {
  width: 860px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
  text-align: left;
  margin: 0;
}

.application-row:not(:nth-child(4)):not(:nth-child(8)):not(:nth-child(9)):not(:last-child) .application-desc {
  line-height: 19px;
}

.application-desc--cols {
  display: flex;
  gap: 40px;
  width: 860px;
}

.welfare-col {
  width: 410px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: #292929;
}

/* エントリーボタン */
.application-action {
  width: 100%;
  margin-top: 40px;
  display: flex;
  justify-content: center;
}

.btn-application-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 740px;
  height: 89px;
  padding: 10px 25px;
  background-color: #D95A16;
  border-radius: 2px;
  text-decoration: none;
  box-sizing: border-box;
  box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.btn-application-entry:hover {
  box-shadow: none;
  transform: translateY(2px);
  opacity: 0.5;
}

.btn-entry-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 575px;
  height: 48px;
}

.btn-entry-en {
  display: block;
  width: 575px;
  height: 29px;
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: 24px;
  line-height: 29px;
  color: #FFFFFF;
  text-align: left;
}

.btn-entry-jp {
  display: block;
  width: 575px;
  height: 19px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 19px;
  color: #FFFFFF;
  text-align: left;
}

.btn-entry-arrow-svg {
  width: 90px;
  height: 20px;
  flex-shrink: 0;
  margin-left: 25px;
}


/* ============================================================
                 【responsive max-width:1239px】
   =========================================================== */

@media (max-width: 1239px) {

  /* ========================================
            NAVI
 ========================================== */

  .global-nav {
    display: none;
  }

  .mobile-menu-btn {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 37px;
    height: 27px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1001;
    position: relative;
  }

  /* ハンバーガーの3本の棒 */
  .mobile-menu-btn span {
    display: block;
    width: 100%;
    height: 5px;
    background-color: #1C236D;
    border-radius: 4px;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }

  /* ボタンがアクティブ（開いた状態）のとき：×印に変形するアニメーション */
  .mobile-menu-btn.is-active span:nth-child(1) {
    transform: translateY(11px) rotate(45deg);
  }

  .mobile-menu-btn.is-active span:nth-child(2) {
    opacity: 0;
  }

  .mobile-menu-btn.is-active span:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg);
  }

  .mobile-menu {
    display: block;
    position: fixed;
    top: 0;
    right: -358px;
    width: 358px;
    height: 584px;
    background-color: #FFFFFF;
    box-shadow: -4px 0 15px rgba(0, 0, 0, 0.08);
    transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 1000;
    overflow-y: auto;
    padding-top: 18px;
    padding-left: 15px;
    box-sizing: border-box;
  }

  /* モバイルメニューが開いたときの背景オーバーレイ */
  .mobile-menu-overlay {
    display: none;
    position: fixed;
    top: 83px;
    left: 0;
    width: 100%;
    height: calc(100vh - 83px);
    background-color: rgba(120, 120, 120, 0.2);
    z-index: 999;
  }

  /* メニューが開いているときにオーバーレイを表示するクラス */
  .mobile-menu-overlay.is-active {
    display: block;
  }

  .mobile-menu.is-active {
    right: 0;
  }

  /* メニュー内のロゴ */
  .mobile-menu-logo {
    width: 163px;
    height: 47px;
    margin-bottom: 50px;
  }

  .mobile-menu-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  /* モバイルメニュー内のリスト */
  .mobile-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
  }

  .mobile-nav-link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-decoration: none;
    box-sizing: border-box;
  }

  .mobile-nav-label {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    font-size: 32px;
    line-height: 1;
  }

  .mobile-nav-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 14px;
    margin-top: 2px;
  }

  .pagetop {
    display: block;
  }

  /* =======================================
        各項目の個別サイズ・カラー設定 
 ========================================== */

  /* 1. ABOUT */
  .mobile-nav-item:nth-child(1) .mobile-nav-link {
    width: 120px;
    height: 54px;
  }

  .mobile-nav-item:nth-child(1) .mobile-nav-label,
  .mobile-nav-item:nth-child(1) .mobile-nav-text {
    color: #292929;
  }

  /* 2. WORKS */
  .mobile-nav-item:nth-child(2) .mobile-nav-link {
    width: 127px;
    height: 54px;
  }

  .mobile-nav-item:nth-child(2) .mobile-nav-label,
  .mobile-nav-item:nth-child(2) .mobile-nav-text {
    color: #292929;
  }

  /* 3. WHAT WE DO */
  .mobile-nav-item:nth-child(3) .mobile-nav-link {
    width: 225px;
    height: 54px;
  }

  .mobile-nav-item:nth-child(3) .mobile-nav-label,
  .mobile-nav-item:nth-child(3) .mobile-nav-text {
    color: #292929;
  }

  /* 4. COMPANY */
  .mobile-nav-item:nth-child(4) .mobile-nav-link {
    width: 172px;
    height: 54px;
  }

  .mobile-nav-item:nth-child(4) .mobile-nav-label,
  .mobile-nav-item:nth-child(4) .mobile-nav-text {
    color: #292929;
  }

  /* 5. RECRUIT */
  .mobile-nav-item:nth-child(5) .mobile-nav-link {
    width: 142px;
    height: 52px;
  }

  .mobile-nav-item:nth-child(5) .mobile-nav-label,
  .mobile-nav-item:nth-child(5) .mobile-nav-text {
    color: #1C236D;
  }

  /* 6. CONTACT */
  .mobile-nav-item:nth-child(6) .mobile-nav-link {
    width: 179px;
    height: 54px;
  }

  .mobile-nav-item:nth-child(6) .mobile-nav-label,
  .mobile-nav-item:nth-child(6) .mobile-nav-text {
    color: #D95A16;
  }

  .mobile-nav-item.is-entry .mobile-nav-label,
  .mobile-nav-item.is-entry .mobile-nav-text {
    color: #D95A16;
  }

  .sp-only {
    display: inline;
  }

  .pc-br {
    display: none;
  }

  /* ============================================
        共通　セクションヘッダー
  ============================================= */

  .section-container {
    max-width: auto;
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 0;
    margin-bottom: 25px;
  }

  .breadcrumb-container .content-container {
    padding: 20px 16px;
  }

  .section-title {
    font-size: 28px;
  }

  .title-underline {
    margin-top: 10px;
  }

  .section-subtitle {
    font-size: 14px;
    margin-top: 10px;
  }

  /* ============================================
            TOPに戻るボタンの基本設定（スマホ用） 
  ==============================================*/

  .pagetop {
    display: block;
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 50px;
    height: 50px;
    z-index: 10;
    opacity: 0;
    visibility: hidden;
    transform: translateY(5px);
    transition: opacity 0.5s ease, visibility 0.5s ease, transform 0.5s ease;
  }

  .pagetop img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* JavaScriptでこのクラスが追加されたときにふわっと表示される */
  .pagetop.is-active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  /* =========================================
              お知らせ News
  ========================================== */

  section.news-section {
    padding: 80px 16px;
  }

  .news-list {
    gap: 12.5px;
    align-items: center;
  }

  .news-item {
    flex-direction: column;
    /* 日付を上に、テキストを下に縦並びにする */
    align-items: center;
    /* 項目ブロック全体を画面中央に寄せる */
    gap: 0;
    /* 日付とテキストの間隔 */
  }

  /* 日付とテキストを「左揃え」にするためのコンテナ幅の指定 */
  .news-date,
  .news-text {
    text-align: center;
  }

  .news-text {
    font-size: 16px;
  }

  /* =======================================
        大山建設の事業
 ========================================== */

  section.service-section {
    padding: 80px 16px;
  }

  .service-card,
  .service-card-reverse {
    flex-direction: column;
    align-items: center;
  }

  .service-image {
    width: 100%;
    max-width: 100%;
  }

  .service-image img {
    width: 100%;
    height: auto;
  }

  .service-content {
    width: 100%;
  }

  /* ======================================
          採用情報
 ========================================== */

  section.recruit-section {
    padding: 80px 16px;
    min-height: 432px;
    box-sizing: border-box;
  }

  /* スマホ幅に合わせて左右に16pxの隙間を空ける */
  .recruit-section .content-container {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  /* 採用バナーのレスポンシブ */
  .recruit-banner {
    width: 100%;
    height: 89px;
    padding: 16px 20px;
  }

  .recruit-banner-title .main-title {
    font-size: 24px;
  }

  /* =======================================
          フッター
 ========================================== */

  footer {
    padding-top: 80px;
  }

  footer .content-container {
    padding: 0 41px;
    box-sizing: border-box;
  }

  .footer-content {
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin-bottom: 60px;
  }

  .footer-column {
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .footer-title {
    text-align: center;
    margin: 0 0 6.25px 0;
  }

  .footer-title-underline {
    width: 100%;
    max-width: 100%;
    margin-bottom: 6.25px;
  }

  .footer-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
  }

  /* 1. 大山建設について（HTMLの1番目） */
  .footer-column:nth-of-type(1) {
    order: 1;
  }

  /* 2. 施工実績（HTMLの4番目）をスマホでは2番目に */
  .footer-column:nth-of-type(4) {
    order: 2;
  }

  /* 3. 大山建設の取り組み（HTMLの2番目）をスマホでは3番目に */
  .footer-column:nth-of-type(2) {
    order: 3;
  }

  /* 4. 会社概要（HTMLの5番目）をスマホでは4番目に */
  .footer-column:nth-of-type(5) {
    order: 4;
  }

  /* 5. 採用情報（HTMLの3番目）をスマホでは5番目に */
  .footer-column:nth-of-type(3) {
    order: 5;
  }

  /* 6. お問い合わせ（HTMLの6番目）はそのまま6番目 */
  .footer-column:nth-of-type(6) {
    order: 6;
  }

  /* =======================================
          ページヒーロービュー
   ========================================== */

  .page-hero {
    height: 287px;
  }

  .page-hero-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 16px;
    padding: 0 16px;
  }

  /* 英語タイトル */
  .page-hero-title-en {
    font-size: 40px;
  }

  /* 日本語タイトル */
  .page-hero-title-jp {
    font-size: 16px;
    font-weight: 300;
  }

  /* ========================================
            パンくずリスト
  ========================================== */

  .breadcrumb-list {
    font-size: 12px;
  }

  .breadcrumb-item:not(:last-child) {
    margin-right: 7px;
  }

  .breadcrumb-item+.breadcrumb-item::before {
    margin-right: 7px;
  }

  /* ========================================
          【ABOUT】代表挨拶
  ========================================== */

  section.about-message-section {
    padding: 80px 16px;
  }

  #message .about-message-inner {
    padding: 0;
    flex-direction: column-reverse;
    align-items: center;
    gap: 30px;
  }

  #message .about-message-slogan {
    color: #E5A629;
    font-weight: 400;
    margin-top: 1em;
    margin-bottom: 1em;
  }

  #message .about-message-body {
    width: 100%;
  }

  #message .about-message-image .img-pc {
    display: none;
  }

  #message .about-message-image .img-sp {
    display: block;
    aspect-ratio: 348 / 229;
    height: auto;
  }

  /*===========================================
          企業理念セクション
   ========================================== */

  section#philosophy.about-philosophy-section {
    padding: 80px 16px;
    height: auto;
    min-height: 0;
  }

  /* コンテナ：縦並びにしてスローガンを上、リストを下に配置 */
  #philosophy .content-container {
    width: 100%;
    height: auto;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
  }

  /* 左側：スローガンボックス */
  .about-philosophy-slogan-box {
    width: 100%;
    max-width: 375px;
    height: auto;
    margin: 0 auto;
    text-align: center;
  }

  /* 英語スローガン */
  .about-philosophy-slogan-en {
    font-size: 32px;
    color: #E5A629;
    text-align: center;
  }

  /* 日本語スローガン */
  .about-philosophy-slogan-jp {
    font-size: 20px;
    color: #E5A629;
    text-align: center;
  }

  /* 右側：リスト枠（これがスローガンの下に来ます） */
  .about-philosophy-list {
    width: 100%;
    max-width: 342px;
    height: auto;
    margin: 0 auto;
    gap: 12.5px;
  }

  .about-philosophy-num,
  .about-philosophy-text {
    font-size: 16px;
  }

  /* ========================================== 
          沿革セクション
   ========================================== */

  section#history.about-history-section {
    width: 100%;
    min-height: 0;
    padding: 80px 16px;
    overflow: hidden;
  }

  .about-history-wrapper {
    width: 100%;
    max-width: 100%;
    height: auto;
    padding: 0;
    margin-bottom: 40px;
    overflow: visible;
  }

  .about-history-timeline {
    width: 100%;
    height: auto;
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
    gap: 16px;
  }

  /* 1. 各カードのサイズ */
  .about-history-item {
    width: 269px;
    height: 538px;
    padding: 20px;
    box-sizing: border-box;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
  }

  /* 年号エリア */
  .about-history-year-box {
    width: 100%;
    height: auto;
    margin-bottom: 20px;
    gap: 2px;
  }

  .about-history-year {
    font-size: 32px;
    line-height: 1;
  }

  .about-history-era {
    font-size: 13px;
  }

  /* 写真エリア */
  .about-histry-image {
    width: 229px;
    height: 132px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 20px;
    overflow: hidden;
    flex-shrink: 0;
  }

  .about-histry-image img {
    width: 229px;
    height: 132px;
    object-fit: cover;
    display: block;
  }

  /* 4. タイトルエリア */
  .about-history-title {
    width: 100%;
    height: auto;
    font-size: 16px;
    line-height: 1.4;
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
  }

  /* 5. 本文テキストエリア */
  .about-history-text {
    width: 100%;
    height: auto;
    font-size: 13px;
    line-height: 1.6;
    margin: 0;
    overflow: hidden;
    flex-grow: 1;
  }

  .about-history-controls {
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
    height: 25px;
    position: relative;
  }

  .about-history-track {
    width: 100%;
    height: 25px;
    position: relative;
    display: flex;
    align-items: center;
  }

  .about-history-bar {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100vw;
    height: 2px;
    background-color: #D95A16;
    z-index: 1;
    pointer-events: none;
  }

  .about-history-thumb {
    width: 25px;
    height: 25px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%);
    background-color: #D95A16;
    border-radius: 50%;
    z-index: 2;
    cursor: grab;
    pointer-events: auto;
    opacity: 1;
    touch-action: none;
  }

  .about-history-thumb:active {
    cursor: grabbing;
    transform: translate(-50%, -50%) scale(1.1);
  }

  /* =======================================
  【WORKS】ワークスセクション
   ========================================== */

  .works-section {
    max-width: 100%;
    height: auto;
    padding: 80px 16px;
    box-sizing: border-box;
  }

  /* スライド表示枠 */
  .works-container {
    width: 100%;
    margin: 25px auto;
    position: relative;
    overflow: hidden;
  }

  /* 横につなる帯（スマホでは縦方向に） */
  .works-card-wrapper {
    display: flex;
    flex-direction: row;
    transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform;
  }

  /* 1ページ分 (縦1列 × 3枚) */
  .works-page {
    display: flex;
    flex-direction: column;
    width: 100%;
    flex-shrink: 0;
    gap: 25px;
  }

  /* 1つのカードサイズ */
  .works-card {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
  }

  /* 画像サイズと下の空間 */
  .works-card__img {
    width: 100%;
    height: auto;
    aspect-ratio: 396.67 / 264.83;
    margin-bottom: 6.25px;
    overflow: hidden;
  }

  .works-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* テキストとボタンを包む箱 */
  .works-card__content {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
  }

  /* 文字が入る箱 */
  .works-card__text-box {
    width: 100%;
    height: auto;
    margin-bottom: 6.25px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    box-sizing: border-box;
  }

  .works-card__title {
    font-size: 20px;
    line-height: 1.4;
  }

  /* ボタンが入る箱 */
  .works-card__btn-box {
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
  }

  /* ページネーション */
  .works-pagination {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 25px;
    flex-wrap: wrap;
  }

  .works-page-num {
    width: 28px;
    height: 28px;
    font-size: 12px;
  }

  /* ==========================================
          施工実績詳細ページ
   ========================================== */

  .works-detail-outer {
    width: 100%;
    height: auto;
    padding: 80px 16px 60px 16px;
    box-sizing: border-box;
  }

  .works-detail-inner {
    width: 100%;
    height: auto;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  /* 写真ブロック全体 */
  .works-detail-media {
    width: 100%;
  }

  /* メイン写真 */
  .works-detail-main-img {
    width: clamp(343px, 55vw, 684px);
    aspect-ratio: 684 / 464;
    height: auto;
    margin: 0 auto 12px auto;
  }

  /* キャプションエリア */
  .works-caption-area {
    width: 100%;
    max-width: clamp(343px, 55vw, 684px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  /* サブ写真ボックス：2つ並べて間隔12px、下に12px空ける */
  .works-detail-sub-img-box {
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 12px;
  }

  /* サブ写真 (112 * 112) */
  .works-detail-sub-img,
  .works-detail-sub-img-btn {
    width: 100%;
    max-width: 112px;
    aspect-ratio: 1 / 1;
    height: auto;
  }

  /* サブ写真がない場合に適用するクラス */
  .works-caption-area.no-sub-images {
    margin-top: 0;
  }

  .works-caption-area.no-sub-images .works-detail-sub-img-box {
    display: none;
  }

  /* 右側テキストエリア：センター寄せ */
  .works-detail-info {
    width: 100%;
    align-items: center;
    text-align: center;
  }

  /* タグボックス */
  .works-detail-tag-box {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 6.25px;
  }

  /* タイトル */
  .works-detail-title,
  .works-detail-award-text,
  .works-detail-meta {
    text-align: center;
    margin-bottom: 6.25px;
  }

  .works-detail-meta:last-child {
    margin-bottom: 12px;
  }

  /* 一覧へ戻るボタンエリア */
  .works-detail-action {
    width: 100%;
    margin-top: 24px;
  }

  .works-detail-back-btn {
    width: 100%;
    max-width: 300px;
  }

  /* ==========================================
          【WhatWeDo】　施工について
   ========================================== */

  section#service.what-service-section {
    padding: 0 16px;
  }

  .what-service-intro-container {
    padding: 0;
    height: auto;
    margin: 25px auto;
  }

  .what-service-intro-text {
    font-size: 16px;
    line-height: 28px;
  }

  /* 2. カードを縦並び（1列）に変更 */
  .what-service-media-container {
    flex-direction: column;
    gap: 24px;
  }

  /* 3. カードの最大幅を画面いっぱいに広げる */
  .what-service-card {
    max-width: 100%;
    min-height: 232px;
  }

  /* 4. スマホ画面でカード内のテキストが窮屈にならないよう中央のインナー幅を調整 */
  .what-service-card-inner {
    max-width: 100%;
    padding: 0 16px;
    box-sizing: border-box;
  }

  /* 5. ヘッダー部分（タイトルとリード）のレイアウト調整 */
  .what-service-card-header {
    align-items: flex-start;
    gap: 10px;
  }

  .what-service-card-title {
    width: 150px;
    font-size: 32px;
  }

  .what-service-card-lead {
    width: 100%;
    margin-left: 0;
    letter-spacing: 0.02em;
  }

  /* 6. 区切り線の幅をレス対応（100%にしてはみ出しを防ぐ） */
  .what-service-card-divider {
    width: 100%;
    margin-top: 12px;
    margin-bottom: 12px;
  }

  /* 7. 下部テキストの説明文幅を調整 */
  .what-service-card-desc {
    width: 100%;
    height: auto;
    font-size: 13px;
    line-height: 23px;
  }

  /* ==========================================
            グループ事業
   ========================================== */

  .what-business-section {
    max-width: 100%;
    padding: 80px 16px;
  }

  /* 2つ横並び（flex）を縦並び（column）に変更 */
  .what-business-grid {
    flex-direction: column;
    align-items: center;
    gap: 25px;
    margin: 0 auto 25px;
  }

  .what-group-company-name {
    width: 100%;
    font-size: 19px;
    text-align: center;
    margin-bottom: 25px;
  }

  .what-business-grid:last-child {
    margin-bottom: 0;
  }

  .what-business-media {
    position: relative;
    width: 420px;
    height: auto;
    margin-bottom: 25px;
  }

  /* 正円の写真 */
  .what-business-circle {
    width: 343px;
    height: 343px;
    margin: 0 auto;
    border-radius: 50%;
    overflow: hidden;
  }

  .what-business-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* タイトルエリア */
  .what-business-title-area {
    position: absolute;
    left: 32px;
    bottom: 40px;
    width: 165px;
    height: 60px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    z-index: 2;
    gap: 10px;
  }

  .what-business-desc {
    width: 343px;
    height: auto;
    font-size: 14px;
    line-height: 24px;
    color: #292929;
    margin: 0 auto;
  }

  /* ==========================================
          社会貢献への取り組み
   ========================================== */

  .what-csr-section {
    width: 100%;
    padding: 80px 16px;
    box-sizing: border-box;
  }

  /* BCPカード */
  .what-bcp-card {
    height: auto;
    padding: 25px;
    margin-bottom: 25px;
  }

  .what-bcp-inner {
    flex-direction: column;
    align-items: center;
    gap: 25px;
  }

  .what-bcp-img-box {
    width: 293px;
    height: auto;
    flex-shrink: 0;
  }

  .what-bcp-img-box img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .what-bcp-text-box {
    width: 100%;
    height: auto;
    text-align: center;
  }

  .what-bcp-desc {
    line-height: 1.8;
  }

  /* ACTIONカードエリア */
  .what-action-container {
    height: auto;
    margin-top: 30px;
  }

  .what-action-grid {
    flex-direction: column;
    gap: 25px;
  }

  .what-action-card {
    width: 100%;
    height: auto;
  }

  /* 画像部分 */
  .what-action-media {
    width: 100%;
    height: auto;
    margin-bottom: 12px;
  }

  .what-action-media img {
    width: 100%;
    height: auto;
  }

  .what-action-label-area {
    bottom: 20px;
  }

  /* テキストエリア */
  .what-action-body {
    margin-top: 15px;
  }

  .what-action-desc {
    width: 100%;
    height: auto;
    font-size: 16px;
    line-height: 24px;
  }

  /* VIEW MORE ボタン */
  .what-action-btn-wrapper {
    margin-top: 20px;
  }

  .what-action-pdf-text {
    font-size: 16px;
  }

  .what-action-pdf-icon {
    width: 24px;
  }

  /* ==========================================
          【COMPANY】会社概要
   ========================================== */

  #overview.company-section {
    height: auto;
    padding: 80px 16px;
  }

  #overview .section-container {
    padding: 0;
    margin-top: 0;
    margin-bottom: 25px;
  }

  #overview .content-container {
    height: auto;
    padding: 0;
    margin: 0;
  }

  .company-overview-content {
    min-width: 100%;
    min-height: auto;
    flex-direction: column;
    gap: 40px;
  }

  .company-overview-media {
    min-width: 100%;
    min-height: auto;
  }

  .company-overview-media img {
    max-height: 400px;
  }

  .company-overview-detail {
    width: 100%;
    height: auto;
  }

  .info-row {
    padding: 0 0 12px;
  }

  .info-row dt {
    width: 135px;
    flex-shrink: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 16px;
    color: #292929;
    line-height: 1.5;
    margin-left: 0;
  }

  .info-row:not(:first-child):not(:last-child) {
    padding: 12px 0;
  }

  .info-row:last-child {
    padding-top: 12px;
  }

  /* ==========================================
          交通アクセス
   ========================================== */

  #access .section-header {
    margin-bottom: 25px;
  }

  #access .content-container {
    padding-bottom: 0;
  }

  section#access.company-section {
    padding: 80px 16px;
    height: clamp(491px, 70vw, 836px);
  }

  section#access.company-section div.content-container div.map-wrapper {
    width: 100%;
    min-width: 343px;
    height: clamp(229px, 50vw, 450px);
    padding: 0;
  }

  section#access.company-section div.content-container div.map-wrapper iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
  }

  /* ===========================================
          グループ企業
   ========================================== */
  section#group.company-section {
    padding: 80px 0;
  }

  #group .section-container {
    padding: 0 16px;
    margin-bottom: 25px;
  }

  #group .section-header {
    padding: 0;
    margin-bottom: 0;
  }

  section#group.company-section div.company-slider-outer {
    width: 100%;
    height: calc(125px * 2 + 12px);
    margin-bottom: 40px;
    overflow: hidden;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  /* トラックを2行に分割 */
  section#group.company-section div.company-slider-track {
    display: flex;
    gap: 12px;
    width: max-content;
    height: 125px;
    flex-shrink: 0;
  }

  /* 1行目：左方向スクロール（0番目の偶数行） */
  section#group.company-section div.company-slider-track:nth-of-type(1) {
    animation: groupSeamlessScrollLeft 40s linear infinite;
  }

  /* 2行目：右方向スクロール（遅延） */
  section#group.company-section div.company-slider-track:nth-of-type(2) {
    animation: groupSeamlessScrollLeft 40s linear infinite;
    animation-direction: reverse;
  }

  /* スライドアイテム */
  section#group.company-section div.company-slide-item {
    width: 171px;
    height: 125px;
    flex-shrink: 0;
    position: relative;
  }

  /* 写真画像 */
  section#group.company-section div.company-slide-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }


  /* ==========================================
     左方向スクロールアニメーション
     ========================================== */
  @keyframes groupSeamlessScrollLeft {
    0% {
      transform: translateX(0);
    }

    100% {
      /* 1周分の50%左へシフト */
      transform: translateX(calc(-50% - 6px));
    }
  }

  /* ==========================================
     右方向スクロールアニメーション
     ========================================== */
  @keyframes groupSeamlessScrollRight {
    0% {
      transform: translateX(0);
    }

    100% {
      /* 右方向（正の値） */
      transform: translateX(calc(50% + 6px));
    }
  }

  /* ==========================================
     2. カード領域（縦積みレイアウト）
     ========================================== */

  section#group.company-section div.group-cards-container {
    display: flex;
    flex-direction: column;
    gap: 25px;
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }

  /* 各カード本体（スマホでは100%幅） */
  section#group.company-section div.group-card,
  section#group.company-section div.group-card-oil {
    width: 100%;
    height: auto;
    background-color: #F8F8FA;
    padding: 12.5px;
    box-sizing: border-box;
    flex-shrink: 0;
  }

  /* カードタイトル */
  section#group.company-section h3.card-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 19px;
    color: #292929;
    line-height: 30px;
    margin: 0 0 6.25px 0;
  }

  /* シングルラインカード */
  section#group.company-section div.group-card.is-single-line h3.card-title {
    height: auto;
    display: block;
    margin-bottom: 6.25px;
  }

  /* テキストボックス */
  section#group.company-section div.card-text-box {
    width: 100%;
    height: auto;
  }

  /* テキスト内容 */
  section#group.company-section p.card-desc {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #292929;
    line-height: 1.5;
    margin: 0;
  }

  /* =========================================
          営業所
  ========================================== */

  section#offices.company-section {
    width: 100%;
    box-sizing: border-box;
    padding: 80px 16px;
  }

  section#offices.company-section .section-container {
    padding: 0;
    margin-bottom: 25px;
  }

  /* コンテナ */
  section#offices.company-section div.content-container {
    width: 100%;
    max-width: none;
    height: auto;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }

  /* 縦並びグリッド */
  section#offices.company-section div.office-grid {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 30px;
    width: 100%;
    height: auto;
  }

  /* 個別カード */
  section#offices.company-section div.office-card {
    width: 100%;
    max-width: none;
    height: auto;
    box-sizing: border-box;
    padding: 25px;
    background-color: #F8F8FA;
    flex-shrink: 0;
  }

  /* 本社・支店名 */
  section#offices.company-section h3.office-name {
    width: 100%;
    height: auto;
    font-size: 20px;
    line-height: 1;
    margin: 0 0 12.5px 0;
    padding: 0;
  }

  /* 住所 */
  section#offices.company-section p.office-address {
    width: 100%;
    height: auto;
    font-size: 16px;
    line-height: 1.3;
    margin: 0 0 12.5px 0;
    padding: 0;
  }

  /* TEL / FAX */
  section#offices.company-section p.office-tel {
    width: 100%;
    height: auto;
    font-size: 16px;
    line-height: 1;
    margin: 0;
    padding: 0;
  }

  /* =========================================
          個人情報保護方針
  ========================================== */

  section#privacy.company-section {
    width: 100%;
    background-color: #F8F8FA;
    box-sizing: border-box;
    min-height: 744px;
    padding: 80px 16px;
  }

  section#privacy.company-section .section-container {
    padding: 0;
    margin-bottom: 25px;
  }

  /* コンテナ */
  section#privacy.company-section div.content-container {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }

  /* スクロール可能な領域 */
  section#privacy.company-section div.privacy-scroll-box {
    width: 100%;
    height: 335px;
    background-color: #FFFFFF;
    padding: 16px;
    box-sizing: border-box;
    overflow-y: auto;
  }

  /* スクロールバーのカスタマイズ */
  section#privacy.company-section div.privacy-scroll-box::-webkit-scrollbar {
    width: 8px;
  }

  section#privacy.company-section div.privacy-scroll-box::-webkit-scrollbar-track {
    background-color: #F0F0F3;
    border-radius: 4px;
  }

  section#privacy.company-section div.privacy-scroll-box::-webkit-scrollbar-thumb {
    background-color: #C2C2C7;
    border-radius: 4px;
  }

  section#privacy.company-section div.privacy-scroll-box::-webkit-scrollbar-thumb:hover {
    background-color: #8E8E93;
  }

  /* スクロールボックス内のテキスト */
  section#privacy.company-section p.privacy-lead {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 24px;
    color: #292929;
    text-align: left;
    margin: 0 0 20px 0;
    padding: 0;
  }

  /* 項目の見出し */
  section#privacy.company-section h4.privacy-term-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #8E8E93;
    margin: 0 0 8px 0;
    padding: 0;
    line-height: 1.4;
  }

  /* 項目の説明文 */
  section#privacy.company-section p.privacy-term-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 12px;
    color: #292929;
    margin: 0 0 15px 0;
    padding: 0;
    line-height: 1.6;
  }

  section#privacy.company-section p.privacy-term-text:last-child {
    margin-bottom: 0;
  }

  /* ==========================================
          【CONTACT】お問い合わせ
   ========================================== */

  .contact-section {
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 0 20px;
  }

  /* ステップナビゲーション */
  .contact-section .form-steps-container {
    width: 100%;
    max-width: none;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 auto 30px;
  }

  .contact-section .step-labels {
    width: 100%;
    max-width: 700px;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
  }

  .contact-section .step-label {
    font-size: 14px;
    line-height: 1;
    color: #D9D9D9;
    text-align: center;
    flex: 1;
  }

  .step-label {
    text-align: center;
  }

  .contact-section .step-label.is-active {
    color: #D95A16;
  }

  .contact-section .step-graphics {
    width: 100%;
    max-width: 700px;
    height: 35px;
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: -7px;
  }

  .contact-section .step-line {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% - 30px);
    height: 4px;
    background-color: #D9D9D9;
    z-index: 1;
  }

  .contact-section .step-circle {
    width: 26.44px;
    height: 26.44px;
    background-color: #D9D9D9;
    border-radius: 50%;
    position: relative;
    z-index: 2;
  }

  .contact-section .step-circle.is-active {
    background-color: #D95A16;
  }

  /* 案内テキストエリア */
  .contact-lead-wrapper {
    width: auto;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    background-color: #F8F8FA;
    padding: 30px 20px;
    margin-bottom: 40px;
    box-sizing: border-box;
  }

  .contact-lead-inner {
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .contact-lead-main {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.3;
    color: #292929;
    margin: 0 0 15px 0;
    text-align: center;
  }

  .contact-lead-notes {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .lead-note-1 {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 11px;
    line-height: 1.3;
    color: #636363;
    margin: 0;
  }

  .lead-note-2 {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 11px;
    line-height: 1.3;
    color: #636363;
    margin: 0;
  }

  /* フォーム本体 */
  .contact-form {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 50px;
    box-sizing: border-box;
    padding: 0;
  }

  .form-grid {
    width: 100%;
    margin: 0 auto;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  /* 各行：1列レイアウト（ラベルの上に入力欄） */
  .form-row {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 25px;
  }

  .form-row.form-row--textarea {
    align-items: flex-start;
  }

  /* 設問部分 */
  .form-label {
    width: 100%;
    height: auto;
    padding-left: 16px;
    margin: 0 0 8px 0;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    flex-shrink: 0;
  }

  /* 内包エリア */
  .form-label>label {
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 15px;
    line-height: 15px;
    color: #292929;
    cursor: pointer;
  }

  /* 必須バッジ */
  .required-badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 25px;
    height: 11px;
    background-color: #1C98A6;
    color: #FFFFFF;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 9px;
    border-radius: 999px;
    padding: 0;
    line-height: 1;
    flex-shrink: 0;
    margin-left: 8px;
  }

  /* 入力欄エリア */
  .form-input-wrap {
    width: 100%;
    margin-left: 0;
  }

  /* 入力欄本体 */
  .form-input {
    width: 100%;
    height: 44px;
    background-color: #FFFFFF;
    border: 0.5px solid #8E8E93;
    border-radius: 6px;
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    padding: 0 15px;
    line-height: 44px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #292929;
    box-sizing: border-box;
    outline: none;
  }

  /* テキストエリア */
  .form-textarea {
    width: 100%;
    height: 120px;
    background-color: #FFFFFF;
    border: 0.5px solid #8E8E93;
    border-radius: 6px;
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    padding: 10px 15px;
    line-height: 1.5;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #292929;
    box-sizing: border-box;
    outline: none;
    resize: vertical;
  }

  /* プレースホルダー */
  .form-input::placeholder,
  .form-textarea::placeholder {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 100;
    font-size: 13px;
    color: #8E8E93;
    opacity: 1;
  }

  /* 個人情報同意エリア */
  .privacy-consent {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 25px;
  }

  .consent-checkbox-label {
    display: inline-flex;
    align-items: flex-start;
    cursor: pointer;
    user-select: none;
  }

  .consent-checkbox {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
  }

  /* 丸型背景 */
  .checkbox-custom {
    width: 16px;
    height: 16px;
    background-color: #8E8E93;
    border-radius: 50%;
    position: relative;
    display: inline-block;
    flex-shrink: 0;
    margin-right: 8px;
    margin-top: 2px;
    box-sizing: border-box;
    transition: background-color 0.2s ease;
  }

  /* チェックマーク */
  .checkbox-custom::after {
    content: "";
    position: absolute;
    opacity: 1;
    top: 44%;
    left: 50%;
    width: 4px;
    height: 7px;
    border: solid #FFFFFF;
    border-width: 0 1px 1px 0;
    transform: translate(-50%, -50%) rotate(45deg);
    box-sizing: border-box;
  }

  .consent-checkbox-label:hover .checkbox-custom {
    opacity: 0.7;
    transition: opacity 0.2s ease, background-color 0.2s ease;
  }

  .consent-checkbox:checked+.checkbox-custom {
    background-color: #D95A16;
  }

  .consent-text {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 11px;
    line-height: 16px;
    color: #292929;
  }

  .privacy-link {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 11px;
    color: #8E8E93;
    text-decoration: underline;
  }

  .privacy-link:hover {
    color: #D95A16;
    text-decoration: none;
    transition: 0.3s;
  }

  /* 送信ボタンエリア */
  .form-submit-wrap {
    width: 100%;
    text-align: center;
    margin-top: 10px;
  }

  /* ボタン本体 */
  .submit-btn {
    width: 100%;
    height: 60px;
    padding: 0;
    background-color: #D95A16;
    opacity: 0.2;
    border: none;
    border-radius: 2px;
    box-sizing: border-box;
    cursor: not-allowed;

    color: #FFFFFF;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1;
    text-align: center;

    transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
  }

  .submit-btn.is-active {
    opacity: 1;
    cursor: pointer;
  }

  .submit-btn.is-active:hover {
    transform: translateY(-2px);
    opacity: 0.9;
    box-shadow: 0 4px 8px rgba(217, 90, 22, 0.3);
  }

  .submit-btn.is-active:active {
    transform: translateY(-0.5px);
  }


  /* =======================================
          内容確認
  ========================================== */

  /* ラベル領域の幅と両端揃え（左：テキスト / 右：必須バッジ） */
  .contact-form .form-grid .form-label {
    justify-content: start;
    gap: 20px;
  }

  .confirm-grid .form-label {
    padding-left: 0;
    font-size: 15px;
    font-weight: 500;
  }

  /* 入力値の表示エリア調整 */
  .contact-form .form-grid .confirm-value {
    padding: 6px 0;
    font-size: 16px;
  }

  /* お問い合わせ内容（改行をそのまま反映） */
  .contact-form .form-grid .confirm-value--textarea {
    white-space: pre-wrap;
  }

  .form-grid.confirm-grid {
    padding: 0 16px;
    box-sizing: border-box;
  }

  /* =========================================
          問い合わせありがとう
   ========================================== */

  .thanks-lead-wrapper {
    margin-top: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
  }

  /* タイトル領域 */
  .thanks-title-wrap {
    margin-bottom: 0 auto 15px auto;
    text-align: center;
  }

  /* タイトルテキスト */
  .thanks-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 100;
    font-size: 24px;
    line-height: 1.2;
    color: #D95A16;
    margin: 0 auto;
    margin-bottom: 30px;
  }

  /* 注記1行目 */
  .thanks-note-1 {
    font-size: 14px;
    line-height: 1.3;
    color: #292929;
    margin: 0;
  }

  /* 注記2行目 */
  .thanks-note-2 {
    font-size: 11px;
    line-height: 1.3;
    color: #636363;
    margin: 0;
  }

  /* 送信完了ページのボタン配置エリア */
  .thanks-btn-wrap {
    margin-top: 40px;
    text-align: center;
  }

  /* 控えめで上品なサイズのトップ戻りボタン */
  .btn-back-top {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 240px;
    height: 52px;
    background-color: #D95A16;
    color: #FFFFFF;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 15px;
    text-decoration: none;
    border-radius: 4px;
    transition: opacity 0.3s ease;
  }

  .btn-back-top:hover {
    opacity: 0.85;
  }

  /* =========================================
          【RECRUIT】TOPページ
  ========================================== */

  .entry-hero,
  .interview-hero,
  .application-hero {
    height: 287px;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    box-sizing: border-box;
    padding: 0 16px;
  }

  .entry-hero .title-container,
  .interview-hero .title-container,
  .application-hero .title-container {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    box-sizing: border-box;
  }

  .entry-hero .page-hero-content,
  .interview-hero .page-hero-content,
  .application-hero .page-hero-content {
    position: static;
    width: 100%;
    height: auto;
    margin: 0;
    flex-direction: column;
    align-items: flex-start;
    padding: 0 0 16px 0;
    box-sizing: border-box;
  }

  /*  ヒーロー内インナー */
  .entry-hero .entry-hero-inner,
  .interview-hero .interview-hero-inner,
  .application-hero .application-hero-inner {
    gap: 0;
    padding: 0;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 10px;
  }

  /* 英語タイトル */
  .entry-hero-title-en,
  .interview-hero-title-en,
  .application-hero-title-en {
    font-size: 40px;
    min-height: 40px;
    -webkit-text-stroke: 3px #FFFFFF;
    margin-bottom: -3px;
  }

  /* 日本語タイトル */
  .entry-hero-title-jp,
  .interview-hero-title-jp,
  .application-hero-title-jp {
    font-size: 16px;
    font-weight: normal;
    margin: 0;
  }


  /* ==========================================
      Hero Section
   ========================================== */

  .recruit-hero {
    width: 100%;
    min-height: 665px;
    box-sizing: border-box;
    padding: 0;
  }

  .recruit-hero-inner {
    width: 100%;
    min-height: 665px;
    padding: 0 0 0 16px;
    box-sizing: border-box;
  }

  .typewriter-container {
    width: 100%;
    height: auto;
    margin-bottom: 11px;
  }

  .typewriter-text {
    font-size: 0;
    line-height: 1.4;
    margin: 0;
  }

  .typewriter-line1 {
    display: block;
    font-size: 20px;
    line-height: 1.4;
  }

  .typewriter-line {
    display: block;
    font-size: 34px;
    line-height: 1.4;
  }

  .btn-entry {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 343px;
    height: 59px;
    background-color: #D95A16;
    text-decoration: none;
    box-sizing: border-box;
    transition: opacity 0.3s ease;
    padding: 10px 25px;
  }

  .btn-entry-arrow {
    width: 90px;
    margin-left: 0;
    display: block;
  }

  /* ==========================================
      Concept Section
    ========================================== */

  .recruit-concept-section {
    padding: 80px 0;
    min-height: 776.5px;
  }

  .recruit-concept-header {
    max-width: 100%;
    padding: 0 16px;
  }

  .recruit-concept-catch-wrap {
    width: 100%;
  }

  .recruit-concept-catch-wrap {
    margin: 0 auto;
    text-align: center;
  }

  .recruit-concept-catch .catch-small {
    font-size: 18px;
  }

  .recruit-concept-catch .catch-large {
    font-size: 28px;
  }

  .recruit-concept-divider {
    max-width: 100%;
  }

  .recruit-concept-header {
    min-height: 193px;
  }

  .recruit-concept-body-wrap {
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    min-height: auto;
    margin-top: 30px;
  }

  .recruit-concept-body p {
    font-size: 14px;
    line-height: 24px;
    margin-bottom: 20px;
  }

  /* ==========================================
      Environment Section - カードが1列に
    ========================================== */

  .recruit-env-section {
    padding: 80px 16px;
  }

  .section-title {
    font-size: 28px;
    line-height: 1.4;
  }

  .section-subtitle-jp {
    font-size: 14px;
  }

  .recruit-concept-sub-wrap .section-subtitle-jp {
    text-align: center;
  }

  .env-content-container {
    max-width: 100%;
    min-height: auto;
    margin-top: 30px;
  }

  /* カードを縦に積む */
  .env-card-wrapper {
    flex-direction: column;
    gap: 30px;
    width: 100%;
  }

  .env-card {
    width: 100%;
    min-height: auto;
    padding: 25px 20px;
  }

  .env-card-img-wrap {
    margin-bottom: 30px;
  }

  .env-card-title {
    width: 100%;
    font-size: 20px;
    line-height: 28px;
    margin-bottom: 20px;
  }

  .env-card-desc {
    width: 100%;
    font-size: 13px;
    line-height: 22px;
    margin-bottom: 20px;
    text-align: left;
  }

  .btn-env-more {
    width: 100%;
  }

  .btn-env-sub {
    width: 100%;
    font-size: 12px;
  }

  .btn-env-main {
    font-size: 20px;
  }

  .btn-env-arrow {
    width: 50px;
  }

  /* ==========================================
      Interview Section 
    ========================================== */
  .recruit-interview-section {
    padding: 80px 16px;
  }

  .section-header {
    width: 100%;
    padding: 0;
  }

  .section-title {
    font-size: 28px;
  }

  .recruit-interview-sub {
    font-size: 14px;
  }

  .recruit-interview-content {
    max-width: 100%;
    min-height: auto;
    margin-top: 40px;
  }

  /* グリッドを縦に積む */
  .recruit-interview-grid {
    flex-direction: column;
    min-height: 350px;
    width: 100%;
  }

  /* カード全体を縦方向に */
  .interview-card {
    width: 100%;
    height: auto;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 20px;
  }

  /* 画像と情報を縦に */
  .interview-thumb {
    width: 200px;
    height: 200px;
  }

  .interview-info {
    width: 100%;
    max-width: 450px;
    text-align: left;
    align-items: stretch;
  }

  .interview-more {
    width: 100%;
  }

  .interview-quote {
    width: 100%;
    height: 100%;
    color: #292929;
    font-size: 16px;
    line-height: 28px;
    margin-bottom: 10px;
  }

  .interview-meta {
    width: 100%;
    font-size: 12px;
    margin-bottom: 10px;
  }

  /* =========================================
          RECRUIT 代表メッセージ
   ========================================== */

  section#recruit-message.recruit-message-section {
    padding: 80px 16px;
  }

  .recruit-message-section .section-container {
    margin-bottom: 25px;
  }

  .recruit-message-container {
    padding: 0;
  }

  .recruit-message-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    row-gap: 25px;
  }

  .message-left-catch {
    width: 343px;
    min-height: 58px;
    font-size: 20px;
    line-height: 1.4;
  }

  .message-photo-wrap {
    width: 100%;
    aspect-ratio: 343 / 228;
    height: auto;
    margin: 0 auto;
  }

  .message-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .message-left-catch,
  .message-applicant-card,
  .recruit-message-right,
  .message-sub-title,
  .message-text,
  .applicant-card-label,
  .applicant-card-text {
    width: 100%;
  }

  h4.message-sub-title {
    font-size: 20px;
    line-height: 30px;
  }

  .message-block.block-top {
    margin-bottom: 25px;
  }

  p.message-text {
    margin-bottom: 12px;
  }

  .message-block.block-mid {
    margin-bottom: 25px;
  }

  .message-applicant-card {
    max-width: 400px;
    padding: 12.5px;
    margin: 0 auto;
  }

  .applicant-card-label,
  .applicant-card-text {
    margin-bottom: 12px;
    text-align: left;
  }

  .applicant-card-text {
    font-size: 13px;
    line-height: 19px;
    text-align: left;
  }

  /* ===========================================
          【INTERVIEW】社員インタビュー
   ========================================== */

  /* ヒーロービュー カーソルのサイズ調整 */
  .entry-hero-title-en.is-typing::after,
  .interview-hero-title-en.is-typing::after,
  .application-hero-title-en.is-typing::after {
    width: 2px;
    height: 1em;
    margin-left: 4px;
  }

  /* =========================================
          インタビュー
   ========================================== */

  .is-custom-interview .interview-quote {
    display: none;
  }

  /* グリッドを2カラム（1,2が上、3,4が下：12/34の並び）にする */
  .is-custom-interview .recruit-interview-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    width: 100%;
    max-width: 100%;
    margin-top: 20px;
  }

  /* カード内「写真 → 入社年・部署・名前 → READ MORE」の並びに */
  .is-custom-interview .interview-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    height: auto;
    box-sizing: border-box;
  }

  .is-custom-interview .interview-info {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .is-custom-interview .interview-thumb {
    width: 163.5px;
    height: 163.5px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    margin-bottom: 0;
  }

  .is-custom-interview .interview-quote {
    display: none;
  }

  .is-custom-interview .interview-meta {
    width: 100%;
    height: auto;
    font-size: 13px;
    line-height: 1.4;
    margin: 0 0 8px 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    text-align: center;
  }

  .is-custom-interview .interview-more {
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 8px;
  }

  .is-custom-interview .interview-date-dep {
    font-size: 13px;
    margin-bottom: 4px;
  }

  .is-custom-interview .interview-name {
    font-size: 16px;
  }

  .is-custom-interview .interview-more {
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0;
  }


  /* ========================================
          1日のスケジュール
  ========================================== */

  section.schedule-section {
    min-height: auto;
    padding: 80px 16px;
    box-sizing: border-box;
  }

  section.schedule-section .schedule-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
  }

  /* 【左列】写真＆テキストブロックの幅を100%に */
  .schedule-left {
    width: 100%;
  }

  .interview-name-tag {
    position: absolute;
    bottom: 15px;
    left: 0;
    width: auto;
    padding: 8px 20px;
    background-color: #1C236D;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
  }

  .schedule-left-block,
  .schedule-img-box,
  .schedule-img-box img,
  .schedule-text-box {
    width: 100%;
  }

  .schedule-img-box {
    height: auto;
    aspect-ratio: 479 / 286;
    margin-bottom: 25px;
  }

  /* 【右列グループ】全体の幅を100%に */
  .schedule-right-group {
    width: 100%;
    flex-direction: column;
    margin-top: 25px;
    align-items: center;
  }

  /* 「一日のスケジュール」を横書きに変更 */
  .schedule-vertical-title {
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    width: 100%;
    font-size: 24px;
    line-height: 1.4;
    text-align: center;
    margin-bottom: 30px;
  }

  /* スマホ用ラッパー */
  .schedule-timeline-wrapper {
    width: 100%;
    flex-direction: column;
  }

  /* 左に時間、右にカードを横並びにするエリア */
  .schedule-center {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 15px;
    position: relative;
  }

  /* タイムライン */
  .schedule-timeline {
    width: 40px;
    min-height: auto;
    display: flex;
    flex-direction: column;
    padding: 0;
  }

  /* カード側の幅をスマホ画面に合わせて可変または100%に */
  .schedule-right {
    flex: 1;
    width: 100%;
    min-height: auto;
    padding-top: 10px;
    padding-bottom: 0;
  }

  .schedule-card {
    width: 100%;
    height: 80px;
    min-height: 80px;
    padding: 0 20px;
    font-size: 16px;
    margin-bottom: 20px;
  }

  .timeline-time {
    width: 56px;
    height: auto;
    font-size: 15px;
    margin-bottom: 10px;
  }

  .timeline-line {
    width: 1px;
    height: 56px;
    background-color: #1C236D;
    border-radius: 1px;
    margin-bottom: 10px;
  }

  /* 「休日の過ごし方」 */
  .schedule-holiday-box {
    width: 100%;
    left: 50%;
    right: 50%;
    margin: -15px auto 0;
    height: auto;
    padding: 25px 16px;
  }

  .holiday-text {
    font-size: 13px;
    text-align: left;
  }

  .schedule-heading-mincho {
    font-size: 20px;
    line-height: 30px;
    letter-spacing: -0.05em;
    margin-bottom: 12px;
  }

  section.schedule-section.is-even .schedule-container {
    flex-direction: column;
  }


  /* ========================================
          【APPLICATION】募集要項
  ========================================== */

  .application-content-section {
    width: 100%;
    max-width: 100%;
    padding: 80px 16px;
    box-sizing: border-box;
  }

  .application-content-section .section-container {
    padding: 0;
    margin-bottom: 25px;
  }

  .application-container {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }

  .application-inner {
    width: 100%;
  }

  .application-list {
    width: 100%;
  }

  .application-row {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 15px 0;
    margin: 0;
    border-bottom: 1px solid #e0e0e0;
  }

  .application-row:last-child {
    border-bottom: none;
  }

  .application-term {
    width: 100%;
    font-size: 18px;
    margin-bottom: 12.5px;
    margin-right: 0;
    color: #9a9a9a;
  }

  .application-row:not(:nth-child(4)):not(:nth-child(8)):not(:nth-child(9)):not(:last-child) .application-desc {
    line-height: 24px;
  }

  .application-desc {
    width: 100%;
    font-size: 16px;
    line-height: 24px;
  }

  .application-desc--cols {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
  }

  .welfare-col {
    width: 100%;
  }

  .application-action {
    width: 100%;
    margin-top: 30px;
    padding: 0 0 30px 0;
    display: flex;
    justify-content: center;
  }

  .btn-application-entry {
    width: 100%;
    max-width: 100%;
    height: auto;
    padding: 16px;
    display: flex;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    align-items: center;
    gap: 12px;
  }

  .btn-entry-content {
    flex: 1;
    width: auto;
  }

  .btn-entry-en {
    width: auto;
    font-size: 24px;
  }

  .btn-entry-jp {
    width: auto;
    font-size: 16px;
  }

  .btn-entry-arrow-svg {
    width: 90px;
    height: 14px;
    flex-shrink: 0;
  }

  /* ========================================
          【ENTRY】エントリーフォーム
  ========================================== */

  .contact-section .section-container {
    padding: 0 0 25px 0;
  }

}