/* modifier.css - content1内で使用するユーティリティクラス */
/* 元サイト(base.css/common.css)から必要なものを移植 */

/* ============================================
   メニュー開閉オーバーレイのクリック透過
   body::after (z-index:999) がスティッキーヘッダー(z-index:100)の
   ハンバーガーボタンへのクリックを遮っていた問題の修正
   ============================================ */
body.is-menu-open::after {
  pointer-events: none;
}

/* ============================================
   サイト全体フォント上書き
   corporate.css/recruit.css の Zen Kaku Gothic New を置換
   ============================================ */
body {
  font-family: "Zen Maru Gothic", sans-serif;
}

/* ============================================
   トップページ アニメーションアイコン サイズ
   PC fallback (corporate.css の clamp(128px,16.6667vw,240px) を半減上書き)
   ============================================ */
.p-home-amination img {
  width: 100px;
}

@media (min-width: 768px) {
  .p-home-amination img {
    width: clamp(64px, 8.3333vw, 120px);
  }
}

/* ============================================
   トップページ アニメーションアイコン (SP用無限ループ斜めスクロール)
   上段: 左下→右上 (anime-up 方向)
   下段: 右上→左下 (anime-down 方向)

   ●● サイズ調整は --icon-size を変えるだけで全自動連動 ●●
   （column-gap・stagger・コンテナ高さ・ループ位置・keyframes すべて派生計算）

   - アイコン基本: var(--icon-size)
   - gap = icon × 0.2
   - 水平アイコン間隔（h-stride）= icon + gap
   - 垂直スタッガー間隔（v-stride）= h-stride × 0.57291（角度30°、tan30°≒0.5774を意図的に丸めた値）
   - 12個分の総横距離 total-h = h-stride × 12
   - 12個分の総縦距離 total-v = v-stride × 12
   ============================================ */
@media (max-width: 767px) {
  .p-home-amination {
    /* ===== ベースを変えれば全自動連動するパラメータ ===== */
    --icon-size: 32vw;
    --gap: calc(var(--icon-size) * 0.2);
    --h-stride: calc(var(--icon-size) + var(--gap));
    --v-stride: calc(var(--h-stride) * 0.57291);
    --total-h: calc(var(--h-stride) * 12);
    --total-v: calc(var(--v-stride) * 12);
    --container-h: calc(var(--total-v) + var(--icon-size) * -2.5);
    --row-h: calc(var(--container-h) - var(--icon-size) * 0.4);
    --row-offset: calc(var(--icon-size) * 2);
    --fade-h: calc(var(--icon-size) * 0.667);

    position: relative;
    height: var(--container-h);
    overflow: hidden;
  }

  .p-home-amination img {
    width: var(--icon-size);
    height: var(--icon-size);
  }

  /* スタッガー配置 (各アイコンの translateY = N × v-stride) */
  .p-home-amination img:nth-of-type(1) {
    transform: translateY(calc(var(--v-stride) * 1));
  }
  .p-home-amination img:nth-of-type(2) {
    transform: translateY(calc(var(--v-stride) * 2));
  }
  .p-home-amination img:nth-of-type(3) {
    transform: translateY(calc(var(--v-stride) * 3));
  }
  .p-home-amination img:nth-of-type(4) {
    transform: translateY(calc(var(--v-stride) * 4));
  }
  .p-home-amination img:nth-of-type(5) {
    transform: translateY(calc(var(--v-stride) * 5));
  }
  .p-home-amination img:nth-of-type(6) {
    transform: translateY(calc(var(--v-stride) * 6));
  }
  .p-home-amination img:nth-of-type(7) {
    transform: translateY(calc(var(--v-stride) * 7));
  }
  .p-home-amination img:nth-of-type(8) {
    transform: translateY(calc(var(--v-stride) * 8));
  }
  .p-home-amination img:nth-of-type(9) {
    transform: translateY(calc(var(--v-stride) * 9));
  }
  .p-home-amination img:nth-of-type(10) {
    transform: translateY(calc(var(--v-stride) * 10));
  }
  .p-home-amination img:nth-of-type(11) {
    transform: translateY(calc(var(--v-stride) * 11));
  }
  .p-home-amination img:nth-of-type(12) {
    transform: translateY(calc(var(--v-stride) * 12));
  }

  /* 上下のフェードで越境アイコンを自然に消す（ループノイズ対策） */
  .p-home-amination::before,
  .p-home-amination::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: var(--fade-h);
    z-index: 10;
    pointer-events: none;
  }
  .p-home-amination::before {
    top: 0;
    background: linear-gradient(to bottom, #fff, transparent);
  }
  .p-home-amination::after {
    bottom: 0;
    background: linear-gradient(to top, #fff, transparent);
  }

  /* 上段: top:0, 越境OK (overflow:visible) */
  .p-home-amination--up {
    display: block !important;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: var(--row-h);
    overflow: visible;
    z-index: 1;
  }
  .p-home-amination--up .p-home-amination--inner {
    display: flex;
    flex-direction: row-reverse;
    column-gap: var(--gap);
    position: absolute;
    top: 0;
    right: 0;
    width: max-content;
    animation: p-anime-up-sp 20s linear infinite;
  }
  .p-home-amination--up .p-home-amination--inner:last-child {
    top: var(--total-v);
    right: var(--total-h);
  }

  /* 下段: 上段からベース位置を --row-offset 下げる。越境OK */
  .p-home-amination--down {
    display: block !important;
    position: absolute;
    top: var(--row-offset);
    right: 0;
    width: 100%;
    height: var(--row-h);
    overflow: visible;
    z-index: 2;
  }
  .p-home-amination--down .p-home-amination--inner {
    display: flex;
    flex-direction: row-reverse;
    column-gap: var(--gap);
    position: absolute;
    top: 0;
    right: 0;
    width: max-content;
    animation: p-anime-down-sp 20s linear infinite;
  }
  .p-home-amination--down .p-home-amination--inner:last-child {
    top: calc(var(--total-v) * -1);
    right: calc(var(--total-h) * -1);
  }
}

/* keyframes の var() は animation 適用要素の祖先 (.p-home-amination) から継承で解決される。
   万一 var() が解決されない場合の fallback 値を併記（30vw 設定時の計算済み値） */
@keyframes p-anime-up-sp {
  0% {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(
      var(--total-h, 432vw),
      calc(var(--total-v, 247.5vw) * -1),
      0
    );
  }
}
@keyframes p-anime-down-sp {
  0% {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(
      calc(var(--total-h, 432vw) * -1),
      var(--total-v, 247.5vw),
      0
    );
  }
}

/* ============================================
   下層ページFVの装飾はみ出し防止
   スマホでパンくずに被る問題の修正
   ============================================ */
.p-sec__fv {
  overflow: hidden;
}

/* ============================================
   スマホ パンくず調整
   corporate.css/recruit.css の flex レイアウトを維持
   ============================================ */

/* ============================================
   トップMVスライダー画像の角丸
   ============================================ */
.p-home-fv__visual .splide__slide img {
  border-radius: 30px;
}

/* H補正: top-slide.tplの再生/一時停止ボタン削除後、スライド直下のバナーが詰まるため上余白を補う */
.p-home-banner {
  margin-top: clamp(20px, 2.6vw, 37px);
}

/* ============================================
   フォント
   ============================================ */
.mincho {
  font-family:
    游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", HGS明朝E, メイリオ,
    Meiryo, serif;
}

/* ============================================
   改行
   ============================================ */
.sp-only {
  display: none;
}

@media (max-width: 768px) {
  .sp-only {
    display: inline;
  }
}

/* ============================================
   HTML属性でサイズ指定された画像の幅を尊重
   CSSリセット(:where(img){width:100%})の上書き
   ============================================ */
.p-sec img[width] {
  width: auto;
  max-width: 100%;
}

/* ============================================
   テキスト配置
   ============================================ */
.tac {
  text-align: center;
}
.tar {
  text-align: right;
}
.tal {
  text-align: left;
}

/* ============================================
   フォントサイズ
   ============================================ */
.fsr18 {
  font-size: 18px;
}
.fsr22 {
  font-size: 22px;
}
.fsr23 {
  font-size: 23px;
}
.fsr26 {
  font-size: 26px;
}
.fsr30 {
  font-size: 30px;
}

/* ============================================
   インラインブロック中央寄せ
   左揃えテキストブロックを中央に配置する
   ============================================ */
.inline_block {
  display: inline-block;
  vertical-align: top;
  text-align: left;
}

/* ============================================
   リード文（大きめテキスト）
   ============================================ */
.lead_06 {
  color: #bababa;
  font-size: 30px;
  font-weight: bold;
  line-height: 1.1;
  text-align: center;
}
.lead_06 strong {
  display: block;
  color: #bc2f2f;
  font-size: 40px;
  margin-top: 10px;
}

/* 背景付きテキストボックス */
.lead_05 {
  background: #f0f0f0;
  padding: 40px 50px;
  line-height: 2.2;
}

/* 企業理念テキスト（会社案内） */
.text_01 {
  text-align: center;
  font-size: 26px;
  margin: 60px auto;
}
.text_02 {
  text-align: center;
  line-height: 2.2;
}

/* ============================================
   content1内の画像間隔
   ============================================ */
.content1 img {
  display: block;
  margin-top: 40px;
  margin-bottom: 40px;
  max-width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .content1 img {
    margin-top: 0;
    margin-bottom: 0;
  }
}

/* ============================================
   マージン
   ============================================ */
.mgt20 {
  margin-top: 20px !important;
}
.mgt30 {
  margin-top: 30px !important;
}
.mgt40 {
  margin-top: 40px !important;
}
.mgt60 {
  margin-top: 60px !important;
}
.mgb20 {
  margin-bottom: 20px !important;
}
.mgb30 {
  margin-bottom: 30px !important;
}
.mgb40 {
  margin-bottom: 40px !important;
}
.mgb50 {
  margin-bottom: 50px !important;
}
.mgb60 {
  margin-bottom: 60px !important;
}
.mgb80 {
  margin-bottom: 80px !important;
}
.mgtb20 {
  margin-top: 20px !important;
  margin-bottom: 20px !important;
}
.mgtb45 {
  margin-top: 45px !important;
  margin-bottom: 45px !important;
}

/* ============================================
   背景セクション
   ============================================ */
.bg-history {
  padding: 90px 30px;
  background: url(/userfiles/images/company/history/bg_history.jpg) no-repeat
    center top;
  background-size: 100%;
}
.bg-history > * {
  background-color: #fff;
  padding: 30px;
}

.bg-outline {
  padding: 0;
  background: none;
  margin-bottom: 0;
}
.bg-outline > * {
  background-color: transparent;
  padding: 0;
}

/* ============================================
   画像重ね合わせ（catch_img）
   ============================================ */
.catch-img {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
}
.catch-img .catch-img__back {
  position: absolute;
  top: 0;
  right: 7px;
  width: 100%;
  z-index: 0;
}
.catch-img .catch-img__front {
  position: relative;
  width: 82%;
  z-index: 1;
  margin: 0 auto;
}

/* 写真中央 */
.img-center {
  display: block;
  margin: 0 auto;
}

/* ============================================
   リスト装飾（赤矢印マーカー）
   ============================================ */
ul.list_style_01 {
  padding: 0.5em;
  list-style-type: none;
}
ul.list_style_01 li {
  position: relative;
  padding: 0em 0.3em 0.3em 1.3em;
}
ul.list_style_01 li::before {
  position: absolute;
  content: "";
  display: block;
  top: 0.5em;
  left: 0;
  width: 6px;
  height: 6px;
  border-right: 3px solid #bc2f2f;
  border-bottom: 3px solid #bc2f2f;
  transform: rotate(-45deg);
}

/* ============================================
   2カラム用
   ============================================ */
/* 汎用2カラムレイアウト */
.l-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}

/* スマホで縦並び */
@media (max-width: 768px) {
  .l-flex {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ============================================
   カードレイアウト
   ============================================ */
.card-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.card-item {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 30px;
  background: #fff;
}

.card-item img {
  display: block;
  margin-top: 0;
  margin-bottom: 12px;
  width: 100%;
  height: auto;
}

.card-item .card-title {
  font-size: 26px;
  font-weight: bold;
  text-align: center;
  color: #d60000;
}

.card-item p {
  margin-top: 10px;
}

@media (max-width: 768px) {
  .card-list {
    grid-template-columns: 1fr;
  }

  .card-item {
    padding: 20px;
  }

  .card-item .card-title {
    font-size: 20px;
  }
}

/* ============================================
   レスポンシブ
   ============================================ */
@media screen and (max-width: 767px) {
  .lead_06 {
    font-size: 22px;
  }
  .lead_06 strong {
    font-size: 30px;
  }
  .lead_05 {
    padding: 20px;
  }
  .text_01 {
    font-size: 20px;
    margin: 30px auto;
  }
  .bg-history {
    padding: 30px 15px;
  }
  .bg-outline {
    padding: 0;
  }
}

/* ============================================
   採用 仕事を知る
   ============================================ */

/* 先輩社員の声 */
.member_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.member_list li {
  position: relative;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.member_list li:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.member_list a {
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.member_list figure {
  margin: 0;
  aspect-ratio: 310 / 236;
  overflow: hidden;
}

.member_list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.member_list li > div,
.member_list li > a > div {
  padding: 16px;
  text-align: center;
}

.member_list li div span:first-child {
  display: block;
  font-size: 14px;
  color: #666;
  margin-bottom: 4px;
}

.member_list strong {
  font-size: 18px;
  color: #222;
}

@media (max-width: 1024px) {
  .member_list {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .member_list {
    grid-template-columns: 1fr;
  }
}

.member_list li.is-new::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 12px;
  width: 60px;
  height: 60px;
  background: url("/userfiles/images/recruit/business/icon_new.png") no-repeat
    center / contain;
  z-index: 2;
}

.member_list li {
  position: relative;
}

/* ============================================
   採用 よくある質問
   ============================================ */

/* FAQイントロカード */
.faq-intro {
  background: #ffffff;
  border-radius: 10px;
  padding: 50px;
  text-align: center;
  margin-top: 60px;
  margin-bottom: 80px;
}
.faq-intro__title {
  display: block;
  max-width: 761px;
  margin: 0 auto 30px;
}
.faq-intro__title img {
  width: 100%;
  height: auto;
}
.faq-intro__text {
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
  max-width: 900px;
  margin: 0 auto;
  text-align: left;
}

/* Q&Aセクション */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

/* 質問エリア */
.faq-item__question {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 35px;
}
.faq-item__q-icon {
  position: relative;
  width: 51px;
  height: 51px;
  flex-shrink: 0;
}
.faq-item__q-icon img {
  width: 51px;
  height: 51px;
  display: block;
}
.faq-item__q-icon span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -55%);

  font-size: 30px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 3px;
  color: #ffffff;
}
.faq-item__q-text {
  font-size: 28px;
  font-weight: 700;
  line-height: 38px;
  letter-spacing: 2.8px;
  color: #2a2a2a;
  padding-top: 6px;
}

/* 回答カード */
.faq-item__answer {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: #ffffff;
  border-radius: 10px;
  padding: 30px 30px 30px 0;
  margin-left: 25px;
}

/* 回答者アイコン */
.faq-item__a-icon {
  width: 86px;
  height: 86px;
  flex-shrink: 0;
  margin-left: 30px;
}

/* 回答テキストエリア（A.ラベルと本文をgrid 2カラムで配置） */
.faq-item__a-content {
  flex: 1;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 15px;
  align-items: baseline;
}
.faq-item__a-label {
  font-size: 36px;
  font-weight: 900;
  line-height: 36px;
  letter-spacing: 3.6px;
  color: #bc2f2f;
  display: block;
  margin: 0;
  white-space: nowrap;
}
.faq-item__a-text {
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
  display: block;
}

/* h2のbefore非表示（recruit.cssのh2::beforeアイコン対策） */
.faq-intro h2::before,
.faq-item__q-text::before {
  display: none !important;
}

@media screen and (max-width: 768px) {
  .faq-intro {
    padding: 30px 20px;
  }
  .faq-intro__title {
    max-width: 295px;
  }
  .faq-intro__text {
    max-width: 100%;
  }
  .faq-item__question {
    gap: 15px;
  }
  .faq-item__q-text {
    font-size: 22px;
    line-height: 32px;
    letter-spacing: 2.2px;
  }
  .faq-item__answer {
    flex-direction: column;
    align-items: center;
    padding: 25px 20px;
    margin-left: 0;
  }
  .faq-item__a-icon {
    margin-left: 0;
  }
  .faq-list {
    gap: 40px;
  }
}

/* ============================================
   採用 働く環境を知る
   ============================================ */

/* ２からむ */
.workstyle_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}

.workstyle_list li {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* テキスト部分を伸ばす */
.workstyle_list p {
  flex: 1;
}

/* 画像を下に固定 */
.workstyle_list figure {
  margin-top: 20px;
}

/* 画像 */
.workstyle_list figure {
  margin-top: 20px;
}

.workstyle_list img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 768px) {
  .workstyle_list {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   働く環境を知る ページ専用スタイル
   /recruit/workstyle/
   ============================================ */

/* 数字統計画像（PC・SP共用、レスポンシブ） */
.p-sec__main-inner .p-workstyle__stats {
  margin: 30px 0 60px;
}
.p-workstyle__stats img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
}

/* 「CAN < WILL」キャッチカード Figma 808:7636 */
.p-sec__main-inner .p-workstyle__catch-card {
  width: 1000px;
  max-width: 100%;
  margin: 50px auto 60px;
  padding: 50px;
  background: #ffffff;
  border-radius: 10px;
  box-sizing: border-box;
}
.p-sec__main-inner .p-workstyle__catch-line {
  font-size: 22px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: 0.1em;
  color: #bc2f2f;
  margin: 0;
  text-align: left;
}
.p-sec__main-inner .p-workstyle__catch-line + .p-workstyle__catch-line {
  margin-top: 14px;
}

/* 研修制度 PC/SP 1枚画像切替（<picture>で切替） */
.p-sec__main-inner .p-workstyle__training {
  margin: 30px 0 60px;
}
.p-workstyle__training img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-workstyle__catch-card {
    padding: 30px 20px;
    margin: 30px auto 40px;
  }
  .p-sec__main-inner .p-workstyle__catch-line {
    font-size: 18px;
    line-height: 28px;
    letter-spacing: 0.05em;
  }
  .p-sec__main-inner .p-workstyle__catch-line + .p-workstyle__catch-line {
    margin-top: 10px;
  }
}

/* ============================================
   働く環境を知る 4カテゴリ詳細テーブル
   Figma PC: 1007:706/707/726/745
   ============================================ */
.p-sec__main-inner .p-workstyle__cats {
  width: 1000px;
  max-width: 100%;
  margin: 30px auto 60px;
}
.p-sec__main-inner .p-workstyle__cat {
  margin: 0 0 40px;
}
.p-sec__main-inner .p-workstyle__cat:last-child {
  margin-bottom: 0;
}
.dir_recruit .p-sec__main-inner .p-workstyle__cat-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0.1em;
  color: #2a2a2a;
  padding: 0 0 15px 15px;
  margin: 0 0 15px;
  border-bottom: 2px solid #60a417;
}
.dir_recruit
  .p-sec__main-inner
  .p-workstyle__cat--sales
  .p-workstyle__cat-title {
  border-bottom-color: #e3c800;
}
.dir_recruit
  .p-sec__main-inner
  .p-workstyle__cat--logistics
  .p-workstyle__cat-title {
  border-bottom-color: #e28a23;
}
.dir_recruit
  .p-sec__main-inner
  .p-workstyle__cat--self
  .p-workstyle__cat-title {
  border-bottom-color: #5bc777;
}
.p-sec__main-inner .p-workstyle__cat-list {
  list-style: none;
  margin: 17px 0 0;
  padding: 0;
}
.p-sec__main-inner .p-workstyle__cat-item {
  display: grid;
  grid-template-columns: 300px 1fr;
  min-height: 100px;
  margin: 0 0 8px;
}
.p-sec__main-inner .p-workstyle__cat-item:last-child {
  margin-bottom: 0;
}
.p-sec__main-inner .p-workstyle__cat-label {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 22px;
  letter-spacing: 0.1em;
  color: #2a2a2a;
  text-align: center;
  background: #bdea8d;
}
.p-sec__main-inner .p-workstyle__cat--sales .p-workstyle__cat-label {
  background: #ffee6b;
}
.p-sec__main-inner .p-workstyle__cat--logistics .p-workstyle__cat-label {
  background: #fbce99;
}
.p-sec__main-inner .p-workstyle__cat--self .p-workstyle__cat-label {
  background: #b5f2c5;
}
.p-sec__main-inner .p-workstyle__cat-desc {
  display: flex;
  align-items: center;
  padding: 16px 26px;
  font-size: 18px;
  font-weight: 500;
  line-height: 27px;
  letter-spacing: 0.05em;
  color: #2a2a2a;
  background: #ffffff;
}
@media (max-width: 768px) {
  .p-sec__main-inner .p-workstyle__cats {
    margin: 20px auto 40px;
    padding: 0 20px;
  }
  .p-sec__main-inner .p-workstyle__cat {
    margin: 0 0 30px;
  }
  .p-sec__main-inner .p-workstyle__cat-item {
    display: block;
    margin: 0 0 17px;
  }
  .p-sec__main-inner .p-workstyle__cat-label {
    width: 100%;
    min-height: 48px;
    padding: 13px 12px;
  }
  .p-sec__main-inner .p-workstyle__cat-desc {
    width: 100%;
    padding: 20px;
  }
}

/* ============================================
   サイトマップ
   ============================================ */
.sitemap {
  margin-top: 60px;
}

/* 親ページ見出し */
.sitemap__parent {
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: 2.4px;
  color: #2a2a2a;
  margin: 0 0 30px;
}
.sitemap__parent a {
  color: inherit;
  text-decoration: underline;
}
.sitemap__parent::before {
  display: none !important;
}
.sitemap__parent {
  background-image: none !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
}

/* 区切り線 */
.sitemap__separator {
  margin: 50px 0;
}
.sitemap__separator img {
  width: 100%;
  height: 1px;
  display: block;
}

/* 子ページ */
.sitemap__children {
  list-style: none;
  padding: 0;
  margin: 0 0 0 30px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.sitemap__child > a {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f9f4f4;
  border-radius: 10px;
  padding: 10px 20px;
  min-height: 50px;

  font-size: 20px;
  font-weight: 500;
  line-height: 30px;
  letter-spacing: 2px;
  color: #2a2a2a;
  text-decoration: underline;
}
.sitemap__arrow {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* 孫ページ */
.sitemap__grandchildren {
  list-style: none;
  padding: 10px 0 0 60px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sitemap__grandchildren a {
  font-size: 16px;
  font-weight: 500;
  line-height: 30px;
  letter-spacing: 1.6px;
  color: #2a2a2a;
  text-decoration: underline;
}

@media screen and (max-width: 768px) {
  .sitemap__parent {
    font-size: 22px;
    line-height: 32px;
    letter-spacing: 2.2px;
  }
  .sitemap__children {
    margin-left: 0;
  }
  .sitemap__child > a {
    padding: 10px;
  }
  .sitemap__grandchildren {
    padding-left: 30px;
  }
}

/* ============================================
   404 Not Found
   ============================================ */
.error-404 {
  text-align: center;
  padding: 60px 0 80px;
}

.error-404__photos {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0;
  margin-bottom: 50px;
}
.error-404__photo {
  display: block;
  height: auto;
}
.error-404__photo--1 {
  width: 102px;
}
.error-404__photo--2 {
  width: 124px;
}
.error-404__photo--3 {
  width: 163px;
}
.error-404__photo--4 {
  width: 191px;
}

.dir_error .error-404__heading {
  font-size: 24px;
  font-weight: 900;
  line-height: 34px;
  letter-spacing: 2.4px;
  color: #bc2f2f;
  margin-bottom: 30px;
}
.dir_error .error-404__heading::before,
.dir_error .error-404__heading::after {
  display: none !important;
}

.error-404__text {
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
  max-width: 645px;
  margin: 0 auto 50px;
}

.error-404__btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 350px;
  height: 80px;
  background: #2a2a2a;
  border-radius: 40px;
  padding: 0 15px 0 40px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.error-404__btn:hover {
  opacity: 0.8;
}
.error-404__btn-text {
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 1px;
  color: #ffffff;
}
.error-404__btn-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  background: #ffffff;
  border-radius: 40px;
}

/* 404 サイト内検索ボックス（灰色背景の枠） */
.error-404__search-box {
  width: 1000px;
  max-width: 100%;
  margin: 0 auto 60px;
  padding: 40px 0;
  background: #f5f5f5;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
.error-404__search-box .p-search-form {
  margin: 0;
  width: auto;
  max-width: 100%;
}

/* 404 トップページへ戻るリンク */
.error-404__home-link {
  margin: 24px 0 0;
  text-align: center;
}
.error-404__home-link a {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 28px;
  letter-spacing: 0.9px;
  color: #bc2f2f;
  text-decoration: underline;
  transition: opacity 0.2s ease;
}
.error-404__home-link a:hover {
  opacity: 0.75;
}

@media screen and (max-width: 768px) {
  .error-404__photo--1 {
    width: 68px;
  }
  .error-404__photo--2 {
    width: 82px;
  }
  .error-404__photo--3 {
    width: 108px;
  }
  .error-404__photo--4 {
    width: 127px;
  }
  .error-404__text {
    text-align: left;
    max-width: 100%;
  }
  .error-404__btn {
    width: 100%;
    max-width: 335px;
  }
  .error-404__search-box {
    padding: 24px 18px;
    margin-bottom: 40px;
  }
  .error-404__home-link a {
    font-size: 16px;
    line-height: 26px;
  }
  /* SP は <br class="sp"> 改行のみで自動折り返しさせない（「た」だけ次行に行く問題防止）
     corporate.css の SP h2 font-size (32px) はコンテナを超えるため縮小 */
  .dir_error .error-404__heading {
    white-space: nowrap;
    font-size: 20px;
    line-height: 30px;
    letter-spacing: 1px;
  }
}

/* ============================================
   ハンバーガーメニュー内 サイト内検索
   ============================================ */
.c-side-nav {
  padding-bottom: clamp(40px, 5.2vw, 80px);
}

.c-side-nav__search {
  margin-top: 20px;
}
.c-side-nav__search form {
  display: flex;
  align-items: center;
  background: #f5f5f5;
  border-radius: 10px;
  height: 60px;
  padding: 10px 10px 10px 20px;
}
.c-side-nav__search-input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: none;
  background: transparent;

  font-size: 16px;
  color: #2a2a2a;
  letter-spacing: 0.8px;
  outline: none;
}
.c-side-nav__search-input::placeholder {
  color: #8f8f8f;
}
.c-side-nav__search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  background: #2a2a2a;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.c-side-nav__search-btn img {
  width: 24px;
  height: 24px;
  display: block;
}
.c-side-nav__search-btn:hover {
  opacity: 0.8;
}

/* ============================================
   サイト内検索
   ============================================ */

/* 検索フォーム */
.p-search-form {
  margin: 40px 0;
  background: #f5f5f5;
  border-radius: 10px;
  padding: 40px;
}
.p-search-form form {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.p-search-form__input {
  flex: 1;
  max-width: 400px;
  height: 40px;
  padding: 0 16px;
  border: 1px solid #7b7b7b;
  border-radius: 10px;

  font-size: 16px;
  color: #2a2a2a;
  background: #fff;
}
.p-search-form__input::placeholder {
  color: #8f8f8f;
}
.p-search-form__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 150px;
  height: 40px;
  background: #2a2a2a;
  border: none;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.2s ease;
  flex-shrink: 0;
}
.p-search-form__btn:hover {
  opacity: 0.8;
}

/* 検索結果なし */
.p-search-noresult {
  margin: 40px 0;
  padding: 30px;
  background: #f9f4f4;
  border-radius: 10px;
  text-align: center;
}
.p-search-noresult__keyword {
  font-size: 20px;
  font-weight: 700;
  color: #bc2f2f;
  margin-bottom: 10px;
}
.p-search-noresult__txt {
  font-size: 16px;
  color: #2a2a2a;
  line-height: 1.8;
}

/* 件数表示 */
.p-search__count {
  margin: 30px 0 20px;

  font-size: 16px;
  color: #2a2a2a;
  line-height: 26px;
}
.p-search__count .num {
  font-size: 26px;
  font-weight: 700;
  color: #bc2f2f;
  letter-spacing: 2.6px;
  margin-right: 2px;
}
.p-search__count .unit {
  margin-right: 4px;
}

/* 検索結果リスト */
.p-search-list {
  margin-bottom: 60px;
  border-bottom: 1px solid #eee;
}
.p-search-list__item {
  padding: 30px 0;
  border-top: 1px solid #eee;
}
.p-search-list__title {
  font-size: 26px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 2.6px;
  margin-bottom: 10px;
}
/* corporate.css の .p-sec__main-inner h3 スタイルを上書き（詳細度対策） */
.p-sec__main-inner .p-search-list__title {
  font-size: 26px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 2.6px;
  margin-top: 0;
}
.p-search-list__title::before,
.p-search-list__title::after {
  display: none !important;
}
.p-search-list__title a {
  color: #075cbd;
  text-decoration: none;
}
.p-search-list__title a:hover {
  text-decoration: underline;
}
.p-search-list__url {
  font-size: 16px;
  color: #2a2a2a;
  letter-spacing: 0.8px;
  line-height: 26px;
  margin-bottom: 8px;
  word-break: break-all;
}
.p-search-list__text {
  font-size: 16px;
  color: #2a2a2a;
  line-height: 26px;
  letter-spacing: 1.6px;
  margin: 0;
}

/* ページャー */
.p-news-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 40px 0 60px;
  flex-wrap: wrap;
}
.p-news-pager__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid #ccc;
  border-radius: 50%;

  font-size: 15px;
  color: #2a2a2a;
  text-decoration: none;
  background: #fff;
  transition:
    background 0.2s ease,
    color 0.2s ease;
}
.p-news-pager__item:hover {
  background: #2a2a2a;
  color: #fff;
  border-color: #2a2a2a;
}
.p-news-pager__item--arrow {
  border-color: #2a2a2a;
}
.p-news-pager__item--current {
  background: #2a2a2a;
  color: #fff;
  border-color: #2a2a2a;
  pointer-events: none;
}
.p-news-pager__dots {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 0 4px;
}
.p-news-pager__dot {
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #ccc;
}

/* ============================================
   下層ページ カードリスト（list-common）
   ============================================ */
.p-sec__fig-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 35px;
  margin-top: 60px;
}

.p-sec__fig-list-item {
  width: 100%;
}

.p-sec__fig-list-item a {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 2px solid #bc2f2f;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.p-sec__fig-list-item a:hover {
  opacity: 0.8;
}

.p-sec__fig-list-item figure {
  margin: 0;
  padding: 10px 10px 0;
}

.p-sec__fig-list-item figure img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  aspect-ratio: 290 / 214;
  object-fit: cover;
}

.p-sec__fig-list-item figcaption {
  padding: 0;
  text-align: center;

  font-weight: 700;
  font-size: 20px;
  line-height: 26px;
  letter-spacing: 2px;
  color: #bc2f2f;
}
/* <a> でラップされた figcaption はカードリンクとして下線＋余白を付ける */
.p-sec__fig-list-item a figcaption {
  text-decoration: underline;
  padding: 24px 20px 20px;
}
.p-sec__fig-list-item figcaption p {
  margin-top: 0;
}

@media screen and (max-width: 768px) {
  .p-sec__fig-list {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 24px;
  }
  .p-sec__fig-list-item figcaption {
    font-size: 18px;
    letter-spacing: 1.8px;
    padding: 20px 16px 18px;
  }
}

@media screen and (max-width: 768px) {
  .p-search-form {
    padding: 24px 16px;
  }
  .p-search-form form {
    flex-direction: column;
    align-items: stretch;
  }
  .p-search-form__input {
    max-width: 100%;
  }
  .p-search-form__btn {
    width: 100%;
  }
  .p-search-list__title,
  .p-sec__main-inner .p-search-list__title {
    font-size: 18px;
    letter-spacing: 1.8px;
    line-height: 1.5;
  }
  .p-search-list__url {
    font-size: 13px;
  }
  .p-search-list__text {
    font-size: 14px;
    letter-spacing: 0.8px;
  }
}

/* ============================================
   お知らせ詳細 一覧へ戻るボタン
   form.css の p-form-btn スタイルを再利用
   ============================================ */
.p-topics-back {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

.p-topics-back .p-form-btn {
  position: relative;
  display: flex;
  align-items: center;
  width: 350px;
  height: 80px;
  padding: 0 30px;
  border: none;
  border-radius: 40px;
  background: #2a2a2a;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 1px;
  cursor: pointer;
  transition: opacity 0.2s ease;
  text-decoration: none;
}

.p-topics-back .p-form-btn:hover {
  opacity: 0.8;
}

.p-topics-back .p-form-btn__arrow {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
}

.p-topics-back .p-form-btn__arrow svg {
  width: 20px;
  height: 20px;
}

.p-topics-back .p-form-btn--back {
  background: #fff;
  color: #2a2a2a;
  border: 1px solid #ccc;
}

.p-topics-back .p-form-btn--back .p-form-btn__arrow {
  background: #2a2a2a;
  left: 15px;
  right: auto;
}

.p-topics-back .p-form-btn--back .p-form-btn__arrow svg {
  transform: rotate(180deg);
}

.p-topics-back .p-form-btn--back span:not(.p-form-btn__arrow) {
  margin-left: auto;
  margin-right: 30px;
}

@media screen and (max-width: 768px) {
  .p-topics-back .p-form-btn {
    width: 100%;
    max-width: 335px;
  }
}

/* ============================================
   お知らせ 2カラムレイアウト + サイドメニュー
   不要になったらこのブロックごと削除可
   ============================================ */

/* --- 2カラムレイアウト --- */
.p-topics-2col {
  margin-top: 40px;
}

.p-topics-2col__side {
  margin-top: 60px;
}

@media screen and (min-width: 769px) {
  .p-topics-2col {
    display: flex;
    gap: 40px;
  }
  .p-topics-2col__main {
    flex: 1;
    min-width: 0;
  }
  .p-topics-2col__side {
    width: 270px;
    flex-shrink: 0;
    margin-top: 0;
  }
}

/* --- サイドメニュー コンテナ --- */
.p-topics-2col__side .list_side_menu {
  border: 1px solid #bc2f2f;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.p-topics-2col__side .list_side_menu + .list_side_menu {
  margin-top: 30px;
}

/* --- 見出し --- */
.p-topics-2col__side .list_side_menu .ttl {
  font-size: 18px;
  font-weight: 700;
  color: #2a2a2a;
  padding: 12px 20px;
  margin: 0;
  text-align: center;
  line-height: 1.667;
  letter-spacing: 0.05em;
  background: #f9f4f4;
  border-bottom: 1px solid #bc2f2f;
}

.p-topics-2col__side .list_side_menu .ttl::before,
.p-topics-2col__side .list_side_menu .ttl::after {
  display: none;
}

/* --- 共通リンクスタイル --- */
.p-topics-2col__side .list_side_menu li a {
  display: block;
  color: #075cbd;
  text-decoration: underline;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.625;
  letter-spacing: 0.05em;
  padding: 7px 5px 7px 28px;
  position: relative;
}

.p-topics-2col__side .list_side_menu li a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  background: url(/common/img/topics/arrow-right.svg) no-repeat center / contain;
}

.p-topics-2col__side .list_side_menu li a:hover {
  background: #f9f4f4;
}

/* --- 最近の記事 (type_01) --- */
.p-topics-2col__side .list_side_menu .type_01 {
  padding: 20px;
  margin: 0;
}

.p-topics-2col__side .list_side_menu .type_01 dt {
  padding: 16px 0 0;
}

.p-topics-2col__side .list_side_menu .type_01 dt:first-child {
  padding-top: 0;
}

.p-topics-2col__side .list_side_menu .type_01 dd {
  padding: 6px 0 15px;
  margin: 0;
  border-bottom: 1px solid #eee;
}

.p-topics-2col__side .list_side_menu .type_01 dd:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}

.p-topics-2col__side .list_side_menu .type_01 dd a {
  color: #075cbd;
  text-decoration: underline;
  font-size: 16px;
  line-height: 26px;
  letter-spacing: 0.05em;
  padding: 0;
}

.p-topics-2col__side .list_side_menu .type_01 dd a::before {
  display: none;
}

/* --- アーカイブ (type_02) --- */
.p-topics-2col__side .list_side_menu .type_02 {
  padding: 20px;
  margin: 0;
  list-style: none;
}

.p-topics-2col__side .list_side_menu .type_02 > li + li {
  margin-top: 15px;
}

.p-topics-2col__side .list_side_menu .type_02 > li > ul {
  border: 1px dashed #ccc;
  border-radius: 6px;
  padding: 10px 10px 10px 15px;
  margin-top: 8px;
  list-style: none;
}

.p-topics-2col__side .list_side_menu .type_02 > li > ul > li > a {
  padding: 5px 5px 5px 20px;
}

.p-topics-2col__side .list_side_menu .type_02 > li > ul > li > a::before {
  width: 8px;
  height: 8px;
  border-radius: 6px;
  background: #888;
}

/* --- カテゴリ (type_03) --- */
.p-topics-2col__side .list_side_menu .type_03 {
  padding: 20px;
  margin: 0;
  list-style: none;
}

.p-topics-2col__side .list_side_menu .type_03 > li + li {
  margin-top: 15px;
}

/* ============================================
   CSR活動ページ 専用スタイル（.p-csr-activities でスコープ限定）
   ============================================ */

/* 写真リストを 2列×480px に変更（CSR活動ページ限定） */
.p-sec__main-inner .p-csr-activities .p-sec__fig-list {
  grid-template-columns: 480px 480px;
  gap: 40px;
  justify-content: center;
}

/* 赤枠カード（50円倶楽部・事業継続計画の策定） */
.p-csr-activities .p-csr__card-box {
  max-width: 100%;
  margin: 0 auto 40px;
  padding: 40px;
  border: 1px solid #bc2f2f;
  border-radius: 10px;
  background: #fff;
  box-sizing: border-box;
}
.p-sec__main-inner .p-csr-activities .p-csr__card-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: 0.1em;
  color: #bc2f2f;
  margin: 0 0 20px;
  text-align: left;
}
.p-sec__main-inner .p-csr-activities .p-csr__card-title::before,
.p-sec__main-inner .p-csr-activities .p-csr__card-title::after {
  display: none;
}
.p-sec__main-inner .p-csr-activities .p-csr__card-box .p-csr__card-text {
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.05em;
  color: #2a2a2a;
  margin: 0;
}

/* リストカード（地域交流） */
.p-csr-activities .p-csr__list-card {
  max-width: 100%;
  margin: 0 auto 60px;
  padding: 40px;
  border: 1px solid #bc2f2f;
  border-radius: 10px;
  background: #fff;
  box-sizing: border-box;
}
.p-csr-activities .p-csr__list-item {
  padding: 16px 0;
  border-bottom: 1px solid #e5e5e5;
}
.p-csr-activities .p-csr__list-item:first-child {
  padding-top: 0;
}
.p-csr-activities .p-csr__list-item:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
.p-sec__main-inner .p-csr-activities .p-csr__list-item dt {
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.05em;
  color: #2a2a2a;
  margin: 0 0 8px;
  display: flex;
  align-items: center;
}
.p-sec__main-inner .p-csr-activities .p-csr__list-item dd {
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.05em;
  color: #2a2a2a;
  margin: 0;
}

/* 赤マーカー */
.p-csr-activities .p-csr__marker {
  display: inline-block;
  width: 13px;
  height: 13px;
  background: #bc2f2f;
  border-radius: 2px;
  margin-right: 10px;
  flex-shrink: 0;
}

/* コンプライアンス グレー背景カード */
.p-csr-activities .p-csr__compliance-card {
  max-width: 100%;
  margin: 0 auto 60px;
  padding: 40px;
  background: #f5f5f5;
  border-radius: 10px;
  box-sizing: border-box;
}
.p-csr-activities .p-csr__compliance-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-sec__main-inner .p-csr-activities .p-csr__compliance-list li {
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.05em;
  color: #2a2a2a;
  padding: 5px 0;
  display: flex;
  align-items: center;
}

/* 赤帯キャプション */
.p-csr-activities .p-csr__banner-item figure {
  margin: 0;
}
.p-csr-activities .p-csr__banner-item figure img {
  display: block;
  width: 100%;
  height: auto;
}

/* CSR活動ページ 画像は自然比率で表示（カードリスト用 aspect-ratio をリセット） */
.p-sec__main-inner .p-csr-activities .p-sec__fig-list-item figure {
  padding: 0 !important;
}
.p-sec__main-inner .p-csr-activities .p-sec__fig-list-item figure img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}
.p-sec__main-inner
  .p-csr-activities
  .p-sec__fig-list-item
  figure
  figcaption.p-csr__red-band {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0;
  margin: 0;
  background: #bc2f2f;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 1px;
  text-align: center;
  text-decoration: none;
}

/* 通常 figcaption（赤帯ではない）を黒・通常テキストに戻す */
.p-sec__main-inner
  .p-csr-activities
  .p-sec__fig-list-item
  figure
  figcaption:not(.p-csr__red-band) {
  padding: 0;
  margin: 15px 0 0;
  background: transparent;
  color: #2a2a2a;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.8px;
  text-align: left;
  text-decoration: none;
}

/* CSR活動: 2枚並びセル（ビーチクリーン・フードバンク・リレー・にじの森）
   2枚並びの隙間 10px */
.p-sec__main-inner .p-csr-activities .p-sec__fig-list-item figure .p-csr__pair {
  display: flex;
  gap: 10px;
  width: 100%;
}
.p-sec__main-inner
  .p-csr-activities
  .p-sec__fig-list-item
  figure
  .p-csr__pair
  img {
  width: calc((100% - 10px) / 2) !important;
  height: auto !important;
  display: block;
}

/* CSR活動: 1セル内に写真2枚＋個別キャプション（コンタクトレンズ／ペットボトル）を横並び
   横並びの隙間 10px */
.p-sec__main-inner .p-csr-activities .p-sec__fig-list-item.p-csr__split-cell {
  display: flex;
  gap: 10px;
}
.p-sec__main-inner
  .p-csr-activities
  .p-sec__fig-list-item.p-csr__split-cell
  figure {
  flex: 1;
  margin: 0;
}

@media screen and (max-width: 768px) {
  .p-sec__main-inner
    .p-csr-activities
    .p-sec__fig-list-item
    figure
    .p-csr__pair,
  .p-sec__main-inner .p-csr-activities .p-sec__fig-list-item.p-csr__split-cell {
    display: flex;
    gap: 8px;
  }
}

/* ============================================
   CSR活動 セクション小見出し（左寄せ）
   - base: 黒・20px Bold（コンプラの「CSRの基盤」用）
   - --accent: 赤・22px Bold（活動セクションの「地域と交流をはかり」用）
   ============================================ */
.p-sec__main-inner .p-csr-activities .p-csr__sec-subtitle {
  margin: 30px 0 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 1px;
  color: #2a2a2a;
  text-align: left;
}
.p-sec__main-inner .p-csr-activities .p-csr__sec-subtitle--accent {
  margin-top: 60px;
  font-size: 22px;
  line-height: 32px;
  letter-spacing: 2.2px;
  color: #bc2f2f;
}
.p-sec__main-inner .p-csr-activities .p-csr__sec-subtitle strong {
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-csr-activities .p-csr__sec-subtitle {
    font-size: 17px;
    line-height: 26px;
  }
  .p-sec__main-inner .p-csr-activities .p-csr__sec-subtitle--accent {
    font-size: 19px;
    line-height: 28px;
  }
}

/* ============================================
   CSR活動 社会貢献 7項目ボックス
   白カード + 赤枠 + 赤四角弾頭 + 区切り線
   ============================================ */
.p-sec__main-inner .p-csr-activities .p-csr__activity-box {
  width: 1000px;
  max-width: 100%;
  margin: 30px auto 60px;
  padding: 40px;
  background: #ffffff;
  border: 1px solid #bc2f2f;
  border-radius: 10px;
  box-sizing: border-box;
}
.p-sec__main-inner .p-csr-activities .p-csr__list-item {
  position: relative;
  padding: 0 0 20px 32px;
  margin: 0;
  border-bottom: 1px solid #e5e5e5;
}
.p-sec__main-inner .p-csr-activities .p-csr__list-item + .p-csr__list-item {
  padding-top: 16px;
}
.p-sec__main-inner .p-csr-activities .p-csr__list-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.p-sec__main-inner .p-csr-activities .p-csr__bullet {
  position: absolute;
  left: 0;
  top: 9px;
  width: 13px;
  height: 13px;
  background: #bc2f2f;
  border-radius: 2px;
}
.p-sec__main-inner
  .p-csr-activities
  .p-csr__list-item
  + .p-csr__list-item
  .p-csr__bullet {
  top: 25px;
}
.p-sec__main-inner .p-csr-activities .p-csr__list-heading {
  margin: 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 1px;
  color: #2a2a2a;
}
.p-sec__main-inner .p-csr-activities .p-csr__list-heading::after {
  display: none !important;
}
.p-sec__main-inner .p-csr-activities .p-csr__list-body {
  margin: 8px 0 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
}

@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-csr-activities .p-csr__list-item {
    padding: 0 0 20px 20px;
  }
}

/* ============================================
   CSR活動 コンプライアンス 6項目ボックス
   ライトグレー背景 + 弾頭のみ（区切りなし、本文なし、1列）
   ============================================ */
.p-sec__main-inner .p-csr-activities .p-csr__compliance-box {
  width: 1000px;
  max-width: 100%;
  margin: 30px auto 60px;
  padding: 40px;
  background: #f5f5f5;
  border-radius: 10px;
  box-sizing: border-box;
}
.p-sec__main-inner .p-csr-activities .p-csr__compliance-item {
  position: relative;
  padding-left: 32px;
  margin: 0;
  min-height: 30px;
}
.p-sec__main-inner
  .p-csr-activities
  .p-csr__compliance-item
  + .p-csr__compliance-item {
  margin-top: 10px;
}
.p-sec__main-inner .p-csr-activities .p-csr__compliance-item .p-csr__bullet {
  top: 9px;
}
.p-sec__main-inner
  .p-csr-activities
  .p-csr__compliance-item
  .p-csr__list-heading {
  display: inline;
}

@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-csr-activities .p-csr__compliance-item {
    padding-left: 20px;
  }
}

/* ============================================
   CSR活動 BCP メインボックス
   白カード + 赤枠 + 赤タイトル + 本文
   ============================================ */
.p-sec__main-inner .p-csr-activities .p-csr__bcp-main {
  width: 1000px;
  max-width: 100%;
  margin: 30px auto 40px;
  padding: 40px;
  background: #ffffff;
  border: 1px solid #bc2f2f;
  border-radius: 10px;
  box-sizing: border-box;
}
.p-sec__main-inner .p-csr-activities .p-csr__bcp-title {
  margin: 0 0 20px;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: 2.2px;
  color: #bc2f2f;
}
.p-sec__main-inner .p-csr-activities .p-csr__bcp-title::after {
  display: none !important;
}
.p-sec__main-inner .p-csr-activities .p-csr__bcp-main p {
  margin: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
}

/* ============================================
   CSR活動 BCP 画像セル
   赤帯（既存 .p-csr__red-band 利用）+ その下に本文
   ============================================ */
.p-sec__main-inner .p-csr-activities .p-csr__bcp-cell .p-csr__bcp-body {
  margin: 15px 0 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
}

@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-csr-activities .p-csr__activity-box,
  .p-sec__main-inner .p-csr-activities .p-csr__compliance-box,
  .p-sec__main-inner .p-csr-activities .p-csr__bcp-main {
    padding: 24px 18px;
    margin: 20px auto 32px;
  }
  .p-sec__main-inner .p-csr-activities .p-csr__list-heading {
    font-size: 17px;
    line-height: 26px;
  }
  .p-sec__main-inner .p-csr-activities .p-csr__list-body,
  .p-sec__main-inner .p-csr-activities .p-csr__bcp-main p,
  .p-sec__main-inner .p-csr-activities .p-csr__bcp-body {
    font-size: 14px;
    line-height: 22px;
  }
  .p-sec__main-inner .p-csr-activities .p-csr__bcp-title {
    font-size: 19px;
    line-height: 28px;
  }
  .p-sec__main-inner .p-csr-activities .p-csr__bullet {
    top: 7px;
  }
  .p-sec__main-inner
    .p-csr-activities
    .p-csr__list-item
    + .p-csr__list-item
    .p-csr__bullet {
    top: 23px;
  }
}

/* ============================================
   SDGs への取り組みページ
   ============================================ */

/* CSR/SDGs 共通: 黒の sec-subtitle を SDGs でも使えるように拡張
   （p-csr__sec-subtitle は CSR セクションでのみ動く既存定義のため、
    .p-sdgs-content スコープでも同じ見た目になるよう追加） */
.p-sec__main-inner .p-sdgs-content .p-csr__sec-subtitle {
  margin: 30px 0 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 1px;
  color: #2a2a2a;
  text-align: left;
}

/* G. intro_box 青背景バナー */
.p-sec__main-inner .p-sdgs-content .p-sdgs__intro-box {
  width: 1000px;
  max-width: 100%;
  margin: 30px auto 30px;
  padding: 20px;
  background: #0099d9;
  box-sizing: border-box;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__intro-box p {
  margin: 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.5px;
  color: #ffffff;
  text-align: center;
  white-space: nowrap;
}
/* 中間幅〜SPは1行に収まらないため折り返しを許可 */
@media screen and (max-width: 1023px) {
  .p-sec__main-inner .p-sdgs-content .p-sdgs__intro-box p {
    white-space: normal;
  }
}

/* SDG ロゴ画像（横長 1000×125 SUSTAINABLE DEVELOPMENT GOALS） */
.p-sec__main-inner .p-sdgs-content .p-sdgs__logo {
  width: 1000px;
  max-width: 100%;
  margin: 0 auto 30px;
  padding: 0;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__logo img {
  display: block;
  width: 100%;
  height: auto;
}

/* H. photo_card_with_red_caption 写真カード（薄グレー枠+赤キャプション）
   左右カードを grid stretch で同じ高さに揃える */
.p-sec__main-inner .p-sdgs-content .p-sec__fig-list.p-sdgs__photo-pair {
  display: grid;
  grid-template-columns: 480px 480px;
  gap: 40px;
  justify-content: center;
  align-items: stretch;
  margin: 30px auto 40px;
}
.p-sec__main-inner
  .p-sdgs-content
  .p-sec__fig-list.p-sdgs__photo-pair
  > .p-sec__fig-list-item {
  display: flex;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  padding: 30px;
  background: #ffffff;
  border: 1px solid #dddddd;
  border-radius: 10px;
  box-sizing: border-box;
  text-align: center;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card img {
  display: block;
  width: 100%;
  max-width: 420px;
  height: auto;
  margin: 0 auto;
}

/* 左右カードの画像エリア高さを揃える
   - 左カード: <img> 直下に aspect-ratio 420/285 強制（object-fit: cover）
   - 右カード: グレーマスクと同じアスペクト比 → 結果として同じ高さに */
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card > img {
  aspect-ratio: 420 / 285;
  object-fit: cover;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card figcaption {
  margin: 20px 0 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 2.6px;
  color: #bc2f2f;
  text-align: center;
}
/* 「（画像クリックで拡大します）」の独立段落
   赤キャプション「登録証」の下に通常テキストとして表示 */
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card .p-sdgs__caption-note {
  display: block;
  margin: 8px 0 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
  text-align: left;
}

/* 登録証 画像クリックで拡大
   - 画像エリアは #f5f5f5 グレー背景マスク（aspect 420/285）
   - 内部に登録証画像を縦長保持で中央配置
   - 虫眼鏡アイコンは画像エリア内の右下にオーバーレイ */
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-zoom {
  display: block;
  text-decoration: none;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  border: none !important; /* グローバル a 装飾の赤枠をリセット */
  outline: none;
  background: transparent;
  transition: opacity 0.2s ease;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-zoom:hover {
  opacity: 0.85;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-zoom-mask {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 420 / 285;
  background: #f5f5f5;
  overflow: hidden;
  padding: 12px 0; /* 登録証画像の上下余白 */
  box-sizing: border-box;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-zoom-mask img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 100%;
  margin: 0 auto;
  object-fit: contain;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__zoom-icon {
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__zoom-icon img {
  width: 100%;
  height: 100%;
  display: block;
}
@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-sdgs-content .p-sdgs__zoom-icon {
    width: 36px;
    height: 36px;
    right: 6px;
    bottom: 6px;
  }
}

/* I. partner_banner（赤枠+2行テキスト） */
.p-sec__main-inner .p-sdgs-content .p-sdgs__partner-banner {
  width: 1000px;
  max-width: 100%;
  margin: 30px auto 60px;
  padding: 20px 30px;
  background: #ffffff;
  border: 1px solid #bc2f2f;
  border-radius: 10px;
  box-sizing: border-box;
  text-align: center;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__partner-banner-text {
  margin: 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__partner-banner-link {
  margin: 15px 0 0;
  padding: 0;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__partner-banner-link a {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 2.6px;
  color: #075cbd;
  text-decoration: underline;
}

/* J. effort_set 取組みセット */
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-set {
  width: 1000px;
  max-width: 100%;
  margin: 0 auto;
}

.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-set:not(:first-of-type) {
  margin: 60px auto 0;
}

.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-heading {
  margin: 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: 2.4px;
  color: #bc2f2f;
  text-align: left;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-heading::after {
  display: none !important;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-lead {
  margin: 10px 0 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 28px;
  letter-spacing: 1.8px;
  color: #2a2a2a;
  text-align: left;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-card {
  margin: 20px 0 0;
  padding: 30px;
  background: #ffffff;
  border: 1px solid #bc2f2f;
  border-radius: 10px;
  box-sizing: border-box;
  display: flex;
  align-items: flex-start; /* テキスト・アイコンとも上詰め */
  gap: 30px;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-list {
  flex: 0 1 auto; /* コンテンツ幅。flex-grow させない */
  min-width: 0;
  margin-right: auto; /* icons を card の右端まで押し出す */
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-item {
  position: relative;
  padding-left: 32px;
  margin: 0;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-item + .p-sdgs__effort-item {
  margin-top: 10px;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-item .p-csr__bullet {
  position: absolute;
  left: 0;
  top: 6px;
  width: 13px;
  height: 13px;
  background: #bc2f2f;
  border-radius: 2px;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-text {
  margin: 0;
  padding: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.8px;
  color: #2a2a2a;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-icons {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__effort-icons img {
  display: block;
  width: 100px;
  height: 100px;
  margin: 0; /* .content1 img の global margin 40px をリセット */
  flex-shrink: 0;
}

/* .content1 img の global margin-top/bottom 40px が SDGs 画像にも当たり
   レイアウトを崩すため、SDGs スコープ内では明示的にリセット */
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card img,
.p-sec__main-inner .p-sdgs-content .p-sdgs__logo img,
.p-sec__main-inner .p-sdgs-content .p-sdgs__zoom-icon img {
  margin: 0;
}
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card > img,
.p-sec__main-inner .p-sdgs-content .p-sdgs__photo-zoom-mask img {
  margin: 0 auto;
}

/* SDGs SP 対応 */
@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-sdgs-content .p-sdgs__intro-box,
  .p-sec__main-inner .p-sdgs-content .p-sdgs__partner-banner {
    padding: 20px 18px;
    margin: 20px auto 24px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__intro-box p {
    font-size: 16px;
    line-height: 26px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sec__fig-list.p-sdgs__photo-pair {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card {
    padding: 24px 18px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__photo-card figcaption {
    font-size: 18px;
    line-height: 26px;
    letter-spacing: 1.5px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__partner-banner-link a {
    font-size: 18px;
    line-height: 26px;
    letter-spacing: 1.5px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__effort-set:not(:first-of-type) {
    margin-top: 40px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__effort-heading {
    font-size: 20px;
    line-height: 28px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__effort-lead {
    font-size: 15px;
    line-height: 24px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__effort-card {
    flex-direction: column;
    align-items: stretch;
    padding: 20px 18px;
    gap: 20px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__effort-icons {
    order: -1;
    align-self: stretch; /* PC の flex-start を解除して card 幅に広げる */
    justify-content: center; /* 内部のアイコンを card 中央に */
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__effort-icons img {
    width: 80px;
    height: 80px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__effort-text {
    font-size: 14px;
    line-height: 22px;
  }
  .p-sec__main-inner .p-sdgs-content .p-sdgs__effort-item .p-csr__bullet {
    top: 4px;
  }
}

/* 赤帯下の外部説明文 */
.p-sec__main-inner .p-csr-activities .p-csr__banner-item .p-csr__caption-text {
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.05em;
  color: #2a2a2a;
  margin: 15px 0 0;
}

/* リード文（地域と交流〜） */
.p-sec__main-inner .p-csr-activities .p-csr__lead {
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 1px;
  color: #bc2f2f;
  margin: 60px 0 30px;
  text-align: left;
}

/* セクション冒頭リード文（コンプライアンス／災害時） */
.p-sec__main-inner .p-csr-activities .p-csr__section-lead {
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 1px;
  color: #2a2a2a;
  text-align: left;
  margin: 0 0 30px;
}

/* 社会貢献リード（.fsr23.tac）直下のカードに上余白 */
.p-sec__main-inner .p-csr-activities .fsr23.tac + .p-csr__card-box {
  margin-top: 40px;
}

/* CSR 赤帯カードのfig-list上書き（ボーダー・角丸なし） */
.p-csr-activities .p-csr__banner-item a {
  border: none;
  border-radius: 0;
  overflow: visible;
}

@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-csr-activities .p-sec__fig-list {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .p-csr-activities .p-csr__card-box,
  .p-csr-activities .p-csr__list-card,
  .p-csr-activities .p-csr__compliance-card {
    padding: 24px 20px;
  }
  .p-sec__main-inner .p-csr-activities .p-csr__list-item dt {
    font-size: 17px;
  }
  .p-sec__main-inner .p-csr-activities .p-csr__compliance-list li {
    font-size: 17px;
  }
  .p-sec__main-inner
    .p-csr-activities
    .p-sec__fig-list-item
    figure
    figcaption.p-csr__red-band {
    font-size: 16px;
    height: 44px;
  }
}

/* ============================================
   事業内容 セクションサブタイトル
   ============================================ */
.p-sec__subtitle {
  display: inline-block;
  font-size: 24px;
  font-weight: 700;
  color: #bc2f2f;
  letter-spacing: 0.1em;
  margin: 0 0 20px;
}

/* ============================================
   採用ページ h2 サイズ調整 (38px)
   ============================================ */
.dir_recruit .p-sec__main-inner h2 {
  font-size: 38px;
  line-height: 48px;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 768px) {
  .dir_recruit .p-sec__main-inner h2 {
    font-size: 28px;
    line-height: 38px;
  }
}

/* ============================================
   採用ページ h3 下線スタイル
   （bg_h3.svg アイコン → border-bottom 方式）
   ============================================ */
.dir_recruit .p-sec__main-inner h3 {
  font-size: 34px;
  font-weight: 700;
  line-height: 44px;
  letter-spacing: 0.1em;
  color: #2a2a2a;
  border-bottom: 2px solid #2a2a2a;
  padding-bottom: 16px;
  margin-bottom: 33px;
}
.dir_recruit .p-sec__main-inner h3::after {
  display: none !important;
}

/* 見出しの装飾あしらい(bg_h2/h3.svgの●●●)を全ページで削除 */
.p-sec__main-inner h2::after,
.p-sec__main-inner h3::after {
  display: none !important;
}

/* C. 本文フォントを全ページ共通で18px（PC） */
@media print, screen and (min-width: 769px) {
  .p-sec__main-inner p {
    font-size: 18px;
    line-height: 1.9;
  }
}

/* PC幅で改行させたくない文用ユーティリティ（SPは自然折返し） */
@media print, screen and (min-width: 769px) {
  .nowrap-pc {
    white-space: nowrap;
  }
}

/* .p-sec__main-inner 下padding（corporate.css PC:160px / SP:26.67vw）を半減 */
.p-sec__main-inner {
  padding-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .p-sec__main-inner {
    padding-bottom: 13.33vw;
  }
}

@media screen and (max-width: 768px) {
  .dir_recruit .p-sec__main-inner h3 {
    font-size: 26px;
    line-height: 36px;
  }
}

/* ============================================
   採用ページ h4
   ============================================ */

.dir_company .p-sec__main-inner h4 {
  font-size: 26px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 768px) {
  .dir_recruit .p-sec__main-inner h4 {
    font-size: 24px;
    line-height: 34px;
  }
}

/* ============================================
   採用 下層ページのヘッダー
   - sticky を最初から表示（recruit-header.tpl で --open class 付与、JS 不要）
   - 採用トップと同じ見た目（背景・装飾は既存 CSS のまま、追加変更なし）
   ============================================ */
.dir_recruit .l-header--sticky.l-header--open {
  transform: translateY(0);
}
.dir_recruit .l-header--sticky.l-header--open.l-header--left {
  transform: translate(-76vw);
}

/* sticky ヘッダー: 非表示時の漏れ対策
   要素本体は translateY で画面外でも、box-shadow と sub-pixel レンダリングで
   下端 1px が viewport に見えてしまう問題への対策。
   --open（表示中）以外は影を消し、opacity:0 + visibility:hidden で完全に隠す。
   js.tpl で .l-header に opacity:1 が inline style で設定されるため !important 必須。 */
.l-header--sticky {
  /* box-shadow: none !important; */
  opacity: 0 !important;
  visibility: hidden;
  pointer-events: none;
}
.l-header--sticky.l-header--open {
  opacity: 1 !important;
  visibility: visible;
  pointer-events: auto;
}

/* ============================================
   採用 メニュー（c-side-nav）の「エントリーはこちら」ボタン
   ============================================ */
.c-side-nav .c-side-nav__entry-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 205px;
  height: 50px;
  margin: 24px auto;
  padding: 0 10px 0 24px;
  background: linear-gradient(180deg, #fcd114 0%, #fcba14 100%);
  border-radius: 40px;
  box-shadow: 0 10px 0 0 rgba(0, 0, 0, 0.2);
  color: #2a2a2a;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}
.c-side-nav .c-side-nav__entry-btn:hover {
  opacity: 0.85;
}
.c-side-nav .c-side-nav__entry-btn-text {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 18px;
  white-space: nowrap;
}
.c-side-nav .c-side-nav__entry-btn-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #ffffff;
  border-radius: 50%;
}
.c-side-nav .c-side-nav__entry-btn-icon svg {
  width: 12px;
  height: 12px;
  color: #2a2a2a;
}

/* メニュー: エントリーボタンとコーポレートサイトの間の区切り線
   - .l-footer__btn の既存 margin-top: auto (~221px) を打ち消す
   - divider に上下均等 margin を当てて 2 ボタンの中間に配置する */
.c-side-nav .l-footer__btn {
  margin-top: 0 !important;
}
.c-side-nav .c-side-nav__divider {
  width: 100%;
  margin: 32px 0;
  border: none;
  border-top: 2px dashed #cccccc;
  background: transparent;
  height: 0;
}

/* /recruit/ 説明文横の写真に角丸 + テキストと高さ揃え */
.dir_recruit .p-sec__main-inner .p-sec__fig-block {
  align-items: stretch;
}
.dir_recruit .p-sec__main-inner .p-sec__fig-block-fig {
  display: flex;
}
.dir_recruit .p-sec__main-inner .p-sec__fig-block-fig img {
  border-radius: 10px;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ============================================
   ダイコー沖縄を知る 企業理念カード
   会社案内＆ダイコー沖縄を知るページ
   ============================================ */
/* /company/ 会社案内ページ */
.p-sec__main-inner .p-about__rinen-card {
  width: 1000px;
  max-width: 100%;
  margin: 40px auto 40px;
  border-radius: 10px;
  box-sizing: border-box;
  text-align: center;
}
.p-sec__main-inner .p-about__rinen-title {
  font-size: 24px;
  font-weight: 700;
  line-height: 46px;
  letter-spacing: 0.1em;
  color: #2a2a2a;
  margin: 0 0 30px;
  text-align: center;
}
.p-sec__main-inner .p-about__rinen-text {
  width: 900px;
  max-width: 100%;
  margin: 0 auto;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.05em;
  color: #2a2a2a;
  text-align: center;
}
@media (max-width: 768px) {
  .p-sec__main-inner .p-about__rinen-card {
    margin: 30px auto 30px;
  }
  .p-sec__main-inner .p-about__rinen-title {
    font-size: 18px;
    line-height: 32px;
    letter-spacing: 0.05em;
  }
  .p-sec__main-inner .p-about__rinen-text {
    font-size: 14px;
    line-height: 24px;
    text-align: left;
  }
}

/* /recruit/about/ ダイコー沖縄を知るページ */
.p-about-recruit .p-sec__main-inner .p-about__rinen-card {
  padding: 60px 50px;
  background: #ffffff;
}

@media (max-width: 768px) {
  .p-about-recruit .p-sec__main-inner .p-about__rinen-card {
    padding: 30px 20px;
  }
}

/* ============================================
   エントリーはこちら ページ専用スタイル
   /recruit/entry/
   ============================================ */
.p-sec__main-inner .p-entry {
  text-align: center;
}
.p-entry__title {
  font-size: 38px;
  font-weight: 700;
  line-height: 48px;
  letter-spacing: 0.1em;
  color: #2a2a2a;
  margin: 0 0 30px;
}
.p-entry__lead {
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.05em;
  color: #2a2a2a;
  margin: 0 0 60px;
}
.p-entry__mynavi {
  display: inline-block;
  margin: 0 auto 20px;
  transition: opacity 0.2s;
}
.p-entry__mynavi:hover {
  opacity: 0.8;
}
.p-entry__mynavi img {
  display: block;
  width: 130px;
  height: auto;
}
.p-entry__hero {
  margin: 0 auto 60px;
  width: 133px;
}
.p-entry__hero img {
  display: block;
  width: 100%;
  height: auto;
}
.p-entry__group {
  margin: 0 auto;
  max-width: 1000px;
}
.p-entry__group img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 768px) {
  .p-entry__title {
    font-size: 24px;
    line-height: 34px;
    margin: 0 0 20px;
  }
  .p-entry__lead {
    font-size: 16px;
    line-height: 26px;
    margin: 0 0 40px;
  }
  .p-entry__hero {
    margin: 0 auto 40px;
  }
}

/* ============================================
   ダイコー沖縄を知る（/recruit/about/）専用スタイル
   不要になったら p-about-recruit ラッパーごと削除可
   ============================================ */

/* 企業理念カード内テキスト */
.p-sec__main-inner .p-about-recruit .p-sec__column .p-sec__column-title {
  color: #2a2a2a;
  font-size: 22px;
  font-weight: 700;
  line-height: 38px;
  letter-spacing: 0.1em;
  text-align: center;
  margin: 0 0 30px;
}
.p-sec__main-inner .p-about-recruit .p-sec__column p {
  color: #2a2a2a;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0.05em;
  text-align: center;
  margin: 0;
}

/* 企業理念写真 grid: 320×3列、2段 */
.p-sec__main-inner .p-about-recruit .p-sec__fig-list {
  grid-template-columns: repeat(3, 320px);
  gap: 20px;
  justify-content: center;
  margin: 0 0 20px;
}
.p-sec__main-inner .p-about-recruit .p-sec__fig-list:last-of-type {
  margin-bottom: 60px;
}
.p-sec__main-inner .p-about-recruit .p-sec__fig-list-item figure {
  padding: 0;
  margin: 0;
}
.p-sec__main-inner .p-about-recruit .p-sec__fig-list-item figure img {
  width: 320px;
  height: 220px;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 0;
}

/* Think Local, Act Global キャッチ */
.p-sec__main-inner .p-about-recruit .p-about__catch {
  color: #bc2f2f;
  font-size: 22px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: 0.1em;
  margin: 0 0 30px;
}

/* テーブル th 改行防止（PC時） */
.p-sec__table th {
  white-space: nowrap;
}

/* 沿革テーブル 日付セル（PC/SP ともに1行） */
.p-sec__main-inner .p-history__date,
.p-sec__main-inner .p-history__year {
  display: inline-block;
  white-space: nowrap;
}
.p-sec__main-inner .p-history__year {
  margin-left: 4px;
}

/* ============================================
   会社概要 本社所在地カード
   /company/outline/
   ============================================ */
.p-sec__main-inner .p-outline__location-card {
  display: grid;
  grid-template-columns: 240px 1fr;
  width: 1000px;
  max-width: 100%;
  margin: 30px auto 60px;
  background: #ffffff;
  border: 1px solid #bc2f2f;
  border-radius: 10px;
  box-sizing: border-box;
  overflow: hidden;
}
.p-sec__main-inner .p-outline__location-label {
  padding: 20px;
  border-right: 1px solid #bc2f2f;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.05em;
  color: #bc2f2f;
}
.p-sec__main-inner .p-outline__location-content {
  padding: 20px;
}
.p-sec__main-inner .p-outline__location-address {
  margin: 0 0 18px;
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  letter-spacing: 0.1em;
  color: #2a2a2a;
}
.p-sec__main-inner .p-outline__location-photo {
  margin: 0;
  overflow: hidden;
  border-radius: 4px;
}
.p-sec__main-inner .p-outline__location-photo img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  object-fit: cover;
}
@media (max-width: 768px) {
  .p-sec__main-inner .p-outline__location-card {
    grid-template-columns: 1fr;
    margin: 20px auto 40px;
  }
  .p-sec__main-inner .p-outline__location-label {
    border-right: none;
    border-bottom: 1px solid #bc2f2f;
    padding: 16px 20px;
    font-size: 16px;
  }
  .p-sec__main-inner .p-outline__location-content {
    padding: 16px 20px;
  }
  .p-sec__main-inner .p-outline__location-address {
    font-size: 14px;
    margin: 0 0 14px;
  }
}

/* 会社概要テーブル */
.p-sec__main-inner .p-about-recruit .p-sec__table th {
  color: #2a2a2a;
  font-size: 18px;
}
.p-sec__main-inner .p-about-recruit .p-sec__table td {
  font-size: 16px;
}

@media screen and (max-width: 768px) {
  .p-sec__main-inner .p-about-recruit .p-sec__fig-list {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .p-sec__main-inner .p-about-recruit .p-sec__fig-list-item figure img {
    width: 100%;
    height: auto;
    aspect-ratio: 320/220;
  }
}

/* ============================================
   採用ページ ヘッダー/フッター ロゴ横並び
   ============================================ */
.l-header__logo,
.l-footer__logo {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* 採用ヘッダー ロゴ2リンク分割対応 */
.l-header__logo a:first-child {
  padding-right: 0;
}
.l-header__logo a:last-child {
  padding-left: 0;
}

/* ============================================
   SP版 修正一括（05_SP版_修正指示書一括.md）
   ============================================ */

/* §2 SPメニュー 下端スクロール対応 */
@media (max-width: 767px) {
  .c-side-nav,
  .c-side-nav__inner {
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 60px;
  }
}

/* §5 タップ領域確保（SP、ナビゲーション要素限定） */
@media (max-width: 767px) {
  .c-side-nav__nav--main a,
  .c-side-nav__nav--sub a,
  .l-footer__nav--main a,
  .l-footer__nav--sub a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 8px 0;
  }
}

/* §6 「開業の流れ」 横スクロール見切れ対応（SP） */
@media (max-width: 767px) {
  .p-business-flow {
    flex-wrap: wrap !important;
    gap: 8px;
  }
  .p-business-flow > li {
    width: calc((100% - 24px) / 4) !important;
    min-width: 0 !important;
    min-height: auto !important;
    text-align: center;
  }
  .p-business-flow > li img {
    width: 100% !important;
    height: auto !important;
    max-width: 60px;
  }
}

/* §7 ヘッダー要素重なり対応（SP） */
@media (max-width: 767px) {
  .l-header:not(.p-home .l-header) {
    z-index: 100;
  }
  .p-home-fv__decoration {
    z-index: 1;
  }
}

/* §8 採用FV見出しの中途改行対応（SP） */
@media (max-width: 767px) {
  .p-sec__fv h1,
  .p-sec__main-inner h2,
  .p-entry__title {
    word-break: keep-all;
    line-break: strict;
    overflow-wrap: break-word;
  }
}

/* §12 採用メニュー上下余白（SP） */
@media (max-width: 767px) {
  .recruit-side-nav__card {
    margin-top: 40px;
    margin-bottom: auto;
  }
}

/* SDGsアイコン 元サイズ表示（粗さ回避）
   元画像 100×100px を等倍で表示（既存サイト準拠） */
.p-sec__main-inner .p-sec__fig-block-fig img[src*="/csr/sdgs/sdg_"] {
  width: 100px;
  height: 100px;
  max-width: 100px;
  object-fit: contain;
}

/* 採用フッターナビ 上マージン縮小（SP） */
@media (max-width: 767px) {
  .l-footer__nav {
    margin-top: 10.6666666667vw;
  }
}

/* .p-sec__fig-list-item 2つ目以降の上マージン不要（SP） */
@media (max-width: 767px) {
  .p-sec__fig-list-item:not(:first-child) {
    margin-top: 0;
  }
}

/* ol/ul のマーカーが content1 の外に出ないように（SP） */
@media (max-width: 767px) {
  .content1 ol,
  .content1 ul {
    padding-left: 1.5em;
  }
}

/* 採用トップ about__slide SP で gsap フェードイン漏れ救済 */
@media (max-width: 767px) {
  .p-home-about__slide {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* 採用トップ interview スライド（li）間に余白（SP） */
@media (max-width: 767px) {
  .p-home-interview .splide__slide {
    padding-left: 4px;
    padding-right: 4px;
    box-sizing: border-box;
  }
}

/* Google Maps iframe の高さ（PC:600 / SP:350） */
iframe[src*="google.com/maps"] {
  height: 600px;
}
@media (max-width: 767px) {
  iframe[src*="google.com/maps"] {
    height: 350px;
  }
}

/* ============================================
   /recruit/ ダイコー沖縄の働き方リスト
   2項目構成 (li:nth-child(1)=数字でみる, li:nth-child(2)=研修制度)
   研修制度カードに work_fig03.webp を当てる
   ============================================ */

/* 研修制度 :before 画像差替（PC/SP共通） */
.p-home-work__list li:nth-child(2) a::before {
  background-image: url(/recruit/img/work_fig03.webp) !important;
}

/* SP: 右カラムを2マスぶち抜きで「数字でみる」と高さ揃え */
@media (max-width: 767px) {
  .p-home-work__list li:nth-child(2) {
    grid-row: 1 / 3;
    grid-column: 2;
    padding-top: 9.3333333333vw;
  }
  .p-home-work__list li:nth-child(2) a {
    padding-top: 37.8666666667vw;
  }
  .p-home-work__list li:nth-child(2) a::before {
    width: 25.3333333333vw;
    height: 22.9333333333vw;
  }
}

/* PC: nth-child(2) を li:first-child と同じ大カードに */
@media (min-width: 768px) {
  .p-home-work__list li:nth-child(2) {
    grid-row: 1 / 3;
    padding-top: 0;
  }
  .p-home-work__list li:nth-child(2) a {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    margin-left: 0;
    padding-top: clamp(121.8px, 15.859375vw, 253.75px);
    padding-bottom: 0;
  }
  .p-home-work__list li:nth-child(2) a::before {
    top: clamp(-32.5px, -2.03125vw, -15.6px);
    width: clamp(123px, 16.015625vw, 256.25px);
    height: clamp(123px, 16.015625vw, 256.25px);
  }
}

/* SP 見出しサイズ調整（コーポレートトップ・採用トップ・下層共通）
   トップページ系の独自セレクタが specificity 勝ちするため !important で強制 */
/* @media screen and (max-width: 768px) {
  .p-sec__main-inner h2,
  .dir_recruit .p-sec__main-inner h2,
  .dir_company .p-sec__main-inner h2,
  .p-home h2 {
    font-size: 28px !important;
  }
  .p-sec__main-inner h3,
  .dir_recruit .p-sec__main-inner h3,
  .dir_company .p-sec__main-inner h3,
  .p-home h3 {
    font-size: 26px !important;
  }
  .p-sec__main-inner h4,
  .dir_recruit .p-sec__main-inner h4,
  .dir_company .p-sec__main-inner h4,
  .p-home h4 {
    font-size: 24px !important;
  }
} */


/* 下層ページ: メインコンテンツとバナーエリアの余白確保
   PC では .l-main__external が margin-top: -160px で main の上に重なる設計のため、
   3 カードリンク等とバナー帯が密接して見える問題への対応。
   .p-sec[class*="dir_"] スコープで下層ページのみ重なりを解除（トップ .p-home は影響なし） */
@media (min-width: 768px) {
  .p-sec[class*="dir_"] .l-main__external {
    margin-top: clamp(40px, 4.16667vw, 60px);
  }
}

/*--- ul ol ---*/
.list_decimal {
	list-style: decimal outside;
    padding-left: 20px !important;
}
.list_disc {
	list-style-type: disc;
	padding-left: 20px !important;
}
.list_disc li {
    margin-top: 6px;
}

ol[style*="decimal"],
ol[style*="roman"],
ol[style*="alpha"] { padding-left: 22px; }

ol[style*="decimal"] li + li,
ol[style*="roman"] li + li,
ol[style*="alpha"] li + li { margin-top: 25px; }

ul[style*="disc"],
ul[style*="circle"],
ul[style*="square"] { padding-left: 20px; }

ul[style*="disc"] li + li,
ul[style*="circle"] li + li,
ul[style*="square"] li + li { margin-top: 25px; }
