@charset "utf-8";
/*
 * detail.css
 */
/* ============================================================
   business-item: 新レイアウト（Figma 1873-2472）
   2列グリッドカード。画像左上に赤い連番（01〜04）オーバーレイ。
   ============================================================ */
.business-item__media {
  position: relative;
  padding-top: 2.5rem;   /* 番号が画像上にはみ出る分の余白 */
}
.business-item__num {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 4.25rem;     /* PC: 68px / fw=200 */
  font-weight: 200;
  line-height: 1;
  color: var(--ns-color-link-hover);
  pointer-events: none;
  z-index: 1;
}
.business-item__title {
  font-size: 1.5rem;      /* PC: 24px */
  font-weight: 500;
  color: var(--ns-color-link-hover);
}
@media (max-width: 767.98px) {
  .business-item__num {
    font-size: 2.875rem;  /* SP: 46px */
  }
  .business-item__title {
    font-size: 1.25rem;   /* SP: 20px */
  }
  /* gx-0 行内では --bs-gutter-x が 0 になるため、50vw 基準で container を突き抜ける */
  /* (100vw - 100%) / 2 = 50vw - 50% = container-xlのpaddingを計算している */
  /* 50% - 50vwでマイナスになる */
  .business-item--sp-left .business-item__media {
    width: calc(100% + (50vw - 50%));
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: 0;
  }
  .business-item--sp-right .business-item__media {
    width: calc(100% + (50vw - 50%));
    max-width: none;
    margin-right: calc(50% - 50vw);
    margin-left: auto;
  }
  .business-item--sp-left .business-item__num {
    left: auto;
    right: 0.5rem;
  }
  .business-item--sp-right .business-item__num {
    left: 0.5rem;
    right: auto;
  }
}


/* ----------------------------------------------------------
   ビジュアルカード 画像部分 (visual-card__image)
   ラベル部分は link05 クラスに移行済み
   ---------------------------------------------------------- */
.visual-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 546 / 301;
  object-fit: cover;
}


/* .page-title / .page-hero__image は site.css に一元管理済み */

/* =============================
 * 事業領域 図解画像枠（Figma node 1702:19045 / 777×400）
 * 画像はレスポンシブで縮小可（img-fluid）
 * ============================= */
.philosophy-figure {
  max-width: 777px;
  margin-inline: auto;
}
.philosophy-figure img {
  max-width: 100%;
  height: auto;
}

/* philosophy-business: link1_item は SP 全幅 / PC は最長項目に幅を揃える */
.philosophy-business .link1_item {
  padding: 0.7rem 0;
}
.philosophy-business .link1_label {
  font-size: 1.125rem;
}
@media (min-width: 768px) {
  .philosophy-business {
    display: inline-grid;
    width: max-content;
    max-width: 100%;
  }
  .philosophy-business .link1_item {
    width: 100%;
  }
  .philosophy-business .link1_item .arrow-right-icon {
    margin-inline-start: 2rem;
  }
}
@media (max-width: 767.98px) {
  .philosophy-business .link1_label {
    font-size: 1rem;
  }
}

/* =============================
 * tech-history: 技術の変遷タイムライン（lbl / bar / balloon）
 * Figma: 2676:1386 (SP) / 2640:736 (PC)
 * ============================= */
.tech-history {
  margin-top: 0;
}
.tech-history__track {
  position: relative;
  padding-bottom: 1rem;
}
.tech-history__bar {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 1.25rem;
  width: 4px;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 1;
}
.tech-history__bar-svg {
  display: block;
  width: 4px;
  height: 100%;
}
.tech-history__epoch {
  position: relative;
  z-index: 2;
  margin: 2rem 0 1.5rem;
  padding-left: 3rem;
}
.tech-history__lbl {
  position: relative;
  /* SP表示時の位置合わせ。.tech-history__marker の左位置 (1.25rem-3rem) - アイコン左の余白 (1rem) - アイコン幅の半分 (10px) */
  margin-left: calc(1.25rem - 3rem - 1rem - 10px);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 1rem;
  background-color: var(--bg-secondary);
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.6;
}
.tech-history__lbl-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.tech-history__balloon {
  position: relative;
  z-index: 1;
  margin: 0 0 1.5rem;
  margin-left: 3rem;
  padding: 1rem 1.25rem;
  background-color: var(--bs-white, #fff);
  /*border: 1px solid var(--border-secondary);*/
  border-radius: 0.25rem;
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.25));
}
.tech-history__balloon::before {
  content: "";
  position: absolute;
  top: 1.75rem;
  left: -0.65rem;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.65625rem 0.75rem 0.65625rem 0;
  border-color: transparent var(--bs-white, #fff) transparent transparent;
  z-index: 1;
}
.tech-history__balloon::after {
  content: "";
  position: absolute;
  top: calc(1.75rem - 1px);
  left: calc(-0.75rem - 1px);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: calc(0.65625rem + 1px) calc(0.75rem + 1px) calc(0.65625rem + 1px) 0;
  border-color: transparent var(--border-secondary) transparent transparent;
  z-index: 0;
}
.tech-history__marker {
  position: absolute;
  top: 1rem;
  left: calc(1.25rem - 3rem);
  transform: translate(-50%, 50%);
  z-index: 3;
  line-height: 0;
}
.tech-history__marker-svg {
  display: block;
}
.tech-history__year {
  color: var(--brand-color);
}
.tech-history__events {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.tech-history__events li {
  margin-bottom: 0.25rem;
}
.tech-history__events li:last-child {
  margin-bottom: 0;
}
.tech-history__events--loose li {
  margin-bottom: 0.5rem;
}
.tech-history__events--loose li:last-child {
  margin-bottom: 0;
}
.tech-history__media-row {
  margin-top: 0.75rem;
}
.tech-history__balloon .col-10 .tech-history__figure,
.tech-history__balloon .tech-history__media-row .col-10 .tech-history__figure {
  margin-top: 0;
  max-width: 220px;
  text-align: center;
}
.tech-history__balloon .col-10 .tech-history__figures,
.tech-history__balloon .tech-history__media-row .col-10 .tech-history__figures {
  margin-top: 0;
  justify-content: center;
}
.tech-history__figures .tech-history__figure {
  margin-top: 0;
}
.tech-history__figure-img {
  width: 90px;
  height: auto;
  border: 1px solid var(--border-secondary);
  border-radius: 0.25rem;
  background-color: var(--bs-white, #fff);
}
.tech-history__figcaption {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: var(--ns-color-muted);
  line-height: 1.6;
}

@media (min-width: 768px) {
  .tech-history__bar {
    left: 50%;
  }
  .tech-history__epoch {
    padding-left: 0;
    text-align: center;
    margin: 2.5rem 0 2rem;
  }
  .tech-history__lbl {
    margin-left: auto;
  }
  .tech-history__balloon--left::before {
    left: auto;
    right: -0.65rem;
    border-width: 0.65625rem 0 0.65625rem 0.75rem;
    border-color: transparent transparent transparent var(--bs-white, #fff);
  }
  .tech-history__balloon--left::after {
    left: auto;
    right: calc(-0.75rem - 1px);
    border-width: calc(0.65625rem + 1px) 0 calc(0.65625rem + 1px) calc(0.75rem + 1px);
    border-color: transparent transparent transparent var(--border-secondary);
  }
  .tech-history__balloon--right::before {
    right: auto;
    left: calc(-0.75rem + 1px);
    /*border-width: 0.65625rem 0.75rem 0.65625rem 0;
    border-color: transparent var(--bs-white, #fff) transparent transparent;*/
  }
  .tech-history__balloon--right::after {
    right: auto;
    left: calc(-0.75rem - 1px);
    border-width: calc(0.65625rem + 1px) calc(0.75rem + 1px) calc(0.65625rem + 1px) 0;
    border-color: transparent var(--border-secondary) transparent transparent;
  }
  .tech-history__balloon {
    width: calc(50% - 2.5rem);
    margin-left: 0;
    margin-bottom: 2rem;
  }
  .tech-history__balloon--left .tech-history__marker {
    left: calc(100% + 2.5rem);
    transform: translate(-50%, 50%);
  }
  .tech-history__balloon--right .tech-history__marker {
    left: -2.5rem;
    transform: translate(-50%, 50%);
  }
  .tech-history__balloon--left {
    margin-right: calc(50% + 2.5rem);
  }
  .tech-history__balloon--right {
    margin-left: calc(50% + 2.5rem);
  }
}

/* =============================
 * profile-table: 会社概要テーブル
 *   - 左 30% を項目見出し列、右 70% を内容列
 *   - Bootstrap .table の罫線 ($table-border-color) を継承
 *   - thead は .table-light（Figma の F8F9FA に整合）
 * ============================= */
.profile-table {
  /* Bootstrap の罫線色変数を border.default に上書き */
  --bs-table-border-color: var(--border-secondary);
}
.profile-table > :not(caption) > * > * {
  /* セル padding を Figma の余白感に合わせて拡張 */
  padding: 0.875rem 1rem;
  vertical-align: top;
}
.profile-table th {
  white-space: nowrap;
}
.profile-table__th-key,
.profile-table tbody th {
  width: 30%;
}

/* SP（< 576px）では項目列の最低幅を確保しつつ折り返し許容 */
@media (max-width: 575.98px) {
  .profile-table__th-key,
  .profile-table tbody th {
    width: 38%;
    white-space: normal;
  }
  .profile-table > :not(caption) > * > * {
    padding: 0.625rem 0.5rem;
    font-size: 0.9375rem;       /* 15px */
  }
}

/* =============================
 * 情報公開テーブル
 * Figma table-exhibition (834px) の「項目」列幅を 230/834 ≒ 30% に合わせる
 * SP では table-responsive により横スクロール可能とする
 * ============================= */
.page-table__th-item {
  width: 30%;
  min-width: 12rem;
}

/* .subhead-bar は site.css の .subhead-box に一元管理済み */

/* =============================
 * district-card__image / disaster-kyumei-images（防災ページ）
 * ============================= */
.district-card__image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 411 / 319;
  border-bottom: 1px solid var(--border-secondary);
}

.disaster-kyumei-images {
  min-height: 259px;
}
.disaster-kyumei-images .row {
  width: 100%;
  margin: 0;
}

/* =============================
 * location-table: 拠点別アクセス情報テーブル
 * ============================= */
.location-table > thead > tr > th {
  background-color: var(--ns-bg-light);/* Bootstrap table-light 相当 */                    /* color.text.default */
}
.location-table > thead > tr > th:first-child {/* 左列（項目）の幅を確保。SP では table-responsive で横スクロール */
  width: 120px;
  min-width: 120px;
}
#womens-info .location-table > thead > tr > th:first-child {
    width: 200px;
    min-width: 200px;
}
#dispatch-info .location-table > thead > tr > th:first-child, #agreement .location-table > thead > tr > th:first-child {
    width: 230px;
    min-width: 230px;
}
#training .location-table > thead > tr > th{/*労働者派遣事業に関する情報公開（マージン率等） 教育訓練に関する事項*/
    width: 25%;
    min-width: 230px;
}
@media (max-width: 575.98px) { /*Bootstrap override*/         
  .location-table > thead > tr > th:first-child {
    width: 100px;
    min-width: 100px;
  }
}
.location-table .gmap{
  width:100%;
  height:450px;
}
@media (max-width: 768px) {
.location-table .gmap{
  width:100%;
  height:300px;
  margin:auto;
}
}
/* =============================
 * healthcare-table: 健康経営 取り組み内容と実績テーブル
 * ============================= */
.healthcare-table > thead > tr > th {
  background-color: var(--ns-bg-light);
}
.healthcare-table > thead > tr > th:first-child {
  width: 40%;
}

/* =============================
 * SP 対応: テーブル左列の固定幅を解除し、可読性を確保
 * ============================= */
@media (max-width: 575.98px) {
  .location-table > tbody > tr > th[scope="row"] {
    width: auto;
    white-space: normal;
  }
}

/* 事例図: 鉄道・道路事業 360°カメラ（Figma 2518:753） */
.tech-figure-media {
  width: 100%;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .tech-figure-media {
    width: 42%;
  }
}

/* =============================
 * 検索バーと一覧の区切り罫線（Figma Vector 1: stroke #9DA3AF, 1px）
 * Bootstrap の <hr> 既定上書きで色を border-color に統一
 * ============================= */
.page-31-news__divider {
  border-top: 1px solid var(--border-secondary);
  opacity: 1;
}

/* =============================
 * 件数表示: 「1,000 件」
 * Figma 1702:22404 total-text: 16px / 400 / #212529
 * ============================= */
.page-31-news__total {
  font-size: 16px;
  font-weight: 400;
  color: var(--bs-body-color);
  white-space: nowrap;
}

/* =============================
 * 一覧 1 行カード: 罫線 1px（Figma Vector 102 を border-color に統一）
 * 行のホバー時に薄赤背景でアフォーダンスを与える
 * ============================= */
.page-31-news__item {
  border-bottom: 1px solid var(--border-secondary);
}
.page-31-news__item:first-child {
  border-top: 1px solid var(--border-secondary);
}

.page-31-news__row {
  padding-inline: .25rem;
  transition: background-color .15s ease-in-out;
}
.page-31-news__row:hover,
.page-31-news__row:focus-visible {
  background-color: rgba(var(  --brand-color-rgb), 0.05);
}

/* 日付: Figma 1702:22405 yyyy.mm.dd 16px / 400 / #212529 / 80×26 */
.page-31-news__date {
  flex-shrink: 0;
  width: 6em;             /* 「2026.04.10」を 1 行で固定幅収容 */
  font-size: 16px;
  font-weight: 400;
  color: var(--bs-body-color);
  font-variant-numeric: tabular-nums;
}

/* タイトル: Figma 16px / 400 / #212529、1 行 ellipsis（Figma 注記の 3 行は SP では解除しない方針） */
.page-31-news__title-text {
  min-width: 0;            /* flex 内 text-truncate を効かせる前提 */
  font-size: 16px;
  font-weight: 400;
  color: var(--bs-body-color);
}

/* 矢印: Figma に明示はないがサイト共通の一覧→詳細導線として 24px 級 */
.page-31-news__arrow {
  font-size: 1.25rem;       /* 約 20px、icon font の余白込みで実視覚 24px 弱 */
  flex-shrink: 0;
}

/* =============================
 * カテゴリタグ
 * ============================= */
.page-31-news__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4em;
  padding: .15rem .5rem;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
}
.page-31-news__tag--muted {
  background-color: var(--ns-bg-light);            /* Bootstrap $gray-100 相当 */
  border: 1px solid var(--border-secondary);
  color: var(--bs-body-color);
}
.page-31-news__tag--danger {
  background-color: var(  --brand-color);
  border: 1px solid var(  --brand-color);
  color: var(--bs-white, #fff);
}

/* =============================
 * SP: 一覧 1 行カードを縦積みに切り替え（日付・タグ・タイトル・矢印の順）
 * 768px 未満では 1 行に収めると詰まりすぎるため、tags をタイトル下に降ろす
 * ============================= */
@media (max-width: 767.98px) {
  .page-31-news__row {
    flex-wrap: wrap;
    row-gap: .25rem;
  }
  .page-31-news__date {
    width: auto;
  }
  .page-31-news__title-text {
    flex-basis: 100%;
    order: 3;
    white-space: normal;    /* SP は ellipsis を解除して全文表示 */
    overflow: visible;
    text-overflow: clip;
  }
  .page-31-news__arrow {
    margin-left: auto;
  }
}

/* =============================
 * ページネーション現在ページ: site.css の   --brand-color を引き、
 * Bootstrap デフォルトの primary 色を上書きする
 * ============================= */
.pagination {
  --bs-pagination-active-bg: var(  --brand-color);
  --bs-pagination-active-border-color: var(  --brand-color);
  --bs-pagination-color: var(--bs-body-color);
  --bs-pagination-hover-color: var(  --brand-color);
  --bs-pagination-focus-color: var(  --brand-color);
  --bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(var(  --brand-color-rgb), .25);
}


/* =============================
 * 記事ヘッダー: H1 + タグ群 + シェアボタンのレイアウト微調整
 * Figma 整合: H1（28px/700）+ タグ群左寄せ + シェアボタン右寄せ
 * ============================= */
.page-32-news-detail__article-header {
  /* タグ群とシェアボタン群のあいだに 1rem 以上のすき間を確保 */
  row-gap: 1rem;
}

/* =============================
 * 日付タグ: Figma fill #F8F9FA / 角丸 8 / 14px
 * Bootstrap の .rounded-2 ≒ 4px との差を吸収
 * ============================= */
.page-32-news-detail__date-tag {
  background-color: var(--ns-bg-light);
  color: var(--bs-body-color);
  border-radius: 8px;
  font-weight: 400;
}

/* =============================
 * カテゴリタグ: アイコン + ラベル
 * design-tokens: brand-primary-pale (#FEF2F3) 背景 + brand-primary (#E60012) 文字色
 * Figma 上は 144×40・角丸 20 のピル形状
 * ============================= */
.page-32-news-detail__category-tag {
  background-color: var(--ns-bg-pale);
  color: var(  --brand-color);
}

/* =============================
 * シェアボタン: 38×38 円形
 * Figma 整合: 6 個、間隔 12px、サイズ 38px
 * 通常時は背景なし（audit 2-7 で揺れを統一）、hover/focus で薄赤背景に
 * ============================= */
.page-32-news-detail__share-btn {
  width: 38px;
  height: 38px;
  color: var(--bs-body-color);
  background-color: transparent;
  border: 1px solid var(--border-secondary);
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.page-32-news-detail__share-btn:hover,
.page-32-news-detail__share-btn:focus-visible {
  background-color: var(--ns-bg-pale);
  color: var(  --brand-color);
  border-color: var(  --brand-color);
}

/* =============================
 * 記事本文画像: Figma 832×524（aspect ≒ 1.587）
 * ナローカラム（max 856px）に収まる範囲で full-width
 * ============================= */
.page-32-news-detail__figure {
  margin-inline: 0;
}
.page-32-news-detail__figure-img {
  aspect-ratio: 832 / 524;
  object-fit: cover;
  border-radius: 8px;
}

/* =============================
 * 記事本文: 16px / 行間は Bootstrap 既定 1.5 を維持
 * 段落間の余白は HTML 側のユーティリティ（.mb-3）で制御するため
 * ここでは色のみ設計トークン body 既定値に委ね、追加上書きなし
 * ============================= */
.page-32-news-detail__body p {
  /* Figma 計測 16px は Bootstrap 既定 1rem と一致するため再指定不要。
   * ナローカラム内で長文の読みやすさを少しだけ高める letter-spacing 微調整のみ。 */
  letter-spacing: 0.01em;
}


/* =============================
 * プライバシーマーク登録証カード
 * Figma: 画像 112×161 + キャプション 13.6px → 14px に丸め
 * ============================= */
.pmark-card img {
  max-width: 112px;
  height: auto;
}
.pmark-card__caption {
  font-size: 14px;
}

/* =============================
 * お問い合わせブロックの行リスト
 * 行頭の中黒（・）は本文に含めているため、padding は最小。
 * 長い行は折返し、住所と TEL のインデントを若干整える。
 * ============================= */
.contact-block__lines li {
  word-break: break-word;
}


/* =============================
 * 登録証画像 figure: Figma node 1702:22936 / 1702:22972
 * 画像サイズ 112×161 中央寄せ、Bootstrap .border + --border-secondary で罫線
 * Figma 上の #D9D9D9 罫線はトークン未登録のため border.default に統一
 * ============================= */
.policy-cert-figure {
  margin-inline: auto;
}
.policy-cert-figure__img {
  max-width: 100%;
  height: auto;
}
/* キャプション: typography.card-eyebrow（13.6px → 14px に丸め） */
.policy-cert-figure__caption {
  font-size: 0.875rem;
}

/* =============================
 * sitemap/index.html
 * ============================= */
@media (min-width: 768px) {
  .sitemap-cat {
    border-right: 1px solid var(--bs-border-color);
  }
}
/* =============================
 * 拠点地図の　アクセス
 * ============================= */
.location-table ul{
    list-style-type: disc;
    padding-left: 1.5rem;
}
/* =============================
 * お知らせ一覧/詳細
 * ============================= */
/* --- お知らせ一覧本文 --- */
.news-list {
    max-width: var(--news-content-max);
    margin-left: auto;
    margin-right: auto;
}

.news-list__page-title {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    margin-top: 1.25rem;
    margin-bottom: 1.5rem;
    color: var(--news-page-title-color);
}

.news-list__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--news-toolbar-border-color);
}

.news-list__toolbar-heading {
    margin: 0;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--news-toolbar-color);
    flex-shrink: 0;
}

.news-list__filter-form {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

.news-list__filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    padding: 0;
    margin: 0;
}

.news-list__filter-label {
    margin: 0;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--news-toolbar-color);
}

.news-list__select {
    max-width: 6.5rem;
    min-width: 6.5rem;
    border-color: var(--news-border);
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.6;
}

/* Bootstrap .form-select より優先してタイポを揃える */
/*.news-list__filter .news-list__select.form-select {
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.6;
}*/

.news-list__select:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.news-list__count-pager-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.news-list__count {
    margin: 0;
    /*font-weight: 400;
    font-size: 1rem;
    line-height: 1.6;*/
    color: var(--news-count-color);
}

.news-list__pagination-wrap--top {
    margin-left: auto;
    margin-bottom: 0;
    flex: 0 0 auto;
}

.news-list__pagination-wrap {
    margin-bottom: 0;
}
.news-list__pagination-wrap--bottom {
    display: flex;
    justify-content: flex-end;
    margin-top: 1.5rem;
    margin-bottom: 0;
}
.news-list__pager {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 0;
}
.news-list__pager > .news-list__pager-arrow--prev + .news-list__pager-list {
    margin-left: -1px;
}
.news-list__pager-list + .news-list__pager-arrow--next {
    margin-left: -1px;
}
.news-list__pager-list {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}
.news-list__pager-list > .news-list__pager-item + .news-list__pager-item {
    margin-left: -1px;
}
.news-list__pager-item {
    display: inline-flex;
}
.news-list__pager-item--ellipsis {
    margin: 0;
    padding: 0;
    user-select: none;
}
.news-list__pager-link,
.news-list__pager-arrow,
.news-list__pager-ellipsis {
    position: relative;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.5rem;
    /*font-weight: 400;
    font-size: 1rem;
    line-height: 1.6;*/
    color: var(--news-toolbar-pagination-color);
    border: 1px solid var(--news-pagination-border);
    background: #fff;
    border-radius: 0;
}
.news-list__pager-link {
    text-decoration: none;
}
.news-list__pager-arrow {
    text-decoration: none;
}
.news-list__pager-arrow--prev {
    border-top-left-radius: var(--news-pagination-end-radius);
    border-bottom-left-radius: var(--news-pagination-end-radius);
}
.news-list__pager-arrow--next {
    border-top-right-radius: var(--news-pagination-end-radius);
    border-bottom-right-radius: var(--news-pagination-end-radius);
}
.news-list__pager-link:hover:not(.is-current),
.news-list__pager-link:focus-visible:not(.is-current) {
    z-index: 1;
    background: rgba(230, 25, 41, 0.06);
    outline: none;
}
.news-list__pager-link:focus-visible {
    z-index: 1;
    box-shadow: 0 0 0 2px rgba(230, 25, 41, 0.35);
}
.news-list__pager-link.is-current {
    z-index: 1;
    /*font-weight: 400;
    font-size: 1rem;
    line-height: 1.6;*/
    color: #fff;
    background:var( --brand-color);
    border: 1px solid var( --brand-color);
}
.news-list__pager-link.is-current:hover,
.news-list__pager-link.is-current:focus-visible {
    color: #fff;
    background: var( --brand-color);
    border-color: var( --brand-color);
}
.news-list__pager-arrow:hover:not(.is-disabled),
.news-list__pager-arrow:focus-visible:not(.is-disabled) {
    z-index: 1;
    background: rgba(230, 25, 41, 0.06);
    outline: none;
}
.news-list__pager-arrow:focus-visible:not(.is-disabled) {
    z-index: 1;
    box-shadow: 0 0 0 2px rgba(230, 25, 41, 0.35);
}
.news-list__pager-arrow.is-disabled {
    z-index: 0;
    color: #adb5bd;
    border-color: var(--news-pagination-border);
    background: #f8f9fa;
    pointer-events: none;
    cursor: default;
}
.news-list__item {
    border-bottom: 1px solid var(--news-list-border-color);
}
.news-list__article {
    padding: 1rem 0;
}
@media (min-width: 768px) {
    .news-list__article {
        padding: 1.125rem 0;
    }
}

/* 1行目: 日付（＋ New）、2行目: タイトル（全幅） */
.news-list__row {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 0.35rem 0.75rem;
    align-items: center;
}

@media (min-width: 768px) {
    .news-list__row {
        gap: 0.45rem 1rem;
    }
}

.news-list__date {
    grid-column: 1;
    grid-row: 1;
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--news-date-color);
    white-space: nowrap;
}

.news-list__meta {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    justify-self: start;
    min-width: 0;
}

.news-list__new {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.875rem;
    height: 1.875rem;
    padding: 0;
    font-weight: 700;
    font-size: 0.85rem;
    line-height: 1.6;
    color: #fff;
    background: #dc3545;
    border-radius: 0.25rem;
}

.news-list__title-link {
    grid-column: 1 / -1;
    grid-row: 2;
    /*font-weight: 400;
    font-size: 1rem;
    line-height: 1.6;*/
    color: var(--news-title-color);
    text-decoration: none;
    word-break: break-word;
}

.news-list__title-link:hover,
.news-list__title-link:focus-visible {
    color: var(--news-accent);
    text-decoration: underline;
}
.news-list__title-link:focus-visible {
    outline: 2px solid var(--news-accent);
    outline-offset: 2px;
}

/* =============================
 * SDGs page: section icons
 * min() で SP 時も親幅を超えない（インライン max-width 上書き img-fluid 問題の回避）
 * ============================= */
.sdgs-icon {
  max-width: 100%;
  height: auto;
}
.sdgs-icon--goals {
  max-width: min(1000px, 100%);
}
.sdgs-icon--planet {
  max-width: min(503px, 75%);
}
.sdgs-icon--people {
  max-width: min(200px, 30%);
}
.sdgs-icon--prosperity {
  max-width: min(605px, 90%);
}
.sdgs-icon--peace {
  max-width: min(504px, 75%);
}
.sdgs-icon--partnership {
  max-width: min(97px, 15%);
  max-height: 97px;
  width: auto;
}

/* =============================
 * business-contact: お問い合わせリンク（PC 2×2 / SP 1列）
 * ヘッダー .gnav__contact の赤白反転（枠線・文字・アイコン = --brand-color）
 * ============================= */
.business-contact__btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 1.5rem;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.4;
  white-space: normal;
  text-align: center;
  background-color: var(--bs-white, #fff);
  border: 1px solid var(--brand-color);
  color: var(--brand-color);
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.business-contact__btn:hover,
.business-contact__btn:focus-visible {
  background-color: var(--brand-color);
  border-color: var(--brand-color);
  color: var(--btn-secondary);
}
.business-contact__btn:focus-visible {
  outline: 2px solid var(--brand-color);
  outline-offset: 2px;
}
.business-contact__btn .bi {
  font-size: 1.5rem;
  flex-shrink: 0;
  line-height: 1;
  align-self: center;
  display: inline-flex;
  align-items: center;
}
@media (min-width: 768px) {
  .business-contact--single .col {
    display: flex;
    justify-content: center;
  }
  .business-contact--single .business-contact__btn {
    width: min(32rem, 100%);
    max-width: 100%;
  }
}
@media (max-width: 767.98px) {
  .business-contact .col {
    display: flex;
    justify-content: center;
  }
  .business-contact .business-contact__btn {
    padding: 0.5rem 1rem;
    width: 90%;
    max-width: 90%;
    margin-inline: auto;
  }
}