@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&family=Noto+Serif+JP:wght@300;400;500;700&display=swap');
/*
font-family: 'Noto Sans JP', sans-serif;
font-family: 'Noto Serif JP', serif;
*/
:where(h1, h2, h3, h4, h5, h6) {
  margin: 0;            /* 既定の上下マージンを解除 */
  font: inherit;        /* 太字やサイズなどまとめて継承 */
  line-height: inherit; /* 行高を親から継承 */
}

h1,h2,h3,h4,h5,h6,p,ul,ol,dl {
	margin-top: 0;
	margin-bottom: 0;
}

a img{
	border: 0;
}

table {
	border-collapse:separate;
	border-spacing: 0;
}

caption, th, td {
	font-weight: normal;
	text-align: left;
}

hr {
	display: none;
}

ul {
	list-style-type: none;
	margin: 0px;
	padding: 0px;
}

li {
	margin: 0px;
	padding: 0px;
}

h1 {
	margin: 0px;
}

h2 {
	margin: 0px;
}

.Sp { display: none; }

@media (max-width: 768px){
    .Pc { display: none; }
    .Sp { display: block; }
}

:root { --header-h: 80px; --brand-red:#d82323; }

/* ===== Base ===== */
*,*::before,*::after { box-sizing: border-box; }
body { margin: 0; font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans JP",sans-serif; color:#111; }
a { color: inherit; text-decoration: none; }
.container { padding: 80px 16px; max-width: 1000px; margin: 0 auto; }

/* ===== Header ===== */
.site-header{
  position: fixed; inset: 0 0 auto 0; z-index: 9999;
  background: transparent;
  transition: background-color .2s ease, box-shadow .2s ease, color .2s ease;
  padding-top: env(safe-area-inset-top);
}
.site-header .inner{
  height: var(--header-h);
  max-width: 1200px; margin: 0 auto; padding: 0 20px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}

/* 初期＝透明＆白文字 */
header.site-header:not(.is-scrolled):not(.is-open) .nav a{ color:#fff; }
header.site-header:not(.is-scrolled):not(.is-open) .hamburger__bar{ background:#fff; }

/* スクロール or 開＝白背景＆黒文字 */
.site-header.is-scrolled,
.site-header.is-open{ background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.08); }
.site-header.is-scrolled .nav a,
.site-header.is-open .nav a{ color:#111; }

/* ロゴ（2枚切替） */
.logo{ display:flex; align-items:center; }
.logo-img{ height:36px; width:auto; display:block; }
.logo-img--scrolled{ display:none; }
.site-header.is-scrolled .logo-img--top,
.site-header.is-open .logo-img--top{ display:none; }
.site-header.is-scrolled .logo-img--scrolled,
.site-header.is-open  .logo-img--scrolled{ display:block; }

/* Nav（PC） */
.nav{ flex:1; display:flex; align-items:center; justify-content:center; gap:40px; letter-spacing:.04em; }
.nav a{ font-weight:600; text-decoration:none; }
.nav a:hover{ text-decoration: underline; }

/* 右側ツール（PC表示） */
.right-tools{ display:flex; align-items:center; gap:16px; margin-left:8px; }
.cta-btn{
  display:inline-block; padding:10px 20px; border-radius:6px;
  background:var(--brand-red); color:#fff; font-weight:700;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
}
.cta-btn:hover{ filter:brightness(.95); }
a.cta-btn,
a.cta-btn:link,
a.cta-btn:visited,
a.cta-btn:hover,
a.cta-btn:focus,
a.cta-btn:active {
  color: #ffffff !important;
  text-decoration: none; /* 下線消す */
}
.sns-ig img{ width:28px; height:auto; display:block; }

/* ハンバーガー（PC非表示） */
.hamburger{ display:none; width:54px; height:42px; border:0; border-radius:4px; background:var(--brand-red); }
.hamburger__bar{ width:26px; height:2px; background:#fff; border-radius:2px; transition: transform .18s ease, opacity .18s ease; }

/* ===== Hero ===== */
.hero-video{ position:relative; min-height:100vh; min-height:100svh; width:100%; overflow:hidden; }
.hero-video__media{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero-video__overlay{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom, rgba(0,0,0,.55) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.55) 100%);
}
:target{ scroll-margin-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-data: reduce){
  .hero-video__media{ display:none; }
  .hero-video{ background:url("../../images/hero-poster.jpg") center/cover no-repeat; }
}

/* ============================
   Hero center logo overlay
   ============================ */
.hero-logo{
  position: absolute;
  inset: 0;                      /* セクション全体に敷く */
  display: grid;
  place-items: center;           /* ど真ん中配置 */
  z-index: 2;                    /* 動画(0)・オーバーレイ(1)より前面 */
  pointer-events: none;          /* 背面クリックを妨げない */
}

.hero-logo__wrap{
  position: relative;
  display: inline-block;         /* 画像の実寸幅にフィットさせる */
}

.hero-logo__img{
  display: block;
  width: clamp(220px, 40vw, 520px);  /* PC基準の可変幅 */
  height: auto;
}

/* スマホは少し大きめ表示に調整（任意） */
@media (max-width: 768px){
  .hero-logo__img{
    width: clamp(180px, 62vw, 380px);
  }
}

/* 中央ライン（ロゴの中央に重ねる） */
.hero-logo__line{
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  background: #ff0000;           /* 指定色 */
  transform: translateY(-50%) scaleX(0);  /* 左端から伸ばす */
  transform-origin: left center;
  z-index: 3;

  /* ページ読み込み時に一度だけ描画 */
  animation: hero-line-draw 1.2s ease-out .2s forwards;
}

/* 動きが苦手な設定の配慮 */
@media (prefers-reduced-motion: reduce){
  .hero-logo__line{
    animation: none;
    transform: translateY(-50%) scaleX(1);
  }
}

/* 左→右へ横ラインを描く */
@keyframes hero-line-draw{
  to { transform: translateY(-50%) scaleX(1); }
}

/* HeroロゴだけPC/SP切替（他要素への影響なし） */
.hero-logo__img.Pc { display: block; }
.hero-logo__img.Sp { display: none; }

@media (max-width: 767.98px){
  .hero-logo__img.Pc { display: none; }
  .hero-logo__img.Sp { display: block; }
}

/* PC/SPの表示切替（未設定なら念のため） */
.hero-logo__img.Pc { display: block; }
.hero-logo__img.Sp { display: none; }
@media (max-width: 767.98px){
  .hero-logo__img.Pc { display: none; }
  .hero-logo__img.Sp { display: block; }
}

/* --- ここから要望対応 --- */
/* PCではロゴ幅を約820pxに（狭い画面でははみ出さないよう保険） */
@media (min-width: 768px){
  .hero-logo__img.Pc{
    width: 820px;
    max-width: 90vw;   /* 画面が狭い時の逃げ */
    height: auto;
  }

  /* 赤い2pxラインはPC時のみ中央より30px下げる */
  .hero-logo__line{
    top: calc(50% + 50px); /* もともとの中央(top:50%)から+30px */
    transform: translateY(-50%) scaleX(0);  /* アニメ基準はそのまま */
  }
}

/* SP側のロゴサイズはそのまま（必要なら微調整）*/
@media (max-width: 767.98px){
  .hero-logo__img.Sp{ width: clamp(180px, 62vw, 380px); height: auto; }
}

/* ===== Desktop guard ===== */
@media (min-width:1025px){
  /* PCではSP装飾を一切出さない */
  .hamburger{ display:none !important; }
  .spmenu-bottom{ display:none !important; }
  .nav{ position: static !important; inset:auto !important; transform:none !important;
        flex-direction:row !important; background:transparent !important; pointer-events:auto !important; }
  .nav > a{ background:transparent !important; box-shadow:none !important; }
  .nav::before{ content:none !important; }        /* 縦ロゴの疑似要素を無効化 */
  .nav .en{ display:none !important; }            /* ★PCは英字ラベルを非表示 */
}

/* ===== Smartphone (≤1024px) ===== */
@media (max-width:1024px){

  /* ハンバーガー：赤い四角＋白3本線 */
  .hamburger{
    display:inline-flex !important;
    align-items:center; justify-content:center; flex-direction:column;
    gap:4px; width:54px; height:42px; background:var(--brand-red); z-index:10002; padding:0;
  }
  .hamburger__bar{ margin:0; }

  /* 右ツールはSPでは非表示 */
  .right-tools{ display:none; }

  /* メニュー閉：上に隠す／開：全画面オーバーレイ */
  .nav{
    position:fixed; inset:0; transform: translateY(-100%);
    flex-direction:column; align-items:center; gap:20px;
    padding: calc(var(--header-h) + 24px) 20px 100px;
    transition: transform .25s ease; pointer-events:none;
    background: transparent;
  }
  .site-header.is-open .nav{
    transform: translateY(0); pointer-events:auto;
    background-color: #d21d26;
    background-image: url("../../images/common/menu_sp_back.png");
    background-repeat: no-repeat;
    background-position: top left;
    z-index:10000;
  }

  /* 左の縦ロゴ（開時のみ） */
    /*
  .site-header.is-open .nav::before{
    content: "MASUTOMI KOGYO";
    position: fixed; left: 20px; top: calc(var(--header-h) + 8px);
    color:#fff; writing-mode: vertical-rl; text-orientation: mixed;
    letter-spacing:.08em; font-weight:800; font-size:18px; opacity:.95; z-index:10001;
  }
    */

  /* メニュー項目（開時のみ） */
  .site-header.is-open .nav > a{
    width: min(280px, 84vw);
    display:flex; align-items:center; gap:12px;
    padding:12px 14px; border-radius:10px;
    background: rgba(0,0,0,.16); color:#fff; text-decoration:none;
    box-shadow:0 4px 14px rgba(0,0,0,.10);
  }
  .site-header.is-open .nav > a .ja{ font-weight:700; }
  .site-header.is-open .nav > a .en{ font-size:12px; opacity:.9; margin-left:6px; }
  .site-header.is-open .nav > a::before{ content:"›"; font-size:18px; line-height:1; color:#fff; opacity:.95; margin-right:2px; }

  /* SPメニュー下部（開時のみ） */
  .site-header.is-open + .spmenu-bottom{
    position: fixed; left:0; right:0; bottom:18px;
    display:grid; place-items:center; gap:16px; padding:0 20px;
    z-index:10001;
  }

  /* Xアニメ（開時） */
  .site-header.is-open .hamburger__bar:nth-child(1){ transform: translateY(6px) rotate(45deg); }
  .site-header.is-open .hamburger__bar:nth-child(2){ opacity:0; }
  .site-header.is-open .hamburger__bar:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
}

/* 初期は非表示 */
.spmenu-bottom { display: none; }

@media (max-width:1024px){
  /* メニューを開いたときだけ表示（子孫セレクタ） */
  .site-header.is-open .spmenu-bottom{
    position: fixed; left:0; right:0; bottom:18px;
    display:grid; place-items:center; gap:16px; padding:0 20px; z-index:10001;
  }
  .site-header.is-open .spmenu-bottom .sns-ig img,
  .site-header.is-open .spmenu-bottom .spmenu-logo{ filter: brightness(0) invert(1); }
  .site-header.is-open .spmenu-bottom .sns-ig img{ width:28px; height:auto; display:block; }
  .site-header.is-open .spmenu-bottom .spmenu-logo{ height:28px; width:auto; display:block; }
  .site-header.is-open .spmenu-bottom .spmenu-copy{ color:#fff; font-size:10px; opacity:.85; text-align:center; }
}

/* --- FIX: sp header overflow / hamburger missing (replace previous fix) --- */
@media (max-width:1024px){

  /* まず横スクロールを根こそぎ封じる */
  html, body { overflow-x: clip; }  /* 古い環境なら hidden でもOK */

  /* ヘッダー器は端まで。横はみ出しは切る */
  .site-header{ width:100%; overflow-x: clip; }

  /* 内側コンテナを画面幅にフィット */
  .site-header .inner{ max-width:100%; padding: 0 12px; }

  /* ロゴ＆ハンバーガーは固定幅のまま */
  .logo, .hamburger{ flex: 0 0 auto; }

  /* ここがポイント：100vw は使わない（スクロールバー分ではみ出す） */
  .nav{
    /* position:fixed; inset:0; は既存どおりでOK */
    width: 100%;          /* ← 100vw から修正 */
    max-width: 100%;
    margin: 0;            /* 念のため */
    left: 0; right: 0;    /* 明示しておくと安心 */
  }
}

/* reveal の初期オフセットで横にはみ出さないように（SPだけ無効） */
@media (max-width:768px){
  .reveal.fade-left,
  .reveal.fade-right{
    transform: translateX(0);  /* 初期オフセットを0に */
  }
}

@media (min-width:1025px){
  .spmenu-bottom{ display:none !important; }
}

.top-philosophy {
  width: 100%;
  max-width:1200px;
  padding: 150px 0px;
  margin: 0 auto;
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
  font-size: 34px;
  line-height: 55px;
  text-align: center;
}

@media (max-width: 768px) {
    .top-philosophy {
      width: 98%;
      max-width:98%;
      padding: 40px 10px;
      margin: 0 auto;
      font-family: 'Noto Serif JP', serif;
      font-weight: 400;
      font-size: 17px;
      line-height: 28px;
      text-align: left;
    }
}
section#createvalue {
    padding-bottom: 200px;
}

section#createvalue .createvalueArea {
  width: 100%;
  max-width:1920px;
  margin: 0 auto;
  padding: 150px 0px 0px;
  background-image: url("../../images/top/image02.png");
  background-position: left top;
  background-repeat: no-repeat;
}

section#createvalue .createvalueBox {
  position: relative;
  width: 100%;
  height: 600px;
  max-width:1200px;
  margin: 0 auto;
  background-image: url("../../images/top/topimage01.jpg");
  background-position: right top;
  background-repeat: no-repeat;
}

section#createvalue .createvalueAbout {
    position: absolute;
    top: 0px;
    right: 175px;
}

section#createvalue .createvalueMore {
    position: absolute;
    width: 860px;
    bottom: 0px;
    right: 20px;
    font-family: 'Noto Serif JP', serif;
    font-size: 34px;
    line-height: 55px;
    font-weight: 400;
    padding-bottom: 10px;
    color: #FFFFFF;
}

.createvalueMore ul {
  display: flex;          /* 横並びにする */
  align-items: flex-end;    /* 縦下に揃える*/
  list-style: none;       /* liの●を消す */
  padding: 0;
  margin: 0;
}

.createvalueMore ul li:first-child {
  width: 690px;           /* 1つ目のliを固定幅に */
}

.createvalueMore ul li:last-child {
  margin-left: auto;      /* 右端に寄せる（必要なら） */
}

section#technology .technologyArea {
  width: 100%;
  max-width:1920px;
  margin: 0 auto;
  padding: 0px 0px 210px;
  background-image: url("../../images/top/image04.png");
  background-position: right bottom;
  background-repeat: no-repeat;
}

section#technology .technologyBox {
  position: relative;
  width: 100%;
  height: 600px;
  max-width:1200px;
  margin: 0 auto;
  background-image: url("../../images/top/topimage03.jpg");
  background-position: left top;
  background-repeat: no-repeat;
}

section#technology .technologyContent {
    position: absolute;
    top: 0px;
    left: 50px;
}

section#technology .technologyMore {
    position: absolute;
    width: 530px;
    bottom: 20px;
    left: 150px;
    font-family: 'Noto Serif JP', serif;
    font-size: 34px;
    line-height: 55px;
    font-weight: 400;
    color: #FFFFFF;
}
/* ===== Scroll Reveal base ===== */
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-bg { transition: none !important; transform: none !important; opacity: 1 !important; }
}

/* 要素用 */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); will-change: transform, opacity; }
.reveal.is-visible { opacity: 1; transform: none; }

/* 方向バリエーション（必要なものだけ使う） */
/* 動かすのは中の画像（レイアウトは崩さない） */
.reveal.fade-up { 
  opacity: 0;
  transform: translateY(120px);   /* ← 下から持ち上げたい距離（80〜120pxで調整） */
  transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1);
  will-change: transform, opacity;
}
.reveal.fade-dw { 
  opacity: 0;
  transform: translateY(-120px);   /* ← 下から持ち上げたい距離（80〜120pxで調整） */
  transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1);
  will-change: transform, opacity;
}
.reveal.is-visible { 
  opacity: 1; 
  transform: translateY(0);      /* 終点はピッタリ top:0 の位置 */
}
.reveal.fade-left  { transform: translateX(-154px); }
.reveal.fade-right { transform: translateX(154px); }

.reveal.fade-left.is-visible,
.reveal.fade-right.is-visible { transform: translateX(0); }

/* ===== 背景画像のスライド＆フェード（疑似要素で） ===== */
/* 左→右へ入ってくる（createvalue用） */
section#createvalue .createvalueArea { position: relative; background-image: none !important; }
section#createvalue .createvalueArea::before{
  content:""; position:absolute; inset:0;
  background-image: url("../../images/top/image02.png");
  background-position: left top; background-repeat: no-repeat;
  opacity: 0; transform: translateX(-40px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
  will-change: transform, opacity;
}
section#createvalue .createvalueArea.is-visible::before{
  opacity: 1; transform: none;
}

/* 右→左へ入ってくる（technology用） */
section#technology .technologyArea { position: relative; background-image: none !important; }
section#technology .technologyArea::before{
  content:""; position:absolute; inset:0;
  background-image: url("../../images/top/image04.png");
  background-position: right bottom; background-repeat: no-repeat;
  opacity: 0; transform: translateX(40px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
  will-change: transform, opacity;
}
section#technology .technologyArea.is-visible::before{
  opacity: 1; transform: none;
}
@media (max-width: 768px) {
    section#createvalue {
      padding-bottom: 100px;
    }
    
    section#createvalue .createvalueArea {
      width: 100%;
      max-width:100%;
      margin: 0 auto;
      padding: 0px 0px 0px;
    }
    
    section#createvalue .createvalueArea::before{
        content: none !important;   /* ← 疑似要素自体を生成しない */
        background: none !important;
        opacity: 0 !important;
      }
    
    section#createvalue .createvalueAbout{
        transform: scale(.6);
        transform-origin: top right; /* 右上を基準に縮小（right: 5px; を保つ） */
      }

    section#createvalue .createvalueBox {
      position: relative;
      width: 100%;
      max-width:100%;
      height: 380px;
      margin: 0 auto;
      background-image: url("../../images/top/top_photo01_sp.png");
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }

    section#createvalue .createvalueAbout {
        position: absolute;
        top: 0px;
        right: 5px;
    }

    section#createvalue .createvalueMore {
        position: absolute;
        width: 98%;
        top: 260px;
        left: 15px;
        font-family: 'Noto Serif JP', serif;
        font-size: 18px;
        line-height: 32px;
        font-weight: 430;
        padding-bottom: 10px;
        color: #FFFFFF;
    }
    
    .createvalueMore ul {
          display: block;       /* liの●を消す */
          padding: 0;
          margin: 0;
     }
    
    .createvalueMore ul li:first-child {
        text-align: left;
        padding: 0px 0px 50px 10px;
    }
    
    .createvalueMore ul li:last-child {
        text-align: right;
        padding: 0px 20px 0px;
    }
    
    section#technology .technologyArea {
      width: 100%;
      max-width:100%;
      margin: 0 auto;
      padding: 0px 0px 0px;
    }
    
    section#technology .technologyArea::before{
        content: none !important;   /* ← 疑似要素自体を生成しない */
        background: none !important;
        opacity: 0 !important;
    }

    section#technology .technologyBox {
      position: relative;
      width: 100%;
      max-width: 100%;
      height: 420px;
      margin: 0 auto;
      background-image: url("../../images/top/top_photo02_sp.png");
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }
    
    section#technology .technologyContent{
        transform: scale(.6);
        transform-origin: top left; /* 右上を基準に縮小（right: 5px; を保つ） */
    }
    
    section#technology .technologyMore {
        position: absolute;
        width: 98%;
        max-width: 98%;
        top: 210px;
        left: 30px;
        font-family: 'Noto Serif JP', serif;
        font-size: 18px;
        line-height: 32px;
        font-weight: 400;
        color: #FFFFFF;
    }
    .technologyMore ul li:first-child {
        text-align: left;
        padding: 0px 0px 15px 30px;
    }
    
    .technologyMore ul li:last-child {
        text-align: right;
        padding: 0px 20px 0px;
    }
}

.technologyMore ul {
  padding: 0;
  margin: 0;
}

.technologyMore ul li:first-child {
  width: 100%;           /* 1つ目のliを固定幅に */
}

.technologyMore ul li:last-child {
  text-align: right;
  padding-right: 50px;
}

section#toprecruit {
    padding-top: 200px;
}

section#toprecruit .toprecruitArea {
  width: 100%;
  max-width:1920px;
  margin: 0 auto;
  padding: 0px 0px 210px;
}

section#toprecruit .toprecruitBox {
  position: relative;
  width: 100%;
  height: 600px;
  max-width:1400px;
  margin: 0 auto;
  background-image: url("../../images/top/image05.jpg");
  background-position: center;
  background-repeat: no-repeat;
}

section#toprecruit .toprecruitTitle {
    position: absolute;
    top: 0px;
    right: 345px;
}

section#toprecruit .toprecruitMore {
    position: absolute;
    width: 680px;
    top: 20px;
    left: 150px;
    font-family: 'Noto Serif JP', serif;
    font-size: 34px;
    line-height: 55px;
    font-weight: 400;
    color: #FFFFFF;
}

.toprecruitMore ul {
  padding: 0;
  margin: 0;
}

.toprecruitMore ul li:first-child {
  width: 100%;           /* 1つ目のliを固定幅に */
}

.toprecruitMore ul li:last-child {
  text-align: left;
}

.btn-readmore {
  display: inline-flex;             /* 横並び配置 */
  align-items: center;              /* テキストと矢印を縦中央に */
  background-color: #d32f2f;        /* 背景色（赤） */
  color: #fff;                      /* 文字色（白） */
  padding: 10px 20px;               /* 上下・左右の余白 */
  border-radius: 5px;               /* 角丸 */
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;                  /* フォントサイズ */
  font-weight: 400;                /* 太字 */
  line-height: 16px;
  text-decoration: none;            /* 下線を消す */
  transition: background 0.3s;
}

.btn-readmore::after {
  content: "›";                     /* 矢印（▶でもOK） */
  margin-left: 8px;                 /* テキストとの間隔 */
  font-size: 16px;
}

.btn-readmore:hover {
  background-color: #b71c1c;        /* ホバー時に濃い赤に */
}

section#topinstagram .topinstagramArea {
  width: 100%;
  max-width:1920px;
  margin: 0 auto;
  padding: 0px 0px 200px;
}

section#topinstagram .topinstagramBox {
  width: 100%;
  max-width:1000px;
  margin: 0 auto;
}

@media (max-width: 768px) {
    section#toprecruit {
        padding-top: 150px;
    }
    
    section#toprecruit .toprecruitArea {
      width: 100%;
      max-width: 100%;
      margin: 0 auto;
      padding: 0px 0px 150px;
    }

    section#toprecruit .toprecruitBox {
      position: relative;
      width: 100%;
      height: 250px;
      max-width: 100%;
      margin: 0 auto;
      background-image: url("../../images/top/image05.jpg");
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }

    section#toprecruit .toprecruitTitle {
        position: absolute;
        top: 0px;
        right: 10px;
    }
    section#toprecruit .toprecruitTitle {
        transform: scale(.6);
        transform-origin: top right; /* 右上を基準に縮小（right: 5px; を保つ） */
    }

    section#toprecruit .toprecruitMore {
        position: absolute;
        width: 100%;
        top: -90px;
        left: 10px;
        font-family: 'Noto Serif JP', serif;
        font-size: 18px;
        line-height: 32px;
        font-weight: 400;
        color: #000;
    }
    section#toprecruit .toprecruitMore ul li:first-child {
      padding: 0px 0px 300px 10px;
    }
    
    /*instaarea*/
    section#topinstagram .topinstagramArea {
      width: 100%;
      max-width: 100%;
      margin: 0 auto;
      padding: 0px 0px 100px;
    }

    section#topinstagram .topinstagramBox {
      width: 100%;
      max-width: 96%;
      margin: 0 auto;
      text-align: center;
    }
}

/*共通*/
/*パンくず*/
.breadcrumb-section {
  max-width: 1200px;     /* ページ幅制限 */
  margin: 0 auto;        /* 中央寄せ */
  padding: 10px 20px;
  font-size: 14px;
}

/* 横並び＆折り返し可 */
.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;       /* 折り返し許可 */
  list-style: none;
  padding: 0;
  margin: 0;
}

/* 区切りマーク */
.breadcrumb__item::after {
  content: "＞";
  color: #d21d26;        /* 赤系に色付け */
  margin: 0 0.5em;
}
.breadcrumb__item a,
.breadcrumb__item a:link,
.breadcrumb__item a:visited,
.breadcrumb__item a:hover,
.breadcrumb__item a:focus,
.breadcrumb__item a:active {
  color: #000000 !important;
  text-decoration: none;
}
/* 最後の要素には区切りをつけない */
.breadcrumb__item:last-child::after {
  content: "";
}

/* ---------- レスポンシブ ---------- */
@media (max-width: 768px) {
  .breadcrumb-section {
    padding: 8px 15px;
    font-size: 13px;     /* 文字を少し小さめに */
  }
}

@media (max-width: 480px) {
  .breadcrumb-section {
      display: none;
  }
}

/*アクセス*/
section#topinstagram .topinstagramArea ul {
  padding: 0;
  margin: 0;
}

section#topinstagram .topinstagramArea ul li:first-child {
  padding-bottom: 20px;
  text-align: center;
}

section#topinstagram .topinstagramArea ul li:last-child {
  padding-bottom: 30px;
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px; 
}

section#topaccess .topaccessArea {
  width: 100%;
  max-width:1920px;
  margin: 0 auto;
  padding: 0px 0px 150px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
}

section#topaccess .topaccessBox {
  width: 100%;
  max-width:1100px;
  margin: 0 auto;
}

section#topaccess .topaccessTitle {
  width: 100%;
  max-width:1100px;
  text-align: center;
  margin: 0 auto;
  padding: 20px 0px 15px;
  background-color: #d21d26;
  font-family: 'Noto Serif JP', serif;
  font-size: 33px;
  line-height: 40px;
  font-weight: 400;
  color: #FFFFFF;
}

section#topaccess .topaccessTitle ul li:last-child {
  text-align: center;
  padding-top: 10px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
}

/* Map をレスポンシブに */
section#topaccess .topaccessMap {
    margin-bottom: 40px;
}

@media (max-width: 768px) {
    section#topaccess .topaccessMap iframe {
      width: 100%;
      height: auto;
      aspect-ratio: 1 / 1; /* 近い比率で固定。対応外ブラウザでも width:100% で崩れにくい */
      border: 0;
    }
}

/* ------- PC（デフォルト）横並び ------- */
/* 親はブロック。中央寄せは margin:0 auto でやる */
section#topaccess .topaccessInfo {
  display: block;          /* ← 以前の display:flex を打ち消す */
}

/* ul は1つずつ中央に配置＆縦に積む */
section#topaccess .topaccessInfo ul {
  display: block;          /* ← inline / inline-flex を禁止して縦積み */
  list-style: none;
  padding: 0;
  margin: 0 auto 20px;     /* 中央寄せ & 下に余白 */
  width: fit-content;      /* 中身幅に縮めて中央へ（古い環境なら max-content でも可） */
  /* width: max-content; でもOK */
}

/* li だけ横並び */
section#topaccess .topaccessInfo ul li {
  display: inline-block;   /* 横並び */
  margin: 0 15px 20px;          /* li同士の間隔 */
  white-space: nowrap;     /* 折り返し防止（必要なら） */
}

section#topaccess .topaccessInfo .info-tel {
  font-size: 35px;
  font-weight: 300;
}

section#topaccess .topaccessInfo .info-tel span {
  font-size: 28px;
  margin-right: .4em;
}
/* ------- アクセススマホ（モック通りの配置・サイズ） ------- */
@media (max-width: 768px) {
    section#topaccess .topaccessArea {
      width: 100%;
      max-width: 100%;
      margin: 0 auto;
      padding: 0px 0px 50px;
    }
    
    section#topaccess .topaccessTitle {
      width: 100%;
      max-width: 100%;
      text-align: center;
      margin: 0 auto;
      padding: 20px 0px 15px;
      background-color: #d21d26;
      font-family: 'Noto Serif JP', serif;
      font-size: 20px;
      line-height: 24px;
      font-weight: 400;
      color: #FFFFFF;
    }

    section#topaccess .topaccessTitle ul li:last-child {
      text-align: center;
      padding-top: 10px;
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 11px;
      font-weight: 400;
    }
    
  section#topaccess .topaccessInfo {
    flex-direction: column;
    gap: 20px;
  }
  
  section#topaccess .topaccessInfo ul {
    padding: 0;
    margin: 0 auto 0px;     /* 中央寄せ & 下に余白 */
  }

  section#topaccess .topaccessInfo ul li {
    padding: 0;
    margin: 0 auto 0px;     /* 中央寄せ & 下に余白 */
  }

  /* 住所：左寄せ・通常サイズ */
  section#topaccess .topaccessInfo .info-address {
    width: 300px;
    font-size: 14px;
    line-height: 24px;
    text-align: left;
  }

  /* TEL/FAX：1行ずつ大きく中央 */
  section#topaccess .topaccessInfo .info-tel {
    text-align: center;
  }
  section#topaccess .topaccessInfo .info-tel li {
    font-size: 28px;          /* ここで大きく（好みで25〜28pxに） */
    line-height: 20px;
  }

  /* 営業時間/定休日：横並びで中央 */
  section#topaccess .topaccessInfo .info-hours {
    display: flex;
    justify-content: center;
    gap: 28px;                /* 2項目の余白 */
    font-size: 14px;
    text-align: center;
      padding-top: 20px;
  }
  /* もし2行になって欲しくない場合は余白を縮める */
  /* section#topaccess .topaccessInfo .info-hours { gap: 16px; } */
}

/*下層タイトル*/
.title{
  position:relative;
  display:inline-flex;
  flex-direction:column;
  gap:6px;
  text-align:center;
}

/* 縦線の見た目 */
.title::after{
  content:"";
  position:absolute;
  top:calc(100% + 12px);
  left:50%;
  width:2px;
  height:80px;          /* ←長さ調整 */
  background:#c00;
  transform:translateX(-50%) scaleY(0);
  transform-origin:top;

  /* ① ロード時に必ず一度だけ実行される通常アニメ */
  animation: line-intro 2s ease both;
}

/* ② 対応ブラウザではスクロール連動に“上書き”して再生制御 */
@supports (animation-timeline: view()) {
  .title{
    view-timeline-name: --ttl;
    view-timeline-axis: block;
  }
  .title::after{
    /* スクロール連動のアニメを追加（上の通常アニメと併用OK） */
    animation: line-intro 2s ease both, line-scroll 2s ease both;
    animation-timeline: auto, --ttl;           /* 1本目=通常、2本目=スクロール */
    animation-range: normal, entry 0% cover 100%;
  }
}

/* キーフレーム */
@keyframes line-intro {
  from { transform:translateX(-50%) scaleY(0); }
  to   { transform:translateX(-50%) scaleY(1); }
}
@keyframes line-scroll {
  from { transform:translateX(-50%) scaleY(0); }
  to   { transform:translateX(-50%) scaleY(1); }
}

/* 動きが苦手な人向け配慮 */
@media (prefers-reduced-motion: reduce){
  .title::after{ animation:none !important; transform:translateX(-50%) scaleY(1); }
}

.container {
  text-align: center;
}
.title {
  display: inline-flex;  /* 中身は縦積みのまま */
  flex-direction: column;
  gap: 6px;
}
.title .ja {
    font-family: "Noto Serif JP", serif;
    font-size: 36px;
    font-weight: 400;
}
.title .en {
    color: #d21d26;
}
.container > .title{
  position: relative !important;
  display: inline-flex !important;
  flex-direction: column;
  gap: 6px;
  text-align: center;
}
.container > .title::after{
  content: "";
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  width: 2px;
  height: 80px;                 /* ← 長さ */
  background: #d21d26;          /* ← 色（ブランド赤） */
  transform: translateX(-50%) scaleY(0);
  transform-origin: 50% 0;      /* Safari 対策で明示 */
  will-change: transform;
  animation: line-intro 2s ease forwards !important; /* ← 強制再生 */
}
/* スマホ：TITLE */
@media (max-width: 768px) {
    .title .ja {
        font-family: "Noto Serif JP", serif;
        font-size: 24px;
        font-weight: 400;
    }
    .title .en {
        font-family: 'Noto Sans JP', sans-serif;
        font-size: 11px;
        font-weight: 400;
        color: #d21d26;
    }
}

/* キーフレーム（上から下へ伸びる） */
@keyframes line-intro {
  to { transform: translateX(-50%) scaleY(1); }
}

/* ユーザーが“簡易モーション”設定なら静止表示に */
@media (prefers-reduced-motion: reduce){
  .container > .title::after{
    animation: none !important;
    transform: translateX(-50%) scaleY(1) !important;
  }
}

/*企業挨拶*/
#ceo-mess-Area {
  max-width: 1920px;
  margin: 0 auto;
  padding: 40px 20px;
}

.ceomessBox {
  display: flex;
  justify-content: space-between; /* 左・中央・右を均等配置 */
  align-items: flex-start;
  gap: 20px;                      /* カラム間余白 */
  font-family: 'Noto Serif JP', serif;
}

.ceomessBox .left { flex: 1;   text-align: left; }
.ceomessBox .center { flex: 1.2; text-align: center; }
.ceomessBox .right { flex: 1;  text-align: right; }

.ceomessBox img {
  max-width: 100%;
  height: auto;
  display: block;
}

.ceomessBox ul { list-style: none; padding: 0; margin: 0; }
.ceomessBox li { 
    margin-bottom: 1em;
    text-align: center;
}

.ceomessBox .center ul {
  display: flex;
  flex-direction: column;
  align-items: center; /* 中身をすべて中央揃え */
  text-align: center;  /* テキストも中央寄せ */
  font-family: 'Noto Serif JP', serif;
}

.ceomessBox .center li {
  margin-bottom: 1em;
}

.ceomessBox .center li img {
  display: block;
  margin: 0 auto;  /* 署名画像を中央に */
}

/* 最初の li （キャッチコピー） */
.ceomessBox .center ul li:first-child {
  font-family: "Noto Serif JP", serif;
  font-size: 36px;
  font-weight: 400;
  margin-bottom: 70px;
}

/* 2番目の li （本文） */
.ceomessBox .center ul li:nth-child(2) {
  font-size: 15px;
  line-height: 46px;  /* 行間を指定 */
  margin-bottom: 75px;
}

#ceo-photo-Area {
  max-width: 100%;
  margin: 0 auto 150px;
}

.ceophotoBox {
    max-width: 100%;
    margin: 0 auto;
    background-color: #e6e6e6;
    text-align: center;
}

#ceo-messcha-Area {
  max-width: 1920px;
  margin: 0 auto;
  padding: 40px 20px;
}

.ceochaBox {
  display: flex;
  justify-content: space-between; /* 左・中央・右を均等配置 */
  align-items: center;
  gap: 20px;                      /* カラム間余白 */
  font-family: 'Noto Serif JP', serif;
}

.ceochaBox .left { flex: 1;   text-align: left; }
.ceochaBox .center { flex: 1.2; text-align: center; }
.ceochaBox .right { flex: 1;  text-align: center; }

/* 最初の li （キャッチコピー） */
.ceochaBox .center ul li:first-child {
  font-family: "Noto Serif JP", serif;
  font-size: 36px;
  font-weight: 400;
  margin-bottom: 70px;
}

/* 2番目の li （本文） */
.ceochaBox .center ul li:nth-child(2) {
  font-size: 15px;
  line-height: 46px;  /* 行間を指定 */
  margin-bottom: 75px;
}

#ceo-messcoll-Area {
  max-width: 1920px;
  margin: 0 auto;
  padding: 40px 20px 200px;
}

.ceocollBox {
  display: flex;
  justify-content: space-between; /* 左・中央・右を均等配置 */
  align-items: center;
  gap: 20px;                      /* カラム間余白 */
  font-family: 'Noto Serif JP', serif;
}

.ceocollBox .left { flex: 1;   text-align: center; }
.ceocollBox .center { flex: 1.2; text-align: center; }
.ceocollBox .right { flex: 1;  text-align: left; }

/* 最初の li （キャッチコピー） */
.ceocollBox .center ul li:first-child {
  font-family: "Noto Serif JP", serif;
  font-size: 36px;
  font-weight: 400;
  margin-bottom: 70px;
}

/* 2番目の li （本文） */
.ceocollBox .center ul li:nth-child(2) {
  font-size: 15px;
  line-height: 46px;  /* 行間を指定 */
  margin-bottom: 70px;
}

/* タブレット以下で微調整（任意） */
@media (max-width: 1024px) {
  .ceomessBox { gap: 16px; }
}

/* スマホ：縦並び */
@media (max-width: 768px) {
  #ceo-mess-Area { padding: 24px 16px; }

  .ceomessBox {
    flex-direction: column;   /* 縦並びに */
    align-items: center;      /* 全体を中央に */
    gap: 24px;
  }

  /* 各ブロックは最大幅を制限して中央寄せ */
  .ceomessBox .left,
  .ceomessBox .center,
  .ceomessBox .right {
    flex: none;
    width: min(100%, 680px);
  }
    
   #ceo-photo-Area {
      max-width: 100%;
      margin: 0 auto 80px;
    }

    .ceophotoBox {
        max-width: 100%;
        margin: 0 auto;
        background-color: #e6e6e6;
        text-align: center;
    }
    
    .ceophotoBox img {
        width: 80%;
        height: 80%;
        margin: 0 auto;
        text-align: center;
    }
    
  /* 最初の li （キャッチコピー） */
    .ceomessBox .center ul li:first-child {
      font-family: "Noto Serif JP", serif;
      font-size: 24px;
      font-weight: 400;
      margin-bottom: 40px;
    }

    /* 2番目の li （本文） */
    .ceomessBox .center ul li:nth-child(2) {
      font-size: 13px;
      line-height: 30px;  /* 行間を指定 */
      margin-bottom: 40px;
        text-align: left;
    }

      /* 画像ブロックは中央寄せ */
      .ceomessBox .left,
      .ceomessBox .right {
        text-align: center;
      }

      /* 中央ブロックはそのまま中央揃え（見出し・署名画像も中央） */
      .ceomessBox .center { text-align: center; }

      /* テキストの行間を少し広げて可読性UP（任意） */
      .ceomessBox li { line-height: 1.8; }
    
       #ceo-messcha-Area {
          max-width: 98%;
          margin: 0 auto;
        }

        .ceochaBox {
            display: flex;
            flex-direction: column; /* 縦並びに切り替え */
            text-align: center;
          }

          .ceochaBox .center {
            width: 94%;
            order: 1;  /* 1番目 */
            margin-top: 0;
          }

          .ceochaBox .right {
            display: none;
          }

          .ceochaBox .left {
            order: 3;  /* 3番目 */
            margin-top: 0px;
            text-align: center;
          }

          .ceochaBox .left img {
            width: 95%;       /* 横幅を95%に縮小 */
            max-width: 95%;
            height: auto;
            margin: 0 auto;   /* センター寄せ */
          }

            /* 最初の li （キャッチコピー） */
            .ceochaBox .center ul li:first-child {
              font-family: "Noto Serif JP", serif;
              font-size: 24px;
              font-weight: 400;
              margin-bottom: 40px;
            }

            /* 2番目の li （本文） */
            .ceochaBox .center ul li:nth-child(2) {
              font-size: 13px;
              line-height: 30px;  /* 行間を指定 */
              margin-bottom: 40px;
              text-align: left;
              background-image: url("../../images/message/challenge.png");
              background-position: top right;
              background-size: 20%;
              background-repeat: no-repeat;
            }
    
            #ceo-messcoll-Area {
              max-width: 100%;
              margin: 0 auto;
              padding: 0px 0px 80px;
            }
            .ceocollBox {
              display: block;
              width: 100%;                      /* カラム間余白 */
            }

            .ceocollBox .left { display: none;}
            .ceocollBox .center { width: 100%; }
            .ceocollBox .right { width: 95%; margin: 0 auto; text-align: center; }
            .ceocollBox .right img { width: 95%; height: auto; margin: 0 auto; }

            /* 最初の li （キャッチコピー） */
            .ceocollBox .center ul li:first-child {
              font-family: "Noto Serif JP", serif;
              font-size: 24px;
              font-weight: 400;
              margin-bottom: 40px;
            }

            /* 2番目の li （本文） */
            .ceocollBox .center ul li:nth-child(2) {
              font-size: 13px;
              line-height: 30px;  /* 行間を指定 */
              margin-bottom: 40px;
              text-align: left;
              padding-left: 80px;
              background-image: url("../../images/message/colleague.png");
              background-position: top left;
              background-repeat: no-repeat;
              background-size: 20%;
            }
}

/*会社概要*/
/* 基本レイアウト */
.company-profile {
  max-width: 1200px;     /* 必要なら 1400/1920 に変更 */
  margin: 0 auto;
  padding: 32px 20px;
  box-sizing: border-box;
  color: #222;
  font-size: 16px;
  line-height: 1.8;
}

.profile-list {
  margin: 0;
  padding: 0;
}

.profile-list .row {
  display: grid;
  grid-template-columns: 220px 1fr; /* 左：見出し / 右：内容 */
  gap: 24px;
  padding: 18px 16px;
  border-top: 1px solid #d9d9d9;
  background: #fff;
}

.profile-list .row:last-child {
  border-bottom: 1px solid #d9d9d9;
}

/* 左カラム（見出し） */
.profile-list dt {
  margin: 0;
  font-weight: 600;
  color: #111;
  display: flex;
  align-items: center; /* 複数行でも上揃えにしたい場合は flex-start */
}

/* 右カラム（内容） */
.profile-list dd {
  margin: 0;
}

/* 右カラム内の段落間隔 */
.profile-list dd p {
  margin: 0 0 10px;
}
.profile-list dd p:last-child { margin-bottom: 0; }

/* 細字注記 */
.profile-list small { color: #666; }

/* 視覚的に非表示（スクリーンリーダー用） */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* 特定項目だけ上揃えに */
.profile-list .row.employees,
.profile-list .row.bank,
.profile-list .row.history,
.profile-list .row.address {   /* ← 所在地を追加 */
  align-items: flex-start;
}

/* レスポンシブ（スマホ縦：~768px） */
@media (max-width: 768px) {
  .company-profile { padding: 20px 14px; }

  .profile-list .row {
    grid-template-columns: 1fr;   /* 1カラム化 */
    gap: 10px;
    padding: 14px 12px;
  }

  .profile-list dt {
    font-size: 14px;
    color: #444;
    border-left: 3px solid #ccc;  /* 小見出し感 */
    padding-left: 10px;
    align-items: flex-start;       /* 上揃え */
  }

  .profile-list dd { font-size: 15px; line-height: 1.9; }
}

/* ベース */
.initArea {
  max-width: 1200px; /* 必要に応じて 1400 などに変更 */
  margin: 0 auto;
  padding: 48px 20px 130px;
  color: #0f2230;
  line-height: 1.8;
  box-sizing: border-box;
}

/* スクリーンリーダー用非表示 */
.sr-only {
  position: absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* 3カラム（→タブレット2 → スマホ1） */
.initGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}

/* カード（ul） */
.initCard {
  list-style: none;
  margin: 0;
  padding: 0 24px 24px;
  text-align: center;
}

/* 見出し帯 */
.initCard .cardTitle {
  background: #2f5e7a; /* 画像の青帯に近い色 */
  color: #fff;
  font-weight: 300;
  letter-spacing: .08em;
  padding: 10px 12px;
  margin: 0 auto 20px;
  width: min(90%, 340px);
  border-radius: 2px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
}

/* ロゴ・サムネ */
.initCard .logo img,
.initCard .thumb img {
  max-width: 100%;
  height: auto;
  display: inline-block;
}

/* 余白ルール */
.initCard > li { margin-bottom: 14px; }
.initCard .thumb { margin-top: 8px; }

/* テキスト */
.initCard .lead { font-size: 20px; line-height: 32px; font-weight: 400; }
.initCard .lead.sub { font-weight: 500; color: #5b6b78; }
.initCard .desc { font-size: 15px; text-align: center; margin: 0 auto; width: min(90%, 360px); }
.initCard .descl { font-size: 15px; text-align: left; margin: 0 auto; width: min(90%, 360px); }

/* リンクボタン（テキストリンク風） */
.btn-link {
  display: inline-block;
  border-bottom: 1px solid #2f5e7a;
  text-decoration: none;
  color: #2f5e7a;
  padding-bottom: 2px;
}
.btn-link:hover { opacity: .85; }

/* 画像サイズが大きい列のバランス調整（SDGsの書面画像など） */
.initCard .thumb img { max-width: 260px; }

/* レスポンシブ */
@media (max-width: 1024px) {
  .initGrid { grid-template-columns: repeat(2, 1fr); gap: 36px; }
}

@media (max-width: 768px) {
  .initArea { padding: 32px 16px; }
  .initGrid { grid-template-columns: 1fr; gap: 28px; }
  .initCard { padding: 0 12px 20px; }
  .initCard .desc { width: 100%; text-align: center; }
  .initCard .cardTitle { width: 100%; }
}

/*事業内容*/
/* メインビジュアル */
.depHeadimgArea{
  position: relative;
  width: 100%;
  /* 画像比率に近いアスペクト。高さは画面幅に応じ自動調整 */
  aspect-ratio: 1400 / 391;
  min-height: 240px;               /* 極端に横長でもつぶれないように */
  background:
    url("../../images/department/departmainimg.jpg")
    center center / cover no-repeat;
  overflow: hidden;
}

/* 薄い暗幕（文字の視認性UP） */
.depHeadimgArea::after{
  content:"";
  position: absolute; inset:0;
  background: rgba(0,0,0,.25);
  pointer-events: none;
}

/* 共通：文字 */
.depHeadimgArea h2 {
  position: absolute;
  margin: 0;
  color:#fff;
  text-shadow: 0 2px 8px rgba(0,0,0,.35);
  line-height: 1.2;
  letter-spacing: .02em;
  z-index: 1;
  font-family: "Noto Serif JP", serif;
  font-size: 47px;
  font-weight: 300;
}

.depHeadimgArea h3{
  position: absolute;
  margin: 0;
  color:#fff;
  text-shadow: 0 2px 8px rgba(0,0,0,.35);
  line-height: 1.2;
  letter-spacing: .02em;
  z-index: 1;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 40px;
  font-weight: 300;
}

/* 事業内容（中央） */
.depHeadimgArea h2{
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: clamp(20px, 3.8vw, 47px);
}

/* Department（右下） */
.depHeadimgArea h3{
  right: min(6vw, 64px);
  bottom: min(6vw, 10px);
  font-weight: 300;
  font-size: clamp(22px, 6vw, 66px);
}

/* タブレット以下の微調整 */
@media (max-width: 768px){
  .depHeadimgArea{ min-height: 200px; }
  .depHeadimgArea h3{ right: 20px; bottom: 20px; }
}


/* ========== Departmentページ専用 共通 ========== */
.departmentPage section {
  margin: 80px auto;
  max-width: 1100px;
  padding: 0;
}
.departmentPage img {
  display: block;
  max-width: 100%;
  height: auto;
}
.departmentPage p,
.departmentPage li {
  line-height: 1.85;
  /*color: #3a3a3a;*/
}
.departmentPage ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 見出し（汎用） */
.dep-title {
  font-size: 2rem;
  line-height: 1.35;
  margin: 0 0 18px;
  color: #222;
}
.dep-heading {
  width: 100%;
  background: #b60000;
  color: #fff;
  padding: 12px 20px;
  font-size: 1.6rem;
  margin: 0 0 30px;
  box-sizing: border-box;
}

.dot-list li {
  position: relative;
  padding-left: 1.1em;
  margin: .25em 0;
}
.dot-list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: #444;
}

/* ===== depmArea（1100px固定・中央寄せ） ===== */
.departmentPage .depmArea {
  width: 1100px;
  margin: 0 auto 260px auto;
}
.departmentPage .depmArea .depTop {
  position: relative;
  display: grid;
  grid-template-columns: 58% 42%;
  column-gap: 30px;
  align-items: start;
}
.departmentPage .depmArea .depTop-left figure { margin: 0; }
.departmentPage .depmArea .depTop-right {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.departmentPage .depmArea .dep-title {
  margin: 0 0 18px;
  font-size: 34px;
  line-height: 55px;
  font-weight: 400;
  color: #000;
  text-align: right;
  width: 100%;
  box-sizing: border-box;
  font-family: "Noto Serif JP", serif;
}
.departmentPage .depmArea .depTop-text {
  position: absolute;
  top: 110px;
  right: 0;
  width: 560px;
  padding: 30px;
  background: #d11d26;
  color: #fff;
  z-index: 2;
}
.departmentPage .depmArea .depTop-text p {
  font-size: 28px;
  line-height: 40px;
  margin: 0 0 12px;
  color: #fff;
  font-family: "Noto Serif JP", serif;
}
.departmentPage .depmArea .depTop-text .dot-list li,
.departmentPage .depmArea .depTop-text .dot-list li::before {
  color: #fff;
}

/* --- レスポンシブ調整（depmArea） --- */
@media (max-width: 1024px) {
  .departmentPage .depmArea { width: 100%; padding: 0 20px; }
  .departmentPage .depmArea .depTop { grid-template-columns: 1fr; row-gap: 20px; }
  .departmentPage .depmArea .depTop-right { align-items: flex-start; }
  .departmentPage .depmArea .dep-title { text-align: left; font-size: 28px; }
  .departmentPage .depmArea .depTop-text {
    position: relative; top: auto; right: auto;
    width: 100%; margin-top: 12px;
  }
}
@media (max-width: 640px) {
  .departmentPage .depmArea { width: 90%; margin: 0 auto; padding: 0px 0px 80px; }
  .departmentPage .depmArea .dep-title { font-size: 24px; line-height: 38px; }
  .departmentPage .depmArea .depTop-text { padding: 18px 16px; }
  .departmentPage .depmArea .depTop-text p { font-size: 20px; line-height: 28px; }
}

/* ===== depMiddle（1100px固定・中央寄せ） ===== */
.departmentPage .depMiddle {
  width: 1100px;
  margin: 200px auto 80px auto;
  position: relative;
}
.departmentPage .depMiddle-inner {
  display: grid;
  grid-template-columns: 420px 650px;
  column-gap: 10px;
  align-items: start;
}
/* 左列 */
.departmentPage .depMiddle-heading {
  font-size: 34px;
  color: #000;
  background: none;
  margin: 0 0 40px;
  line-height: 1.3;
  font-family: "Noto Serif JP", serif;
}
.departmentPage .depMiddle-box {
  width: 510px;
  height: 200px;
  background: #d11d26;
  color: #fff;
  padding: 20px 24px;
  box-sizing: border-box;
  margin-bottom: 50px;
  position: relative;
  left: 0;
  z-index: 2;
}
.departmentPage .depMiddle-box p {
  margin: 0;
  font-size: 28px;
  line-height: 1.6;
  color: #fff;
  font-family: "Noto Serif JP", serif;
}
.departmentPage .depMiddle-img03 { margin: 0; position: relative; z-index: 1; }
.departmentPage .depMiddle-img03 img { width: 100%; height: auto; display: block; }
/* 右列 */
.departmentPage .depMiddle-right { width: 650px; }
.departmentPage .depMiddle-img02 {
  margin: 0 0 30px;
  text-align: right;
}
.departmentPage .depMiddle-img02 img {
  display: inline-block;
  width: 100%;
  height: auto;
  vertical-align: top;
  margin-top: 0;
}
.departmentPage .depMiddle-sub {
  width: 650px;
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.departmentPage .depMiddle-sub .subItem { width: 310px; }
.departmentPage .depMiddle-sub .subcap {
  font-size: 17px;
  margin: 0 0 8px;
  color: #000;
}
.departmentPage .depMiddle-sub img { width: 100%; height: auto; display: block; }

/* --- レスポンシブ調整（depMiddle） --- */
@media (max-width: 1024px) {
  .departmentPage .depMiddle { width: 100%; margin: 160px auto 60px; padding: 0 20px; }
  .departmentPage .depMiddle-inner { grid-template-columns: 1fr; }
  .departmentPage .depMiddle-box { width: 100%; height: auto; margin-bottom: 20px; }
  .departmentPage .depMiddle-right,
  .departmentPage .depMiddle-sub { width: 100%; }
  .departmentPage .depMiddle-sub { flex-direction: column; gap: 20px; }
  .departmentPage .depMiddle-sub .subItem { width: 100%; }
}

/* --- レスポンシブ調整（depMiddle） --- */
@media (max-width: 768px) {
  .departmentPage .depMiddle { width: 90%; margin: 0px auto 60px; padding: 0; }
  .departmentPage .depMiddle-inner { grid-template-columns: 1fr; }
  .departmentPage .depMiddle-box { width: 100%; height: auto; margin-bottom: 20px; }
  .departmentPage .depMiddle-box p { font-size: 20px; line-height: 28px; }
    .departmentPage .depMiddle {
    width: 90%;
    margin: 0 auto 60px;
    padding: 0;
  }

  .departmentPage .depMiddle-inner {
    grid-template-columns: 1fr;
  }

  .departmentPage .depMiddle-box {
    width: 100%;
    height: auto;
    margin-bottom: 20px;
  }

  /* 右列コンテナ：縦積み（メイン画像 → サブ2枚横並び） */
  .departmentPage .depMiddle-right {
    display: flex;
    flex-direction: column;
    align-items: center; /* メイン画像の中央寄せ */
    width: 100%;
  }
  .departmentPage .depMiddle-img03 img { width: 90%; height: auto; display: block; margin: 0 auto; }

  /* メイン画像：90%で中央寄せ */
  .departmentPage .depMiddle-img02 img {
    width: 90%;
    max-width: 90%;
    height: auto;
    display: block;
    margin: 0 auto;
  }

  /* サブ画像ブロック：横並び（2カラム） */
  .departmentPage .depMiddle-sub {
    width: 100%;
    display: flex;
    flex-direction: row;     /* 横並び */
    justify-content: center; /* 中央寄せ */
    align-items: flex-start;
    gap: 12px;               /* サブ同士の間隔 */
    margin-top: 16px;        /* メイン画像との間隔 */
  }

  /* サブ各項目：2分割 */
  .departmentPage .depMiddle-sub .subItem {
    width: calc(50% - 6px); /* gapに合わせて微調整 */
  }

  /* サブの画像・キャプションの体裁 */
  .departmentPage .depMiddle-sub .subItem img {
    width: 100%;
    height: auto;
    display: block;
  }

  .departmentPage .depMiddle-sub .subItem .subcap {
    font-size: 14px;
    line-height: 1.4;
    text-align: center;
    margin: 8px 0 6px;
  }
  .departmentPage .depMiddle-heading { font-size: 24px; }
  .departmentPage .depMiddle-img03 { margin: 0; position: relative; z-index: 1; }
}

/* ===== depBottom（1100px固定・中央寄せ） ===== */
.departmentPage .depBottom {
  width: 1100px;
  margin: 0 auto 80px auto;
}
.departmentPage .depBottom-inner {
  display: grid;
  grid-template-columns: 640px 460px;
  align-items: start;
  position: relative;
}
/* 左側：縦写真2枚 */
.departmentPage .depBottom-left {
  display: grid;
  grid-template-columns: 310px 310px;
  gap: 20px;
  position: relative;
  z-index: 1;
}
.departmentPage .depBottom-left figure { margin: 0; }
.departmentPage .depBottom-left img { width: 100%; height: auto; display: block; }
/* 右側：見出し + 赤ボックス */
.departmentPage .depBottom-right { position: relative; z-index: 2; }
.departmentPage .depBottom-heading {
  margin: 0 0 20px;
  font-size: 34px;
  line-height: 1.3;
  color: #000;
  text-align: right;
  font-family: "Noto Serif JP", serif;
}
.departmentPage .depBottom-box {
  position: absolute;
  top: 60px;
  right: 0;
  width: 510px;
  height: 200px;
  background: #d11d26;
  color: #fff;
  padding: 30px;
  box-sizing: border-box;
}
.departmentPage .depBottom-box p {
  margin: 0;
  font-size: 28px;
  line-height: 40px;
  font-weight: 400;
  color: #fff;
  font-family: "Noto Serif JP", serif;
}

/* --- レスポンシブ調整（depBottom） --- */
@media (max-width: 1024px) {
  .departmentPage .depBottom { width: 100%; padding: 0 20px; }
  .departmentPage .depBottom-right { position: static; }
  .departmentPage .depBottom-box {
    position: relative;
    top: auto; right: auto;
    width: 100%; height: auto;
    margin-top: 16px;
  }
}
@media (max-width: 768px) {
   .depBottom-inner {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "heading"
      "left"
      "box";
    row-gap: 16px;
    width: min(90vw, 100%); /* 親にパディングがあってもはみ出しにくい */
    margin: 0 auto;
    box-sizing: border-box;
  }

  /* 右カラムの“箱”は消して中身だけをグリッドに参加させる */
  .depBottom-right { display: contents; }

  /* 最上段：見出し */
  .depBottom-heading {
    grid-area: heading;
    font-size: 24px;
    text-align: center;
    width: 100%;
  }

  /* 左：画像2枚を横並び（等幅） */
  .depBottom-left {
    grid-area: left;
    display: flex;
    gap: clamp(12px, 4vw, 20px);
    width: 100%;
    min-width: 0; /* 子の収縮を許可 */
  }
  .depBottom-left figure {
    flex: 1 1 0;   /* 等幅 */
    margin: 0;     /* ← これが重要（UAの左右40pxを打ち消す） */
    min-width: 0;  /* 画像が大きい時のはみ出し防止 */
    box-sizing: border-box;
  }
  .depBottom-left img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* 一番下：赤ボックス（段落風に左右余白） */
  .depBottom-box {
    grid-area: box;
    font-size: 20px;
    line-height: 1.6;
    width: 100%;
    padding: 0 16px;   /* 段落風の左右余白 */
    box-sizing: border-box;
    text-align: left;
  }
  /* コンテナ幅を画面に合わせる（1100px固定を解除） */
  .departmentPage .depBottom {
    width: 100% !important;
    padding: 0; 
    margin: 0 auto;
  }

  /* 1カラムの並び順を明示（見出し → 左画像2枚 → 赤ボックス） */
  .departmentPage .depBottom-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "heading"
      "left"
      "box";
    row-gap: 16px;
    width: min(90vw, 100%);   /* 親に余白があってもはみ出しにくい */
    margin: 0 auto 80px;
    box-sizing: border-box;
  }

  /* 右側のラッパーは“中身だけ”グリッドに参加させる */
  .departmentPage .depBottom-right { 
    display: contents !important; 
  }

  /* 見出しを最上段 */
  .departmentPage .depBottom-heading {
    grid-area: heading;
    font-size: 24px;
    text-align: center;
    width: 100%;
  }

  /* 左：figureを横並び・等幅（既定のgridを確実に上書き） */
  .departmentPage .depBottom-left {
    grid-area: left;
    display: flex !important;        /* ← grid を潰す */
    gap: clamp(12px, 4vw, 20px);
    width: 100%;
    min-width: 0;                    /* 収縮許可であふれ防止 */
  }
  .departmentPage .depBottom-left figure {
    flex: 1 1 0;
    margin: 0;                       /* UA既定margin(左右40px)を打消し */
    min-width: 0;
    box-sizing: border-box;
  }
  .departmentPage .depBottom-left img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* 赤ボックスを最下段に・段落風の左右余白 */
  .departmentPage .depBottom-box {
    grid-area: box;
    position: static !important;     /* 既定の absolute を解除 */
    height: auto !important;
    width: 100%;
    padding: 20px;                 /* 段落風の左右余白 */
    text-align: left;
    box-sizing: border-box;
  }
  .departmentPage .depBottom-box p {
      font-size: 20px;
      line-height: 28px;
  }
}


/* ===== depproArea（1100px・中央寄せ） ===== */
.departmentPage .depproArea {
  width: 1100px;
  margin: 0 auto 80px auto;
  text-align: center;
}
.departmentPage .depproArea .dep-heading {
  font-size: 34px;
  color: #000;
  background: none;
  margin: 0 0 40px;
  text-align: center;
  font-family: "Noto Serif JP", serif;
}
.departmentPage .deppro-imgs {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin: 0 0 60px;
  padding: 0;
  list-style: none;
}
.departmentPage .deppro-imgs li { flex: 0 0 348px; }
.departmentPage .deppro-imgs img { width: 100%; height: auto; display: block; }
.departmentPage .depInstall { text-align: center; }
.departmentPage .depInstall .dep-heading {
  font-size: 34px;
  color: #000;
  background: none;
  margin: 0 0 30px;
  text-align: center;
}
.departmentPage .depInstall p {
  font-size: 17px;
  line-height: 28px;
  text-align: left;
  margin: 0 auto;
  max-width: 1000px;
}

/* --- レスポンシブ調整（depproArea） --- */
@media (max-width: 1024px) {
  .departmentPage .depproArea { width: 100%; padding: 0 20px; }
  .departmentPage .deppro-imgs {
    flex-direction: column;
    align-items: center;
  }
  .departmentPage .deppro-imgs li {
    flex: 0 0 auto;
    width: 100%;
    max-width: 480px;
  }
}

/* ===== 主要設備（depmaineqArea）仕上げ ===== */
.departmentPage .depmaineqArea{
  width:1100px;
  margin:0 auto 180px;
}

/* 主タイトル：黒40px・背景なし・中央 */
.departmentPage .depmaineqArea > .dep-heading{
  background:none !important;
  color:#000 !important;
  font-size:40px !important;
  line-height:1.25;
  font-weight:400;
  text-align:center;
  margin:0 0 28px;
  padding:0;
  font-family: "Noto Serif JP", serif;
}

/* サブ見出し「工場設備」：帯（PDFのトーンに近い青） */
.departmentPage .depmaineqArea > h3:not(.dep-heading){
  width:100%;
  background:#345f7d;
  color:#fff;
  text-align:center;
  font-size:34px;
  line-height:1.3;
  font-weight:400;
  margin:0 0 26px;
  padding:14px 20px;
  box-sizing:border-box;
  font-family: "Noto Serif JP", serif;
}

/* 4カラムのカード */
.departmentPage .depmaineqArea .eq-cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px;
}

/* 主要設備カード：テキスト高さを固定して、画像の上端をそろえる */
.departmentPage .depmaineqArea .eq-card{
  display:flex;
  flex-direction:column;          /* 上：テキスト／下：画像 */
}

/* ← この高さで画像開始位置を揃える（必要なら数値を微調整） */
.departmentPage .depmaineqArea .eq-card .eq-text{
  box-sizing: border-box;
  padding: 0 6px 16px;
  font-size: 18px;
  color: #000;
  min-height: 175px;              /* ★ここがポイント（140〜170pxで調整可） */
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.departmentPage .depmaineqArea .eq-card .eq-text ul{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;         /* brが入っても上端そろえ */
  gap:12px;
  margin:8px 0 0;
}
.departmentPage .depmaineqArea .eq-card .eq-text ul:first-child{ margin-top:0; }
.departmentPage .depmaineqArea .eq-card .eq-text ul li:first-child{ flex:1 1 auto; text-align:left; }
.departmentPage .depmaineqArea .eq-card .eq-text ul li:last-child{ flex:0 0 auto; min-width:40px; text-align:right; white-space:nowrap; }

/* 画像は下に固定 */
.departmentPage .depmaineqArea .eq-card .eq-img{ margin:0; }
.departmentPage .depmaineqArea .eq-card .eq-img img{ display:block; width:100%; height:auto; }

/* --- レスポンシブ --- */
@media (max-width: 1024px){
  .departmentPage .depmaineqArea{ width:100%; padding:0 20px; }
  .departmentPage .depmaineqArea .eq-cards{
    grid-template-columns:repeat(2,1fr);
    gap:22px;
  }
}
@media (max-width: 640px){
  .departmentPage .depmaineqArea .eq-cards{ grid-template-columns:1fr; }
  .departmentPage .depmaineqArea > .dep-heading{ font-size:32px !important; }
  .departmentPage .depmaineqArea > h3:not(.dep-heading){ font-size:24px; }
  .departmentPage .depmaineqArea .eq-card .eq-text{ font-size:16px; }
}

/* ===== 車両設備（depmaineq-vehicles） ===== */
.departmentPage .depmaineq-vehicles{
  width:1100px;
  margin:80px auto 80px;
  text-align:center;
}

/* 見出し（車両設備） */
.departmentPage .depmaineq-vehicles .dep-subheading{
  width:100%;
  background:#345f7d;
  color:#fff;
  text-align:center;
  font-size:34px;
  line-height:1.4;
  font-weight:400;
  margin:0 0 32px;
  padding:14px 20px;
  box-sizing:border-box;
  font-family: "Noto Serif JP", serif;
}
.departmentPage .depmaineq-license > .dep-subheading{
  display:inline-block;          /* 中央揃えに必要 */
  font-size:34px;
  line-height:1.3;
  font-weight:400;
  color:#fff;
  background:#3e667c;            /* 青帯 */
  padding:14px 40px;             /* 両端に余白を確保 */
  margin:0 0 26px;
  border-radius:4px;             /* 少し丸みをつけてもOK */
  text-align:center;
}

/* リスト：両端揃え */
.departmentPage .depmaineq-vehicles .inline-list{
  display:flex;
  justify-content:space-between;  /* 両端に配置 */
  align-items:flex-start;
  list-style:none;
  padding:0;
  margin:0;
}
.departmentPage .depmaineq-vehicles .inline-list li{
  font-size:20px;
  color:#333;
  white-space:nowrap;
  flex:1;                         /* 均等配置 */
  text-align:center;               /* 中央揃え */
}
.departmentPage .depmaineq-vehicles .inline-list li:first-child{ text-align:left; }
.departmentPage .depmaineq-vehicles .inline-list li:last-child{ text-align:right; }

/* --- レスポンシブ調整 --- */
@media (max-width:1024px){
  .departmentPage .depmaineq-vehicles{ width:100%; padding:0 20px; }
  .departmentPage .depmaineq-vehicles .inline-list li{ font-size:18px; }
}
@media (max-width:640px){
  .departmentPage .depmaineq-vehicles .dep-subheading{ font-size:24px; }
  .departmentPage .depmaineq-vehicles .inline-list{
    flex-direction:column;
    align-items:center;
    gap:12px;
  }
  .departmentPage .depmaineq-vehicles .inline-list li{
    text-align:center !important;
    flex:none;
    font-size:16px;
  }
}

/* ===== 有資格者（資格一覧） 見出しを1100pxいっぱいに ===== */
.departmentPage .depmaineq-license{
  width:1100px;
  margin:60px auto 0;
  text-align:center; /* 文字は中央 */
}

.departmentPage .depmaineq-license > .dep-subheading{
  display:block;             /* ← セクション幅いっぱいにする */
  width:100%;
  background:#345f7d;
  color:#fff;
  font-size:34px;
  line-height:1.3;
  font-weight:400;
  text-align:center;
  padding:14px 20px;
  margin:0 0 40px;
  border-left:none !important;/* 既定の左線を打ち消し */
  font-family: "Noto Serif JP", serif;
}

/* 4カラム本体（そのまま） */
.departmentPage .depmaineq-license .cols-4{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:26px;
  text-align:left;
}
.departmentPage .depmaineq-license .cols-4 li{
  font-size:18px;
  line-height:1.8;
  color:#222;
  padding:0;
  border:none;
  background:none;
}

/* レスポンシブ */
@media (max-width:1024px){
  .departmentPage .depmaineq-license{ width:100%; padding:0 20px; }
  .departmentPage .depmaineq-license .cols-4{ grid-template-columns:repeat(2,1fr); gap:20px; }
}
@media (max-width:640px){
  .departmentPage .depmaineq-license .cols-4{ grid-template-columns:1fr; }
  .departmentPage .depmaineq-license > .dep-subheading{ font-size:24px; padding:10px 20px; }
  .departmentPage .depmaineq-license .cols-4 li{ font-size:16px; }
}

/* ===== 工事履歴 ===== */
.departmentPage .worklogArea{
  width:1100px;
  margin: 50 auto 100px;
}

/* テーブル本体 */
.departmentPage .worklogTable{
  width:100%;
  border-collapse:separate;   /* 罫線をPDF風に */
  border-spacing:0;
  table-layout:fixed;
  font-size:16px;
  color:#333;
}

/* ヘッダー帯 */
.departmentPage .worklogTable thead th{
  background:#355f7e;         /* 指定色 */
  color:#fff;
  font-weight:400;
  text-align:center;
  padding:12px 14px;
  border:0;
}

/* 列幅（32% : 68%） */
.departmentPage .worklogTable .col-client{ width:32%; }
.departmentPage .worklogTable .col-work  { width:68%; }

/* 本文セル */
.departmentPage .worklogTable td{
  padding:16px;
  vertical-align:middle;
  line-height:1.8;
  background:#fff;
  border-bottom:1px solid #cfcfcf; /* 行の下線 */
}

/* 中央の縦線（左列の右側） */
.departmentPage .worklogTable tbody td:first-child{
  border-right:1px solid #cfcfcf;
}

/* 1行目の上線（ヘッダー直下） */
.departmentPage .worklogTable tbody tr:first-child td{
  border-top:1px solid #cfcfcf;
}

/* ヘッダーの列区切り（白線） */
.departmentPage .worklogTable thead th:first-child{
  border-right: 1px solid #fff;
}

/* --- スマホ：1列化 --- */
@media (max-width: 768px){
  .departmentPage .worklogArea{ width:100%; padding:0 16px; }

  .departmentPage .worklogTable thead{ display:none; }  /* ヘッダー非表示 */
  .departmentPage .worklogTable,
  .departmentPage .worklogTable tbody,
  .departmentPage .worklogTable tr,
  .departmentPage .worklogTable td{
    display:block;
    width:100%;
  }
  .departmentPage .worklogTable tr{
    border-bottom:1px solid #cfcfcf;
  }
  .departmentPage .worklogTable td{
    border:0 !important;
    padding:10px 12px;
  }
  /* 各セル先頭にラベルを表示 */
  .departmentPage .worklogTable td[data-label]::before{
    content: attr(data-label) "：";
    display:inline-block;
    min-width:7em;
    color:#666;
    margin-right:.5em;
  }
}

/* ===== Recruit 共通 ===== */
.RecruitPage{ width:1100px; margin:0 auto; padding:60px 20px 90px; color:#111; }
.RecruitPage img{ display:block; width:100%; height:auto; }

/* === TOP 3段（前回のまま） === */
.rec-lead{ font-family:"Noto Serif JP",serif; font-weight:400; font-size:30px; line-height:1.6; margin:0 0 30px; letter-spacing:.02em; }
.rectopArea .rec-row{ display:flex; align-items:center; gap:48px; margin:46px 0 70px; }
.rectopArea .rec-row--reverse .rec-photo{ order:-1; }
.rec-text .rec-ttl{ font-family:"Noto Serif JP",serif; font-weight:400; font-size:26px; line-height:1.55; color:#b60000; margin:0 0 10px; }
.rec-text p{ margin:0; line-height:1.95; font-family: "Noto Serif JP", serif; }
.rec-photo{ flex:1 1 50%; min-width:0; }
.rec-text{ flex:1 1 50%; }

/* === 募集要項（rectboxArea） === */
/* 募集要項ブロック自体を中央寄せの器に */
.rectboxArea{
  width:100%;
  margin:30px auto 0;
  display:flex;
  flex-direction:column;
  align-items:center;   /* ← 中央に揃える */
}

/* テーブルの器を 1100px にして中央へ */
.rec-spec{
  width:1100px;
  margin:0 auto;        /* ← 念のため中央寄せ */
}

/* テーブルは器幅いっぱい（=1100px） */
.rec-table{ width:100%; }

/* テーブル：th 背景 #c62027、td 背景 #e3e2e2、区切り線は白 */
.rec-table{
  width:100%;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  background:#fff; /* セル外の地 */
}
.rec-table th,
.rec-table td{
  padding:14px 16px;
  line-height:1.85;
  vertical-align:top;
  border:2px solid #fff;               /* ← 区切り線を白に */
}
.rec-table th{
  width:150px;
  background:#c62027;
  color:#fff;
  font-weight:600;
  text-align:left;
}
.rec-table td{
  background:#e3e2e2;
  color:#222;
}

/* 注意事項：幅およそ 650px、テーブルから 100px 下に配置 */
.rec-notes{
  width:650px;
  max-width:100%;
  margin:100px 0 0;                    /* ← rectboxArea の下に 100px 空ける */
  line-height:1.95;
}

/* === ベネフィット（前回のまま） === */
.reciconArea{ width:1100px; margin:40px auto 0; }
.rec-emblem{ width:160px; margin:0 auto 0px; }
.benefit-grid{ list-style:none; padding:0; margin:0 0 28px; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.benefit-grid li{ background:#fff; }
.benefit-grid img{ width:100%; height:auto; display:block; }

/* === 連絡先帯（PCで見えない問題の対処） === */
/* 1) 背景画像のパスをルート相対に修正 2) 画像未読込でも見えるように背景色を追加 */
.rec-contact{
  background: #2b7bb8 url("../../images/recruit/rec_area_back.jpg") center/cover no-repeat;
  color:#fff; text-align:center; border-radius:4px;
  padding:28px 18px; margin-top:10px;
}
.rec-contact-lead{ margin:0 0 14px; font-size:16px; letter-spacing:.03em; }
.rec-telfax{ list-style:none; padding:0; margin:0 0 10px; display:flex; gap:28px; align-items:center; justify-content:center; flex-wrap:wrap; font-size:22px; font-weight:700; }
.rec-telfax span{ font-size:.8em; margin-right:.3em; opacity:.95; }
.rec-hours{ margin:4px 0 0; font-size:14px; opacity:.95; }

/* ===== Responsive ===== */
@media (max-width:1024px){
  .RecruitPage{ width:100%; padding:40px 16px 70px; }
  .rectopArea .rec-row{ flex-direction:column; gap:18px; margin:32px 0 48px; }
  .rectopArea .rec-row--reverse .rec-photo{ order:0; }
  .rec-text .rec-ttl{ font-size:22px; }
  .rec-lead{ font-size:22px; }
  .rectboxArea, .rec-spec{ width:100%; }
  .rec-table th{ width:120px; }
  .rec-notes{ width:100%; margin-top:40px; }
  .reciconArea{ width:100%; }
  .benefit-grid{ grid-template-columns:repeat(2,1fr); gap:16px; }
  .rec-telfax{ font-size:18px; gap:18px; }
}
@media (max-width:480px){
  .benefit-grid{ grid-template-columns:1fr; }
}

/* ===== Departmentページ専用：dep-heading統一 ===== */
.departmentPage .dep-heading {
  background: #d11d26 !important; /* 背景色 */
  color: #fff !important;         /* 文字色 */
  font-size: 34px !important;     /* フォントサイズ */
  line-height: 1.3;
  font-weight: 400;
  padding: 12px 20px;             /* ボックス内余白 */
  margin: 0 0 40px;               /* 下余白 */
  text-align: center;             /* センター配置 */
}

@media (max-width: 768px){
    .departmentPage .dep-heading {
      background: #d11d26 !important; /* 背景色 */
      color: #fff !important;         /* 文字色 */
      font-size: 24px !important;     /* フォントサイズ */
      line-height: 38px;
      font-weight: 400;
      padding: 12px 20px;             /* ボックス内余白 */
      margin: 0 0 40px;               /* 下余白 */
      text-align: center;             /* センター配置 */
    }
    .departmentPage .depInstall { width: 90%; margin: 0 auto 80px; text-align: center; }
}














































/*フッター*/
/* --- フッター画像帯（PC：4列固定、センター、最大1400px） --- */
section#footerimg .footerimgArea{
  width: 100%;
  max-width: 1400px;   /* ★ここを指定 */
  margin: 0 auto;      /* ★中央寄せ */
}

section#footerimg .footerimgArea ul{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)); /* 4列 */
  gap: 6px;
  margin: 0;
  padding: 0;
}

section#footerimg .footerimgArea ul li{
  list-style: none;
  margin: 0;
  padding: 0;
}

section#footerimg .footerimgArea ul li img{
  display: block;
  width: 100%;
  height: auto;
}

/* スマホ時（2列・左右余白少なめにしたい場合はパディングも可） */
@media (max-width: 768px){
  section#footerimg .footerimgArea{
    max-width: 100%;
    padding: 0 8px;  /* 任意。余白不要なら消してOK */
  }
  section#footerimg .footerimgArea ul{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px;
  }
}


section#footer {
  width: 100%;
  height: 400px;
  margin: 0 auto;
  background-image: url("../../images/common/footer_back.png");
  background-repeat: repeat-x;
  background-position: center;
}

section#footer .footerArea {
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 20px 32px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 56px;
  color: #FFFFFF;
}

/* ---- 左カラム：ロゴ＋説明 ---- */
#footer .footerlogoArea ul{
  display: flex;
  flex-direction: column;      /* 縦積み */
  align-items: flex-start;     /* 左寄せ */
  gap: 10px;                   /* 行間 */
}

#footer .footerlogoArea ul li{
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 1.9;
  opacity: .95;
}

#footer .footerlogoArea ul li img[width="345"]{
  /* ロゴの下に余白 */
  margin-bottom: 8px;
}

/* footerlogoArea の ul 内 4番目の li を中央寄せ */
#footer .footerlogoArea ul li:nth-child(4) {
  text-align: center;
  width: 100%;        /* 横幅を100%にして中央寄せを効かせる */
  padding: 10px 0px 80px;
}

#footer .footerlogoArea ul li:nth-child(4) img {
  display: inline-block;   /* inline-block にして中央寄せされるように */
  margin: 0 auto;
}

/* ---- 右カラム：メニューを横並び ---- */
#footer .footermenuArea{
  margin-left: auto;           /* 右端寄せ */
  padding-top: 40px;
}

#footer .footermenuArea ul{
  display: flex;
  flex-wrap: wrap;             /* はみ出すと折り返し */
  gap: 20px 28px;              /* 行間/列間 */
  align-items: center;
  justify-content: flex-end;
}

#footer .footermenuArea ul li{
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .02em;
  line-height: 1;
  opacity: .95;
}

/* aタグにした時の見た目（今はliだけなので効かないが将来用） */
#footer .footermenuArea ul li a{
  color:#fff;
  text-decoration: none;
}
#footer .footermenuArea ul li a:hover{ text-decoration: underline; }

/* ---- 版下と著作の余白を少し整える（任意） ---- */
#footer .footerlogoArea ul li:last-child{
  margin-top: 10px;            /* Copyright の前に少し間 */
  font-size: 12px;
  opacity: .85;
}

/* =========================
   Responsive
   ========================= */
@media (max-width: 768px){
    section#footer {
      width: 100%;
      height: 400px;
      margin: 0 auto;
      background-image: url("../../images/common/footer_back.png");
      background-repeat: repeat-x;
      background-position: center;
    }

   section#footerimg .footerimgArea {
      width: 380px;
      max-width: 98%;
      margin: 0 auto;
      text-align: center;
    }
    
    section#footerimg .footerimgArea ul li img {
        width: 180px;
        height: 150px;
    }
    
    section#footerimg .footerimgArea ul li {
      display: inline-block;   /* 横並び */
      margin: 2px 1px 0px;          /* li同士の間隔 */
    }
    
    section#footer .footerArea {
      max-width: 100%;
      margin: 0 auto;
      padding: 20px 0px 10px;
      display: block;
      color: #FFFFFF;
      text-align: center;
    }
      #footer .footerlogoArea ul{
        align-items: center;       /* ← li を中央寄せ（column のクロス軸） */
          font-size: 14px;
          line-height: 24px;
      }
      #footer .footerlogoArea img.Sp{
        display: block;
        margin: 0 auto;            /* 画像自体も中央に */
      }
      #footer .footermenuArea {
          display: none;
      }
}
