/* ================= 会社案内（/company/）=================
 * デザイン正本 = renewal/company.jpg（1890px幅 = CSS px 1:1）
 * 配色：会社概要は落ち着いたグレー系（見出し #666・罫 #DADADA・th地 #F2F2F2）／キャッチ = ヤクルトレッド #E70038（2026-08-24 文一さん判断でブルー→グレー）
 * ====================================================== */
body.cp-page { background: #fff; }
body.cp-page .yf-pc .nav3d-band { background: transparent; }   /* ヒーローをナビ帯の下へ潜らせる（採用ページと同作法） */

/* ---- ヒーロー（デザイン正本 company-rev.jpg 2026-08-24）：
   薄グレー帯(#ECECEC)の中に角丸の固定フレーム(1190px・16:9)、動画は等倍(ストレッチなし)で1回再生→最終フレーム停止 ---- */
.cp-hero { background: #ECECEC; padding: 53px 20px 48px; }
@media (min-width: 900px) { .cp-hero { margin-top: -28px; padding-top: 81px; } }
.cp-hero-frame { position: relative; max-width: 1190px; margin: 0 auto; aspect-ratio: 16 / 9;
  border-radius: 28px; overflow: hidden; background: #C5C5C5;
  transform: translateZ(0); }   /* Safariのradius+overflow対策 */
.cp-hero-frame video, .cp-hero-frame .cp-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.cp-hero-title { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); z-index: 1;
  margin: 0; padding: 90px 20px 0 20px;   /* デザインでは中心よりやや下（建物の中程） */
  font-family: 'Tenor Sans', 'Trajan Sans Pro', 'Noto Serif JP', serif; font-weight: 400; font-size: 34px;
  letter-spacing: .38em; text-indent: .38em; color: #fff; text-align: center; line-height: 1.3;
  text-shadow: 0 2px 8px rgba(0,0,0,.45); }

/* ---- 理念 ---- */
.cp-wrap { max-width: 1120px; margin: 0 auto; padding: 0 20px; color: #333; }
.cp-phil { text-align: center; padding: 54px 0 0; }
.cp-smile { display: block; margin: 0 auto; width: 250px; height: auto; }
.cp-catch { margin: 28px 0 0; font-family: 'Zen Maru Gothic', sans-serif; font-weight: 700; font-size: 27px;
  letter-spacing: .1em; color: #E70038; line-height: 1.6; }
.cp-lead { max-width: 1073px; margin: 40px auto 0; text-align: left;
  font-family: 'Zen Maru Gothic', sans-serif; font-weight: 400; font-size: 20px; line-height: 2.3;
  letter-spacing: .1em; color: #555; text-align: justify; }
.cp-note { max-width: 1073px; margin: 14px auto 0; text-align: right; font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px; letter-spacing: .04em; color: #777; }
.cp-note a { color: #555; text-decoration: underline; text-underline-offset: 3px; }
.cp-photos { list-style: none; margin: 70px auto 0; padding: 0; max-width: 1073px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 38px; }
.cp-photos li { margin: 0; }
.cp-photos img { display: block; width: 100%; aspect-ratio: 322 / 198; object-fit: cover; border-radius: 10px; }

/* ---- 共通見出し ---- */
.cp-h2 { display: inline-block; margin: 0 0 26px; font-family: 'Zen Maru Gothic', sans-serif; font-weight: 700;
  font-size: 24px; letter-spacing: .1em; color: #666; line-height: 1.5; }
.cp-h2::after { content: ''; display: block; width: 100%; height: 5px; margin-top: 10px; border-radius: 3px; background: #D5D5D5; }

/* ---- 会社概要 ---- */
.cp-profile { padding: 84px 0 0; }
table.cp-table { width: 100%; border-collapse: collapse; font-family: 'Noto Sans JP', sans-serif; font-size: 15.5px; }
table.cp-table th { width: 11em; text-align: left; vertical-align: top; background: #F2F2F2; color: #555; font-weight: 700;
  padding: 16px 20px; border: 1px solid #DADADA; line-height: 1.8; }
table.cp-table td { padding: 16px 20px; border: 1px solid #DADADA; line-height: 1.9; color: #333; }
table.cp-table td small { display: block; font-size: 13px; color: #777; }
table.cp-table a { color: #555; text-decoration: underline; text-underline-offset: 3px; }
.cp-table-note { margin: 10px 2px 0; font-size: 13px; color: #777; line-height: 1.8; }
.cp-h3 { margin: 40px 0 14px; font-family: 'Zen Maru Gothic', sans-serif; font-weight: 700; font-size: 18px;
  letter-spacing: .08em; color: #666; }
table.cp-centers th { width: 19em; }
table.cp-centers td.cp-tel { width: 13em; white-space: nowrap; }

/* ---- Googleマップ ---- */
.cp-map { margin: 48px 0 0; }
.cp-map iframe { display: block; width: 100%; height: 290px; border: 1px solid #DADADA; border-radius: 6px; }
.cp-map-cap { margin: 10px 2px 0; font-size: 13.5px; color: #777; }
.cp-map-cap a { color: #555; text-decoration: underline; text-underline-offset: 3px; }

/* ---- お知らせ（最新4件＋さらに表示） ---- */
.cp-news { margin-top: 76px; padding: 44px 0 0; border-top: 1px solid #E2E2E2; }
.cp-news-h { margin: 0 0 28px; font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 23px;
  letter-spacing: .02em; color: #333; }
.cp-news .yy-grid.cols4 { gap: 28px 20px; }
.cp-news .yy-more-wrap { margin: 54px 0 0; }
.yy-more.loading { opacity: .55; cursor: progress; }
.cp-news-all { text-align: center; margin: 22px 0 0; font-size: 13.5px; }
.cp-news-all a { color: #555; text-decoration: underline; text-underline-offset: 3px; }
.cp-bottom { height: 120px; }

/* ---- SP ---- */
@media (max-width: 900px) {
  .cp-hero { padding: 20px 14px 22px; }
  .cp-hero-frame { border-radius: 14px; }
  .cp-hero-title { font-size: 17px; letter-spacing: .26em; text-indent: .26em; padding-top: 34px; text-shadow: 0 1px 5px rgba(0,0,0,.45); }
  .cp-phil { padding-top: 40px; }
  .cp-smile { width: 180px; }
  .cp-catch { font-size: 20px; margin-top: 20px; }
  .cp-lead { font-size: 15.5px; line-height: 2.1; letter-spacing: .06em; margin-top: 26px; }
  .cp-note { font-size: 12px; }
  .cp-photos { grid-template-columns: 1fr; gap: 16px; margin-top: 40px; max-width: 420px; }
  .cp-profile { padding-top: 56px; }
  .cp-h2 { font-size: 20px; }
  table.cp-table { font-size: 14px; }
  table.cp-table th, table.cp-table td { display: block; width: auto; box-sizing: border-box; }
  table.cp-table th { border-bottom: 0; padding: 9px 14px; }
  table.cp-table td { padding: 12px 14px 14px; border-top: 0; }
  table.cp-table tr + tr th { border-top: 0; }
  table.cp-centers td.cp-tel { white-space: normal; width: auto; }
  .cp-map iframe { height: 240px; }
  .cp-news { margin-top: 52px; padding-top: 32px; }
  .cp-news-h { font-size: 18px; }
  .cp-bottom { height: 70px; }
}
