

/* ===== 左からスライドイン ===== */
/* 左からスライドイン */
.slide-in-left {
  opacity: 0;
  transform: translateX(-100px);
  animation: slideInLeft 1s ease-out forwards;
}

/* 右からスライドイン */
.slide-in-right {
  opacity: 0;
  transform: translateX(100px);
  animation: slideInRight 1s ease-out forwards;
}

@keyframes slideInLeft {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* ===== 遅延設定（下にある画像ほど大きく） ===== */
.delay-1 { animation-delay: 0.3s; }
.delay-2 { animation-delay: 1.0s; }
.delay-3 { animation-delay: 2.0s; }
.delay-4 { animation-delay: 3.0s; }





/* サイトマップ専用 */
h1 {
  text-align: center;
  margin-bottom: 40px;
  font-size: 20px;
  padding-bottom: 10px;
}

ul.sitemap, ul.sitemap ul {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
  position: relative;
}



/* 各アイテムFlex */
.sitemap-item {
  display: flex;
  align-items: center;
  position: relative;
  margin: 5px 0;
}

/* 横線 */
.line {
  display: inline-block;
  width: 20px;
  height: 0;
  border-top: 2px dashed #ccc; /* 横線点線 */
  margin-right: 5px;
  flex-shrink: 0;
}

/* 縦線（親アイテムから子階層まで） */
.sitemap-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10px; /* 横線の真下 */
  width: 2px;
  height: 100%;
  border-left: 2px dashed #ccc; /* 縦線点線 */
  z-index: -1; /* 文字の後ろに */
}

/* 子階層インデント */
ul.sitemap ul .sitemap-item {
  margin-left: 25px;
}

/* リンク装飾 */
.sitemap-item a {
  text-decoration: none;
  color: #0066cc;
}

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

.container {
  max-width: 1200px;
  margin: 50px auto;
  padding: 0 15px;
  text-align: center;
}

/* ===== 縦書きカード（共通） ===== */
.vertical-card {
  writing-mode: vertical-rl;     /* 縦書き */
  text-orientation: mixed;
  background: #fff;
  padding: 30px 20px;
  display: flex;                 /* ← 子要素を上揃えに制御する */
  justify-content: flex-start;   /* 縦方向の上揃え */
  align-items: flex-start;       /* 横方向の左寄せ */
  font-family: 'Shippori Mincho', serif;
  height: auto;                  /* 必要に応じて高さ指定 */
}

/* ===== fade-in-only（中身） ===== */
/* ===== 理念ブロックだけフェード ===== */

.vertical-card .fade-in-only{
display:block;
margin:0;
padding:0;
text-align:start;

opacity:0;
transform:translateY(25px);
animation:philosophyFade 1.2s ease forwards;
}

@keyframes philosophyFade{
to{
opacity:1;
transform:translateY(0);
}
}

/* ===== 縦書きタイトル ===== */
.vertical-title {
  writing-mode: vertical-rl;
  text-orientation: upright;
  display: block;
  font-size: 1.1em !important;
  font-weight: bold;
  letter-spacing: 0.2em;
  margin: 0;
  padding: 0 3px;
}

/* ===== テキスト部分 ===== */
.vertical-card p {
  font-size: 1rem;
  line-height: 2.2;
  margin: 0;
  padding: 0;
}


/* ===== 通常の見出し（企業理念など） ===== */
.vertical-card h2:not(.vertical-title) {
  writing-mode: horizontal-tb;  /* 横書きに戻す */
  text-align: center;
  margin: 40px 0 10px;
  font-size: 1.3rem;
  font-weight: bold;
}

/* ===== スマホ対応 ===== */
@media screen and (max-width: 768px) {
  .vertical-card {
    padding: 15px 10px;
  }

  .vertical-title {
    height: 200px;
    font-size: 1.1rem;
  }

  .vertical-card h2:not(.vertical-title) {
    font-size: 1.1rem;
    margin-top: 20px;
  }

  .vertical-card p {
    font-size: 0.9rem;
    line-height: 1.8;
    margin-bottom: 10px;
  }
}

/* ===== タブコンテナ ===== */
.tab-container {
  max-width: 1200px;
  margin: 30px auto;
  padding: 0px;
}

.tab-content {
  display: none;
}

.tab-content.active {
  display: block;
}

/* ===== タブボタン ===== */
.tab-buttons {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin-bottom: 20px;
  border-bottom: 2px solid #ddd;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 10;
}

.tab-button {
  background: none;
  border: none;
  font-size: 1rem;
  padding: 12px 20px;
  cursor: pointer;
  color: #555;
  position: relative;
  transition: color 0.3s;
}

.tab-button.active {
  color: #000;
  font-weight: bold;
}

.tab-button.active::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 2px;
  background: #000;
}


/* スマホ用 */
@media (max-width: 768px) {
  .tab-button {
    font-size: 0.8rem; /* 小さくする */
    padding: 5px 1px; /* 必要に応じてパディングも調整 */
  }
}


/* ===== タブコンテンツ ===== */
.tab-contents-wrapper {
  position: relative;
}

.tab-content {
  opacity: 0;
  transition: opacity 0.5s ease;
}

.tab-content.active {
  opacity: 1;
}

#greeting p {
  letter-spacing: 0.1em; /* ←お好みで 例: 0.05em〜0.2em */
  line-height: 1.4;      /* 行間（読みやすさ） */
}

/* ===== 会社概要 ===== */
.company-profile {
  max-width: 1000px;
  margin: 0 auto;
  background: #fff;
  padding: 20px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  text-align: left;
}


.profile-item {
  display: flex;
  gap: 15px;
  padding: 30px 0;
  border-bottom: 1px solid #eee;
}

.profile-item .label {
  font-weight: bold;
  color: #336699;
  min-width: 120px;
}

@media screen and (max-width: 768px) {
  .profile-item {
    gap: 8px;  /* PCは15px → スマホは8pxに狭く */
    padding: 20px 0; /* 上下の余白も少し狭く */
  }

  .profile-item .label {
    min-width: 80px; /* ラベル幅を狭く */
  }
}



/* ===== 沿革（縦カード） ===== */
.history {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.history-item {
  display: flex;
  align-items: center; /* ← 縦方向中央揃えに変更 */
  justify-content: center; /* ← 全体を中央寄せ */
  gap: 30px; /* ← 画像と文字の間隔を少し広げる */
  border-bottom: 1px solid #ddd;
  padding: 20px 0;
  flex-wrap: wrap;
}

.history-item img {
  width: 400px;
  height: 280px;
  object-fit: cover;
  flex-shrink: 0;
}

.history-text {
  flex: 1;
  text-align: left;
  font-size: 1rem;
  line-height: 1.8;
}

.year {
  font-weight: bold;
  color: #336699;
  margin-bottom: 10px;
}


/* ===== スマホ対応 ===== */
@media (max-width: 768px) {
  .history-item {
    flex-direction: column;
    align-items: flex-start; /* ← 左寄せに変更 */
    text-align: left;        /* ← 文字も左揃え */
  }

  .history-item img {
    width: 100%;
    height: auto;
  }

  .history-text {
    width: 100%;
    text-align: left; /* ← 左揃えキープ */
  }
}


h2 {
  text-align: center;
  margin-bottom: 30px;
  font-size: 1.6rem;
  letter-spacing: 0.05em;
}



/* ===== 横並びレイアウト ===== */
.image-text-row {
  display: flex;
  align-items: center;   /* 縦中央揃え */
  gap: 30px;             /* 画像とテキストの間隔 */
  flex-wrap: wrap;       /* スマホで縦並びに切り替え */
  margin: 20px 0;
}

/* ===== 画像のレスポンシブ ===== */
.responsive-img {
  width: 350px;          /* PC幅 */
  height: auto;
  object-fit: cover;
  flex-shrink: 0;
}


/* ===== スマホ対応（768px以下） ===== */
@media screen and (max-width: 768px) {
  .responsive-img {
    width: 100%;        /* スマホ幅にフィット */
    height: auto;       /* 高さを自動調整 */
    object-fit: cover;  /* はみ出し防止 */
    margin: 0 auto;     /* 中央寄せ */
    display: block;     /* ブロック化でレイアウト安定 */
  }
}



/* ===== テキストブロック ===== */
.text-block {
  flex: 1;               /* 残りスペースを使用 */
}


/* ===== 明朝体の小さめテキスト ===== */
.wide-text {
  font-family: 'HannariMincho', "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 1rem;        /* PCサイズ */
  line-height: 1.6;       /* 行間をやや広めに */
  letter-spacing: 1em; /* わずかに文字間隔を広げる */
  color: #333;
  margin: 20px  10px;
  text-align: left;
}

/* ===== スマホ対応（768px以下） ===== */
@media screen and (max-width: 768px) {

  /* wide-text の文字サイズ調整 */
  .wide-text {
    font-size: 1rem;   /* 文字を小さく */
    line-height: 1.7;     /* 行間を少し狭く */
    word-break: break-word; /* 単語が切れずに折り返す */
  }



  /* history-item の縦並び調整 */
  .history-item {
    display: flex;
    flex-direction: column; /* 縦並び */
    align-items: flex-start;
    gap: 10px;
  }

  .history-item img {
    width: 100%;    /* スマホ幅にフィット */
    height: auto;
    object-fit: cover;
  }

  /* profile-item の縦並び調整 */
  .profile-item {
    display: flex;
    flex-direction: column;  /* 横並び → 縦並び */
    align-items: flex-start; /* 左揃え */
    gap: 10px;               /* 写真と文章の間隔 */
    padding: 15px 0;
  }


  .profile-item img {
    width: 100%;    /* スマホ幅にフィット */
    height: auto;
    margin: 0;
  }

  .profile-item div {
    width: 100%;    /* テキストを幅いっぱいに */
  }

  .profile-item .label {
    min-width: auto; /* ラベル幅を解除 */
  }

}




  /* スタッフカード */

    /* スタッフリストをグリッドに */
.staff-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 2fr)); /* レスポンシブ */
  gap: 20px;
  justify-content: center;
  justify-items: center;
  padding: 20px 0;
}

.staff-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 250px;
  transition: transform 0.8s ease;
}

.staff-card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  filter: grayscale(100%);
  transition: filter 0.4s ease;
  margin-bottom: 10px;
  cursor: pointer; /* ← ここを追加！ */
}


    .staff-card:hover img {
      filter: grayscale(0%);
    }

    .staff-card:hover {
      transform: scale(1.03);
    }

    /* モーダル共通 */
    .modal {
      display: none;
      position: fixed;
      z-index: 99999;
      left: 0; top: 0;
      width: 100%; height: 100%;
      background-color: rgba(0,0,0,0.6);
      overflow-y: auto;
      animation: fadeIn 0.3s ease forwards;
    }

    .modal-content {
      background-color: #fff;
      margin: 5% auto;
      padding: 30px;
      width: 90%;
      max-width: 800px;
      border-radius: 8px;
      position: relative;
      animation: slideUp 0.9s ease forwards;
      opacity: 0;
    }

    .modal.show .modal-content {
      opacity: 1;
    }

    @keyframes fadeIn {
      from { opacity: 0; }
      to   { opacity: 1; }
    }

    @keyframes slideUp {
      from { opacity: 0; transform: translateY(180px); }
      to   { opacity: 1; transform: translateY(0); }
    }

.close {
  position: sticky;
  top: 10px;
  float: right;
  z-index: 9999;
  font-size: 30px; /* ← ここを変更すると×が大きく／小さくなる */
  font-weight: bold;
  cursor: pointer;
}


    .profile-image {
      width: 100%;
      height: auto;
      border-radius: 5px;
      object-fit: cover;
      margin-bottom: 20px;
    }

.profile-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

    .profile-info h2 {
     font-size: 18px;
      text-align: left;
    }


.profile-info p {
  text-align: left;
  font-size: 16px;
  font-family: 'HannariMincho', "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
  line-height: 1.6;
  color: #333;
  margin-bottom: 1em;
}

.profile-info p strong {
  font-size: 12px;
  font-family: 'HannariMincho', "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
  color: #006666;
}

.profile-info p.message {
  font-size: 14px;
  font-family: 'HannariMincho', "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
  color: #666; /* 強調用の少し目立つ色（例：青緑） */
  margin-top: 10px;
}

 .private-photos {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;          /* 画像間のスペース */
  justify-content: center;
}

.photo-item {
  text-align: center;
  width: calc(50% - 10px); /* 2列表示用（隙間分を引く） */
}

.private-photos img {
  width: 100%;
  border-radius: 3px;
  object-fit: cover;
  display: block;
}

.photo-comment {
  margin-top: 8px;
  font-size: 14px;
  color: #555;
}

/* モバイル対応 */
@media (max-width: 768px) {
  .photo-item {
    width: 100%;     /* スマホは1列表示 */
  }

  .photo-comment {
    font-size: 13px; /* 少し小さめ */
  }
}



  /* パンくず */

.breadcrumb {
  font-family: 'HannariMincho', "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 1rem;
  margin: 10px 0;
}

.breadcrumb ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
}

.breadcrumb li {
  margin-right: 0.5em;
  position: relative;
}

.breadcrumb li + li::before {
  content: "/"; /* 区切り記号 */
  margin-right: 0.5em;
  color: #666;
}

.breadcrumb a {
  text-decoration: none;
  color: #999;
  transition: color 0.3s;
}

.breadcrumb a:hover {
  color: #000;
}
.breadcrumb {
  font-family: 'Shippori Mincho', serif;
  font-size: 0.875rem;
  margin: 10px 0;
  border-top: 1px solid #ccc; /* 文字の上に線 */
  padding-top: 5px; /* 線と文字の間隔 */


