/* ==========================================
   1. 全体の基本フォント設定（今風のゴシック体に統一）
   ========================================== */
* {
	font-family: "Noto Sans JP", "Helvetica Neue", Arial, sans-serif !important;
}

.page-title {
	font-weight: 700;
}

.page-header .page-title {
	font-size: 1.0rem;
}

.nav-menu a:before, .entry-footer a:before, .entry-meta a:before, .author-box a:before, body #infinite-handle span:before, .comments-area .nav-links a:before, .comment-author a:before, .comment-content a:before, .comment-reply-link:before, .comment-form a:before, .paging-navigation a:before, .category-filter a:before, .single-additional a:before, .sd-social-text ul li a:after, .portfolio-archive .entry-title a:before {
	top: 110%;
}

/* ==========================================
   2. テーマ標準のレスポンシブ設定
   ========================================== */
@media only screen and (min-width: 1281px) {
	.post-template-default .featured-image img, .post-template-default .single-format-video .featured-image, .post-template-default .content-area .aligncenter, .post-template-default .content-area .alignnone {
		max-width: 100%;
	}
}

@media only screen and (min-width: 1025px) {
	.listing .featured-image + .content-wrapper, .listing .entry-video-wrapper + .content-wrapper, .listing .entry-gallery + .content-wrapper {
		width: calc(100% - 30%);
	}
	.listing .entry-header, .listing .entry-content {
		max-width: 100%;
	}
	.blog .site-content,
	.page-id-20589 .site-content,
	.page-id-88 .site-content,
	.page-id-2381 .site-content,
	.single .site-content {
		width: 960px;
		margin: 0 auto;
		padding-left: 0;
		padding-right: 0;
	}
	.page-template-default .page {
		max-width: 100%;
	}
	.post-template-default .hentry {
		max-width: 100%;
		width: 100%;
	}
}

/* ==========================================
   3. 各パーツの微調整（サイズ・行間・太さ）
   ========================================== */
h1 b {
	display: block !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	margin-bottom: 14px !important;
}

h1 span {
	display: block !important;
	line-height: 1.4 !important;
}

h2 span {
	font-weight: 600 !important;
	font-size: 15pt !important;
}

p span {
	font-size: 12pt !important;
}

/* ==========================================
   4. スマホ用：マトリクス表（2列版）
   ========================================== */
@media screen and (max-width: 767px) {
	table.matrix-table, 
	table.matrix-table thead, 
	table.matrix-table tbody, 
	table.matrix-table th, 
	table.matrix-table td, 
	table.matrix-table tr {
		display: block !important;
		width: 100% !important;
		box-sizing: border-box;
	}
	
	table.matrix-table thead {
		display: none !important;
	}
	
	table.matrix-table {
		border: none !important;
		margin: 40px 0 !important;
	}
	
	table.matrix-table tbody tr {
		margin-bottom: 24px !important;
		border: 1px solid #000000 !important;
		padding: 20px !important;
		background: #ffffff !important;
	}
	
	table.matrix-table tbody td {
		border: none !important;
		padding: 0 !important;
		margin-bottom: 16px;
	}
	table.matrix-table tbody td:last-child {
		margin-bottom: 0;
	}
	
	table.matrix-table tbody td:nth-child(1) {
		font-size: 16pt !important;
		border-bottom: 1px solid #e0e0e0 !important;
		padding-bottom: 12px !important;
		margin-bottom: 16px;
		background-color: transparent !important;
	}
	
	table.matrix-table tbody td:nth-child(2)::before {
		content: "▼ 対応業務内容";
		display: block;
		font-size: 11pt;
		font-weight: bold;
		color: #000000;
		margin-bottom: 8px;
	}
	
	table.matrix-table tbody td ul {
		padding-left: 16px !important;
		margin: 0 !important;
	}
}

table.matrix-table td span {
	font-size: 10pt !important;
}

/* ==========================================
   5. ABOUT 会社概要ページ（.bd-about）専用デザイン
   ========================================== */
.bd-about {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 20px 0 60px;
  color: #111111;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif !important;
  line-height: 1.7;
  box-sizing: border-box;
}

.bd-about *, .bd-about *::before, .bd-about *::after {
  box-sizing: border-box;
}

.bd-about a {
  color: #111111;
  text-decoration: none;
  border-bottom: 1px solid #111111;
  padding-bottom: 2px;
}

.bd-about .hero {
  padding: 20px 0 10px;
  border-bottom: none !important;
}
.bd-about .hero-eyebrow {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #666666;
  text-transform: uppercase;
  margin-bottom: 12px !important;
}
.bd-about .hero-title {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 56px !important;
  font-weight: 800 !important;
  line-height: 1.0 !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 20px 0 !important;
  color: #111111 !important;
}
.bd-about .hero-desc {
  font-size: 15px !important;
  color: #444444 !important;
  margin: 0 !important;
  font-weight: 500;
}

.bd-about .sec-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  border-top: 2px solid #111111 !important;
  padding-top: 16px !important;
  margin-top: 50px !important;
  margin-bottom: 20px !important;
}
.bd-about .sec-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em;
  margin: 0 !important;
  color: #111111 !important;
}
.bd-about .sec-sub {
  font-size: 11px !important;
  font-family: "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.15em;
  color: #888888;
  text-transform: uppercase;
}

.bd-about .row-list {
  display: flex;
  flex-direction: column;
}
.bd-about .row-item {
  display: flex !important;
  padding: 18px 0 !important;
  border-top: 1px solid #e0e0e0 !important;
  align-items: flex-start;
}
.bd-about .row-list .row-item:first-child {
  border-top: none !important;
}

.bd-about .row-label {
  width: 200px !important;
  flex-shrink: 0 !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #111111 !important;
  margin-right: 20px;
}
.bd-about .row-label .sub-label {
  display: block;
  font-size: 10px;
  color: #888888;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.bd-about .row-content {
  flex: 1 !important;
  font-size: 14px !important;
  color: #222222 !important;
}
.bd-about .row-content .role-badge {
  display: block;
  font-size: 11px;
  color: #777777;
  margin-bottom: 2px;
}

.bd-about .contact-grid {
  display: flex !important;
  flex-wrap: wrap !important;
}
.bd-about .contact-label {
  width: 45px !important;
  font-size: 11px !important;
  font-family: "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 700 !important;
  color: #777777 !important;
  margin-bottom: 6px !important;
}
.bd-about .contact-grid span:not(.contact-label) {
  width: calc(100% - 45px) !important;
  font-size: 14px !important;
  margin-bottom: 6px !important;
}

.bd-about .pill-group {
  margin-bottom: 16px;
}
.bd-about .pill-group:last-child {
  margin-bottom: 0;
}
.bd-about .pill-title {
  font-size: 10px;
  font-weight: 700;
  color: #888888;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.bd-about .pills {
  display: flex !important;
  flex-wrap: wrap !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.bd-about .pills li {
  font-size: 12px !important;
  line-height: 1.4 !important;
  color: #222222 !important;
  background: #f4f4f3 !important;
  border: 1px solid #dcdcd8 !important;
  border-radius: 20px !important;
  padding: 5px 14px !important;
  margin: 0 8px 8px 0 !important;
  list-style: none !important;
  display: inline-block !important;
}
.bd-about .pills li::before {
  content: none !important;
}

.bd-about .profile-wrapper {
  margin-top: 20px;
}
.bd-about .portrait-img {
  width: 100% !important;
  max-width: 420px !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto 30px !important;
  filter: grayscale(100%);
}
.bd-about .profile-info {
  text-align: center;
}
.bd-about .profile-role {
  font-size: 11px;
  font-family: "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.15em;
  color: #777777;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.bd-about .profile-name {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 24px;
}
.bd-about .profile-name .en {
  font-size: 13px;
  font-weight: 500;
  color: #777777;
  margin-left: 10px;
  font-family: "Helvetica Neue", Arial, sans-serif;
}
.bd-about .profile-bio {
  text-align: left;
  font-size: 14px;
  line-height: 1.9;
  color: #222222;
  max-width: 800px;
  margin: 0 auto;
}

.bd-about .awards-logo {
  width: 100% !important;
  max-width: 300px !important;
  height: auto !important;
  filter: grayscale(100%);
  margin-bottom: 24px !important;
  display: block !important;
}
.bd-about .award-year-row {
  display: flex !important;
  padding: 18px 0 !important;
  border-top: 1px solid #e0e0e0 !important;
}
.bd-about .award-year {
  width: 140px !important;
  flex-shrink: 0 !important;
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #111111 !important;
}
.bd-about .award-list {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}
.bd-about .award-item {
  margin-bottom: 12px;
}
.bd-about .award-item:last-child {
  margin-bottom: 0;
}
.bd-about .award-item .prod {
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #111111 !important;
}
.bd-about .award-item .meta {
  font-size: 11px !important;
  font-family: "Helvetica Neue", Arial, sans-serif;
  color: #777777 !important;
  margin-top: 2px !important;
}

@media screen and (max-width: 680px) {
  .bd-about .hero-title {
    font-size: 38px !important;
  }
  .bd-about .row-item {
    flex-direction: column !important;
    padding: 14px 0 !important;
  }
  .bd-about .row-label {
    width: 100% !important;
    font-size: 11px !important;
    color: #888888 !important;
    margin-right: 0 !important;
    margin-bottom: 4px !important;
  }
  .bd-about .award-year-row {
    flex-direction: column !important;
    padding: 14px 0 !important;
  }
  .bd-about .award-year {
    width: 100% !important;
    font-size: 20px !important;
    border-bottom: 1px dotted #cccccc !important;
    padding-bottom: 4px !important;
    margin-bottom: 8px !important;
  }
}

/* ==========================================
   6. OUTLINE 事業概要ページ（.bd-outline）専用デザイン
   ========================================== */
.bd-outline {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 20px 0 60px;
  color: #111111;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif !important;
  line-height: 1.7;
  box-sizing: border-box;
}

.bd-outline *, .bd-outline *::before, .bd-outline *::after {
  box-sizing: border-box;
}

/* ヒーロー（下線を削除してセクション線と1本化） */
.bd-outline .hero {
  padding: 20px 0 10px;
  border-bottom: none !important;
}
.bd-outline .hero-eyebrow {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #666666;
  text-transform: uppercase;
  margin-bottom: 12px !important;
}
.bd-outline .hero-title {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 52px !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 20px 0 !important;
  color: #111111 !important;
}
.bd-outline .hero-title .hl {
  border-bottom: 2px solid #111111;
  padding-bottom: 2px;
}
.bd-outline .hero-desc {
  font-size: 15px !important;
  color: #444444 !important;
  margin: 0 !important;
  font-weight: 500;
}

/* 哲学（PHILOSOPHY）セクション */
.bd-outline .philo-wrapper {
  margin-top: 50px;
}
.bd-outline .philo-sec {
  display: flex !important;
  padding: 28px 0 !important;
  border-top: 1px solid #e0e0e0 !important;
  align-items: flex-start;
}
.bd-outline .philo-sec:first-child {
  border-top: 2px solid #111111 !important; /* セクションの境界は太線1本 */
}
.bd-outline .philo-tag {
  width: 200px !important;
  flex-shrink: 0 !important;
  font-family: "Helvetica Neue", Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #111111 !important;
  margin-right: 20px;
}
.bd-outline .philo-tag .idx {
  display: block;
  font-size: 10px;
  color: #888888;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.bd-outline .philo-content {
  flex: 1 !important;
}
.bd-outline .philo-content h2 {
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  margin: 0 0 12px 0 !important;
  color: #111111 !important;
}
.bd-outline .philo-content p {
  font-size: 14px !important;
  line-height: 1.9 !important;
  color: #222222 !important;
  margin: 0 !important;
}
.bd-outline .philo-content .em {
  border-bottom: 1.5px solid #111111;
  font-weight: 700;
  padding-bottom: 1px;
}

/* CAPABILITIES セクション */
.bd-outline .caps-wrapper {
  margin-top: 60px;
}
.bd-outline .caps-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  border-top: 2px solid #111111 !important;
  padding-top: 16px !important;
  margin-bottom: 20px !important;
  font-family: "Helvetica Neue", Arial, sans-serif !important;
  font-size: 11px !important;
  letter-spacing: 0.15em;
  color: #888888;
  text-transform: uppercase;
}
.bd-outline .caps-header .title {
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em;
  color: #111111 !important;
  font-family: "Noto Sans JP", sans-serif !important;
}

/* PHASE 行 */
.bd-outline .phase-row {
  display: flex !important;
  padding: 24px 0 !important;
  border-top: 1px solid #e0e0e0 !important;
  align-items: flex-start;
}
.bd-outline .phase-row:first-of-type {
  border-top: 1px solid #111111 !important;
}
.bd-outline .phase-label {
  width: 200px !important;
  flex-shrink: 0 !important;
  display: flex !important;
  margin-right: 20px;
}
.bd-outline .phase-num {
  font-family: "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #777777 !important;
  margin-right: 12px;
}
.bd-outline .phase-pname {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #111111 !important;
}
.bd-outline .phase-pen {
  display: block;
  font-family: "Helvetica Neue", Arial, sans-serif !important;
  font-size: 10px !important;
  color: #888888 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 2px;
}
.bd-outline .phase-content {
  flex: 1 !important;
}

/* ピル（タグ）統一デザイン */
.bd-outline .pills {
  display: flex !important;
  flex-wrap: wrap !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.bd-outline .pills li {
  font-size: 12px !important;
  line-height: 1.4 !important;
  color: #222222 !important;
  background: #f4f4f3 !important;
  border: 1px solid #dcdcd8 !important;
  border-radius: 20px !important;
  padding: 5px 14px !important;
  margin: 0 8px 8px 0 !important;
  list-style: none !important;
  display: inline-block !important;
}
.bd-outline .pills li::before {
  content: none !important;
}

/* 注意書き（NOTES） */
.bd-outline .notes {
  margin-top: 30px !important;
  padding: 0 !important;
  list-style: none !important;
}
.bd-outline .notes li {
  font-size: 11px !important;
  color: #777777 !important;
  line-height: 1.7 !important;
  margin-bottom: 4px !important;
  padding-left: 14px !important;
  position: relative !important;
  list-style: none !important;
}
.bd-outline .notes li::before {
  content: "*" !important;
  position: absolute !important;
  left: 0 !important;
}

/* スマホ用レスポンシブ */
@media screen and (max-width: 680px) {
  .bd-outline .hero-title {
    font-size: 36px !important;
  }
  .bd-outline .philo-sec {
    flex-direction: column !important;
    padding: 20px 0 !important;
  }
  .bd-outline .philo-tag {
    width: 100% !important;
    margin-right: 0 !important;
    margin-bottom: 8px !important;
  }
  .bd-outline .philo-content h2 {
    font-size: 18px !important;
  }
  .bd-outline .phase-row {
    flex-direction: column !important;
    padding: 18px 0 !important;
  }
  .bd-outline .phase-label {
    width: 100% !important;
    margin-right: 0 !important;
    margin-bottom: 12px !important;
  }
}