@charset "UTF-8";

/* ==================================================
   Top Page Specific Styles (index.css)
================================================== */
.p-top-fv { position: relative; width: 100%; height: 100vh; min-height: 600px; margin-top: -80px; overflow: hidden; }
.js-fv-swiper, .swiper-wrapper, .swiper-slide { width: 100%; height: 100%; }
.p-top-fv__bg { width: 100%; height: 100%; background-size: cover; background-position: center; transform: scale(1); transition: transform 6s linear; }
.swiper-slide-active .p-top-fv__bg { transform: scale(1.1); }
.p-top-fv__content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 10; width: 100%; text-align: center; }
.p-top-fv__copy { font-family: var(--font-serif); font-weight: 300; font-size: 40px; color: #fff; line-height: 1.6; letter-spacing: 0.1em; text-shadow: 0 4px 15px rgba(0,0,0,0.6); }
.swiper-pagination-bullet { background: #fff; opacity: 0.5; }
.swiper-pagination-bullet-active { background: var(--color-main); opacity: 1; }

.p-top-news { padding: 80px 0; }
.p-top-news__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 40px; }
.p-top-news-card { display: block; background: #fff; border: 1px solid #eee; border-radius: 8px; overflow: hidden; }
.p-top-news-card__img img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.p-top-news-card__body { padding: 15px; }
.p-top-news-card__date { font-size: 12px; color: #999; }
.p-top-news-card__title { font-size: 14px; font-weight: bold; margin-top: 8px; }

/* --- 行動指針 --- */
.p-top-guideline {
  background: url('/assets/img/index/top_contents_bg_01.jpg') center/cover no-repeat;
  position: relative;
  min-height: 450px;
  display: flex; 
}
.p-top-guideline__inner {
  width: 100%;
  display: flex;
  align-items: stretch;
}
.p-top-guideline__box {
  background: rgba(0, 54, 109, 0.85);
  color: #fff;
  width: 30%;
  min-width: 320px;
  padding: 60px 30px 40px; 
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.p-top-guideline__title { font-family: var(--font-serif); font-size: 32px; margin-bottom: 25px; }

/* --- 事業所案内 --- */
.p-top-facility { padding: 80px 0; background: #f9f9f9; text-align: center; }
.p-top-facility__map img { max-width: 800px; width: 100%; margin: 40px auto; }
.p-top-facility__logos {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  max-width: 1000px;
  margin: 0 auto;
  align-items: center;
  justify-items: center;
}
.p-top-facility__logos img {
  width: auto;
  height: 45px; 
  max-width: 100%;
  object-fit: contain;
}

/* --- 2カラムセクション共通 (法人について / 取り組み / 採用情報) --- */
.p-top-section { padding: 80px 0; }
.p-top-section__inner { display: flex; align-items: center; gap: 60px; }
.p-top-section--reverse .p-top-section__inner { flex-direction: row-reverse; }
.p-top-section__text { flex: 1; }
.p-top-section__img { flex: 1; }
.p-top-section__img img { width: 100%; border-radius: 8px; object-fit: cover; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
.p-top-section__subtitle { font-size: 20px; font-weight: bold; margin-bottom: 20px; }
.p-top-section__desc { font-size: 15px; line-height: 1.8; margin-bottom: 30px; color: #444; }

.p-top-section__btns { display: flex; flex-direction: column; gap: 15px; }
.p-top-section__btns .c-btn-action { width: 60%; min-width: 260px; justify-content: flex-start; padding-left: 30px; }

/* ==================================================
   スマホ用レスポンシブ (max-width: 768px)
================================================== */
@media screen and (max-width: 768px) {
  .p-top-fv__copy { font-size: 24px; line-height: 1.8; width: 90%; }
  .p-top-news__grid { grid-template-columns: 1fr; }
  
  /* ★行動指針（マスク幅75%、左寄せ、高さ画像と一致） */
  .p-top-guideline { min-height: 400px; padding: 0; } 
  .p-top-guideline__box { 
    width: 75%; 
    min-width: auto; /* PCの制限を解除して確実に75%幅にする */
    padding: 50px 20px 40px; /* 上部余白を調整しテキスト位置を少し下げる */
  }
  
  /* 事業所ロゴ: SP時は左揃え */
  .p-top-facility__logos { grid-template-columns: repeat(2, 1fr); gap: 20px 15px; justify-items: flex-start; }
  .p-top-facility__logos img { height: 32px; }
  
  /* SP時: 要素順序の並び替え */
  .p-top-section__inner {
    display: flex;
    flex-direction: column !important;
    gap: 0;
  }
  .p-top-section__text { display: contents; } 
  
  .p-top-section__text > .c-layer-header { order: 1; margin-bottom: 20px; }
  .p-top-section__img { order: 2; margin-bottom: 20px; width: 100%; }
  .p-top-section__subtitle { order: 3; margin-bottom: 15px; }
  .p-top-section__desc { order: 4; margin-bottom: 25px; }
  .p-top-section__btns { order: 5; width: 100%; }
  .p-top-section__btns .c-btn-action { width: 100%; min-width: auto; }
}