@charset "UTF-8";
/*
 * かねよし グループ会社
 *
 * gcc- … 会社情報ページのカード一覧（[group_companies]）
 * gp-  … 「グループ会社について」ページ（[group_companies_detail] / [group_companies_bases] とページ本文）
 *
 * テーマの style.css より後に読み込まれるが、テーマ側に
 * .content_main_area ul li のような詳細度の高い指定があるため、
 * 既存の追加CSS（拠点一覧）と同じく !important を付けている。
 */

/* ==================================================================
 * 会社情報ページ：グループ会社カード
 * ================================================================== */

.gcc-list {
  clear: both !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto 60px !important;
}

/* リード文はショートコードの外（ページ本文）に置くので、
   カード一覧と幅が揃うよう同じ max-width を持たせる。 */
.gcc-lead {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto 28px !important;
  font-size: 16px !important;
  line-height: 2 !important;
  color: #333 !important;
  text-align: center !important;
}

/* カードは幅を固定し、入りきらない分が折り返す。
   1行に2枚まで入り、半端な行は中央に寄る。会社が増えても減ってもCSSの修正は不要。 */
.gcc-grid {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 24px !important;
}

.gcc-card {
  box-sizing: border-box !important;
  flex: 0 1 500px !important;
  max-width: 100% !important;
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  background: #fff !important;
  border: 1px solid #dcdcdc !important;
  padding: 20px 24px !important;
  text-decoration: none !important;
  color: inherit !important;
  transition: border-color .25s ease, box-shadow .25s ease !important;
}

.gcc-card:hover {
  border-color: #102b53 !important;
  box-shadow: 0 6px 18px rgba(16, 43, 83, .10) !important;
  text-decoration: none !important;
}

.gcc-thumb {
  flex: 0 0 124px !important;
  width: 124px !important;
  height: 94px !important;
  overflow: hidden !important;
  background: #f4f6f9 !important;
}

.gcc-thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.gcc-body {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.gcc-name {
  display: block !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  color: #102b53 !important;
  line-height: 1.5 !important;
}

.gcc-role {
  display: block !important;
  font-size: 13px !important;
  color: #888 !important;
  line-height: 1.6 !important;
  margin-top: 5px !important;
}

.gcc-arrow {
  flex: 0 0 auto !important;
  position: relative !important;
  width: 22px !important;
  height: 1px !important;
  background: #44A2AC !important;
  transition: width .25s ease !important;
}

.gcc-arrow::after {
  content: "" !important;
  position: absolute !important;
  right: 0 !important;
  top: -3px !important;
  width: 7px !important;
  height: 7px !important;
  border-top: 1px solid #44A2AC !important;
  border-right: 1px solid #44A2AC !important;
  transform: rotate(45deg) !important;
  opacity: 0 !important;
  transition: opacity .25s ease !important;
}

.gcc-card:hover .gcc-arrow {
  width: 30px !important;
}

.gcc-card:hover .gcc-arrow::after {
  opacity: 1 !important;
}

/* 「詳しく見る」はテキストリンクだと気づきにくいので、塗りのボタンにしている。 */
.gcc-more {
  text-align: center !important;
  margin: 40px 0 0 !important;
}

.gcc-more a {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  min-width: 340px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  color: #fff !important;
  background: #102b53 !important;
  border: 1px solid #102b53 !important;
  text-decoration: none !important;
  padding: 17px 32px !important;
  transition: background .2s ease, border-color .2s ease !important;
}

.gcc-more a::after {
  content: "→" !important;
  font-size: 17px !important;
  line-height: 1 !important;
  transition: transform .2s ease !important;
}

.gcc-more a:hover {
  background: #44A2AC !important;
  border-color: #44A2AC !important;
  color: #fff !important;
  text-decoration: none !important;
}

.gcc-more a:hover::after {
  transform: translateX(5px) !important;
}

@media (max-width: 900px) {
  .gcc-grid { gap: 14px !important; }
  .gcc-card { flex: 0 1 100% !important; padding: 16px 18px !important; gap: 16px !important; }
  .gcc-thumb { flex: 0 0 96px !important; width: 96px !important; height: 72px !important; }
  .gcc-name { font-size: 17px !important; }
  .gcc-lead { font-size: 15px !important; margin-bottom: 20px !important; }
  .gcc-more { margin-top: 30px !important; }
  .gcc-more a { width: 100% !important; min-width: 0 !important; font-size: 15px !important; padding: 15px 20px !important; }
}

/* ==================================================================
 * 「グループ会社について」ページ
 * ================================================================== */

/* セクション間の余白。
 * テーマが .content_main_area + .content_main_area の padding を 0 にしてしまい
 * セクションどうしがくっつくので、このページ用のクラスで取り直している。 */
.gp-section {
  padding-top: 70px !important;
  padding-bottom: 0 !important;
}

.gp-section + .gp-section {
  padding-top: 110px !important;
}

.gp-section.gp-section-last {
  padding-bottom: 110px !important;
}

.gp-title {
  font-size: 30px !important;
  font-weight: 400 !important;
  color: #102b53 !important;
  text-align: center !important;
  margin: 10px 0 40px !important;
}

.gp-title::before,
.gp-title::after {
  content: "—" !important;
  color: #c2cbd8 !important;
  margin: 0 24px !important;
  font-weight: 300 !important;
}

.gp-lead {
  font-size: 16px !important;
  line-height: 2.1 !important;
  color: #333 !important;
  text-align: center !important;
  margin: 0 0 44px !important;
}

.gp-points {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
}

.gp-points li {
  border: 1px solid #dcdcdc !important;
  border-top: 3px solid #102b53 !important;
  padding: 26px 24px !important;
  background: #fff !important;
}

.gp-point-num {
  display: block !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  color: #44A2AC !important;
  margin-bottom: 10px !important;
}

.gp-point-h {
  display: block !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #102b53 !important;
  line-height: 1.5 !important;
  margin-bottom: 10px !important;
}

.gp-point-t {
  display: block !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
  color: #555 !important;
}

.gp-company {
  display: flex !important;
  gap: 36px !important;
  align-items: flex-start !important;
  border: 1px solid #dcdcdc !important;
  border-left: 5px solid #102b53 !important;
  padding: 32px 36px !important;
  background: #fff !important;
  margin-bottom: 24px !important;
}

.gp-company:last-child {
  margin-bottom: 0 !important;
}

.gp-company-photo {
  flex: 0 0 340px !important;
}

.gp-company-photo img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}

.gp-company-body {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.gp-company-badge {
  display: inline-block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  color: #fff !important;
  background: #44A2AC !important;
  padding: 4px 10px !important;
  border-radius: 2px !important;
  margin: 0 0 12px !important;
}

.gp-company-name {
  font-size: 26px !important;
  font-weight: 700 !important;
  color: #102b53 !important;
  margin: 0 0 6px !important;
  line-height: 1.4 !important;
}

.gp-company-catch {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #44A2AC !important;
  margin: 0 0 16px !important;
}

.gp-company-text {
  margin: 0 0 22px !important;
}

.gp-company-text p {
  font-size: 15px !important;
  line-height: 1.9 !important;
  color: #555 !important;
  margin: 0 0 1em !important;
}

.gp-company-text p:last-child {
  margin-bottom: 0 !important;
}

.gp-company-table {
  width: 100% !important;
  margin: 0 0 22px !important;
}

.gp-company-link a {
  display: inline-block !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #102b53 !important;
  text-decoration: none !important;
  border: 1px solid #102b53 !important;
  padding: 12px 24px !important;
  transition: background .2s ease, color .2s ease !important;
}

.gp-company-link a::after {
  content: " ↗" !important;
  font-size: 11px !important;
}

.gp-company-link a:hover {
  background: #102b53 !important;
  color: #fff !important;
}

/* 会社が増えると列も増える。1列あたり300pxを下回ると折り返す。 */
.gp-network {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  gap: 32px !important;
}

.gp-network-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.gp-network-list li {
  display: flex !important;
  gap: 16px !important;
  font-size: 15px !important;
  color: #444 !important;
  padding: 11px 0 !important;
  border-bottom: 1px dotted #cdcdcd !important;
}

.gp-network-list li span {
  flex: 0 0 90px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #102b53 !important;
}

@media only screen and (max-width: 767px) {
  .gp-section { padding-top: 36px !important; }
  .gp-section + .gp-section { padding-top: 60px !important; }
  .gp-section.gp-section-last { padding-bottom: 60px !important; }
  .gp-title { font-size: 20px !important; margin-bottom: 24px !important; }
  .gp-title::before,
  .gp-title::after { margin: 0 10px !important; }
  .gp-lead { font-size: 15px !important; text-align: left !important; margin-bottom: 28px !important; }
  .gp-lead br { display: none !important; }
  .gp-points { grid-template-columns: 1fr !important; gap: 14px !important; }
  .gp-points li { padding: 20px !important; }
  .gp-company { flex-direction: column !important; gap: 20px !important; padding: 20px !important; }
  .gp-company-photo { flex: 0 0 auto !important; width: 100% !important; }
  .gp-company-name { font-size: 21px !important; }
  .gp-network { grid-template-columns: 1fr !important; gap: 20px !important; }
  .gp-company-link a { display: block !important; text-align: center !important; }
}
