/* ========================================
   テンファイブコーポレートサイト - セクション
   ======================================== */

/* ヒーローセクション - 基本構造は shared-sections.css で管理 */

/* コーポレートサイト専用のヒーロー調整 - ヘッダー調整は shared-sections.css で統一管理 */

/* トップページ専用のヒーロータイトルアクセントカラー調整 */
#corp-top .hero__title--accent {
  background: linear-gradient(330deg, #0975ad, var(--color-primary-500));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* セクション共通スタイルは shared-sections.css を参照 */

/* ニュースセクション */
/* 背景色は shared-sections.css で統一管理 */

.news__list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xl);
  /* max-width: 800px; */
  margin: 0 auto;
}

.news__item {
  background-color: #ffffff; /* フォールバック */
  background-color: var(--color-bg-primary);
  border: 1px solid #e2e8f0; /* フォールバック */
  border: 1px solid var(--color-border-primary);
  border-radius: var(--radius-lg);
  padding: var(--spacing-xl);
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-normal);
}

.news__item:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.news__header {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-md);
}

.news__date {
  font-size: var(--font-size-sm);
  color: var(--color-text-tertiary);
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
}

.news__badge {
  display: inline-flex;
  align-items: center;
  padding: var(--spacing-xs) var(--spacing-sm);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  border-radius: var(--radius-full);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.news__badge--notice {
  background-color: var(--color-accent-100);
  color: var(--color-accent-800);
}

.news__badge--update {
  background-color: var(--color-primary-100);
  color: var(--color-primary-800);
}

.news__badge--important {
  background-color: var(--color-warning);
  color: white;
}

.news__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: #1f2937; /* フォールバック */
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-sm);
}

/* .news__link のスタイルは shared-news-system.css で統一管理 */

/* .news__excerpt は削除されました */

/* セクションフッター共通スタイル */
.case-studies__footer,
.tech-blog__footer,
.curriculum__footer,
.glossary__footer,
.news__footer {
  text-align: right;
  margin-top: var(--spacing-2) !important;
}

/* ピックアップコンテンツセクション */
/* 背景色は shared-sections.css で統一管理 */

.pickup-content__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--spacing-xl);
}

.pickup-item {
  background-color: var(--color-bg-secondary);
  /* border: 1px solid var(--color-border-primary); */
  border-radius: var(--radius-lg);
  padding: var(--spacing-xl);
  transition: all var(--transition-normal);
  text-align: left;
}

.pickup-item:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
  border-color: var(--color-primary-200);
}

.pickup-item__title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-md);
}

.pickup-item__description {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--spacing-lg);
}

.pickup-item__link {
  color: var(--color-primary-600);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
  transition: color var(--transition-fast);
  position: relative;
}

.pickup-item__link:hover {
  color: var(--color-primary-700);
}

.pickup-item__link::after {
  content: '→';
  margin-left: var(--spacing-xs);
  transition: transform var(--transition-fast);
}

.pickup-item__link:hover::after {
  transform: translateX(4px);
}

/* カリキュラムセクション */
/* 背景色は shared-sections.css で統一管理 */

.curriculum .blog-card-container {
  margin-bottom: var(--spacing-3xl);
}

.curriculum__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: var(--spacing-xl);
  margin-bottom: var(--spacing-3xl);
}

.curriculum__list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-lg);
  max-width: 900px;
  margin: 0 auto;
}

.curriculum-item {
  background-color: var(--color-bg-primary);
  border: 1px solid var(--color-border-primary);
  border-radius: var(--radius-lg);
  padding: var(--spacing-xl);
  transition: all var(--transition-normal);
}

.curriculum-item:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
  border-color: var(--color-accent-200);
}

.curriculum-item__date {
  display: inline-block;
  font-size: var(--font-size-sm);
  color: var(--color-accent-600);
  font-weight: var(--font-weight-medium);
  background-color: var(--color-accent-50);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--radius-full);
  margin-bottom: var(--spacing-md);
}

.curriculum-item__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-sm);
}

.curriculum-item__description {
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin: 0;
}




/* セクション共通スタイルは shared-sections.css を参照 */

/* セクション共通のレスポンシブ対応は shared-sections.css を参照 */

/* ニュース・ピックアップコンテンツのレスポンシブ対応 */
@media (max-width: 1024px) {
  /* セクションパディングはデザインシステムで統一 */
  
  .curriculum .blog-card-container {
    margin-bottom: var(--spacing-2xl);
  }
}

@media (max-width: 768px) {
  .news {
    padding: var(--spacing-8) 0;
  }
  
  .news__list {
    gap: var(--spacing-lg);
  }
  
  /* セクションパディングはデザインシステムで統一 */
  
  .pickup-content__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }
  
  /* セクションパディングはデザインシステムで統一 */
  
  .curriculum .blog-card-container {
    margin-bottom: var(--spacing-xl);
  }
}

@media (max-width: 480px) {
  /* ニュースセクション全体のパディング */
  .news {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }
  
  .news__list {
    gap: var(--spacing-sm); /* スマートフォンでさらに縮小 */
  }
  
  .news__item {
    padding: var(--spacing-lg); /* スマートフォンでパディングを縮小 */
  }
  
  /* ピックアップコンテンツ */
  .pickup-content__grid {
    gap: var(--spacing-sm); /* スマートフォンでさらに縮小 */
  }
  
  .pickup-item {
    padding: var(--spacing-lg); /* スマートフォンでパディングを縮小 */
  }
  
  /* カリキュラムセクション */
  .curriculum .blog-card-container {
    margin-bottom: var(--spacing-md); /* スマートフォンでさらに縮小 */
  }
}

/* レスポンシブ対応 */
@media (min-width: 640px) {
  /* ヒーロー関連のスタイルは shared-sections.css で統一管理 */
}

@media (min-width: 768px) {
  .news__header {
    justify-content: flex-start;
  }
  
  .pickup-content__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 767px) {
  /* ヒーロー関連のスタイルは shared-sections.css で統一管理 */
  
  .pickup-content__grid {
    grid-template-columns: 1fr;
  }
  
  .section__title {
    font-size: var(--font-size-xl);
  }
  
  .section__subtitle {
    font-size: var(--font-size-base);
  }
}

/* ========================================
   STRENGTH セクション
   ======================================== */

/* 背景色は shared-sections.css で統一管理 */

.strengths__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-xl);
  margin-top: var(--spacing-8);
}

.strength-item {
  /* background-color: var(--color-bg-primary); */
  /* border: 1px solid var(--color-border-primary); */
  border-radius: var(--radius-lg);
  padding: var(--spacing-6);
  text-align: left;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.strength-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, var(--color-accent-500), var(--color-primary-500));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-normal);
}

/* .strength-item:hover のホバー効果は無効化されています */

.strength-item:hover::before {
  transform: scaleX(1);
}

.strength-item__icon {
  width: 48px;
  height: 48px;
  margin: 0 var(--spacing-sm) 0 0;
  background: linear-gradient(135deg, var(--color-primary-500), var(--color-accent-500));
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
}

.strength-item__icon-svg {
  width: 24px;
  height: 24px;
  color: var(--color-neutral-white);
}

.strength-item__header {
  display: flex;
  align-items: center;
  margin-bottom: var(--spacing-sm);
}

.strength-item__title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin: 0;
  line-height: var(--line-height-tight);
  flex: 1;
}

.strength-item__description {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
  .strengths__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
    margin-top: var(--spacing-2xl);
  }
}

@media (max-width: 768px) {
  /* セクションパディングはデザインシステムで統一 */
  
  .strengths__grid {
    gap: var(--spacing-md);
    margin-top: var(--spacing-xl);
  }
  
  .strength-item {
    padding: var(--spacing-4);
  }
  
  .strength-item__icon {
    width: 40px;
    height: 40px;
    margin: 0 var(--spacing-sm) 0 0;
  }
  
  .strength-item__icon-svg {
    width: 20px;
    height: 20px;
  }
  
  .strength-item__title {
    font-size: var(--font-size-base);
  }
}

@media (max-width: 480px) {
  .strengths__grid {
    gap: var(--spacing-sm); /* スマートフォンでさらに縮小 */
    margin-top: var(--spacing-lg); /* スマートフォンでさらに縮小 */
  }
  
  .strength-item {
    padding: var(--spacing-1); /* スマートフォンでさらに縮小 */
  }
  
  /* 会社概要セクション */
  .company-info {
    margin-top: var(--spacing-4); /* スマートフォンでさらに縮小 */
  }
}

/* ========================================
   COMPANY OVERVIEW セクション（旧スタイル - 非推奨）
   ======================================== */
/* 
   注意: 会社概要関連のスタイルは shared-sections.css で統一管理されています。
   以下のスタイルは旧バージョンの定義リスト形式用ですが、
   現在はテーブル形式（company-table）に統一されています。
   新しいページでは shared-sections.css の .company-details と .company-table を使用してください。
*/

/* 背景色は shared-sections.css で統一管理 */
/* 現在は company-details クラスを使用してください */

/* 旧スタイル - 定義リスト形式（現在は非推奨） */
.company-info {
  margin-top: var(--spacing-12);
}

.company-info__table {
  max-width: 800px;
  margin: 0 auto;
}

.company-info__row {
  display: flex;
  padding: var(--spacing-xs) 0;
  border: 1px solid var(--color-border-neutral);
  align-items: flex-start;
}

.company-info__row:last-child {
  border-bottom: none;
}

.company-info__label {
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  min-width: 120px;
  margin: 0;
  padding-right: var(--spacing-lg);
  flex-shrink: 0;
}

.company-info__value {
  color: var(--color-text-secondary);
  margin: 0;
  flex: 1;
  line-height: var(--line-height-relaxed);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  /* セクションパディングはデザインシステムで統一 */
  
  .company-info {
    margin-top: var(--spacing-6);
  }
  
  .company-info__row {
    flex-direction: column;
    padding: var(--spacing-1) 0;
  }
  
  .company-info__label {
    min-width: auto;
    padding-right: 0;
    margin-bottom: var(--spacing-xs);
    font-size: var(--font-size-sm);
  }
  
  .company-info__value {
    font-size: var(--font-size-sm);
  }
}

/* ========================================
   CTA セクション
   ======================================== */

/* 背景色は shared-sections.css で統一管理 */

/* CTAカードの特別なスタイル */
.cta__card {
  position: relative;
  overflow: hidden;
}

.cta__card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: transparent; /* デフォルトでは透明 */
  transition: all var(--transition-normal);
  z-index: 1;
}

/* .cta__card:hover::before のホバー効果は無効化されています */

.cta__card .image-card__content {
  position: relative;
  z-index: 2;
  background: transparent; /* 背景を透明に */
}

/* フォントサイズ、フォントウェイト、マージン、行間は shared-components.css で統一管理 */
.cta__card .image-card__title {
  color: var(--color-neutral-900); /* 白背景でも見えるように黒に変更 */
  text-align: left; /* 他のカードタイプと同様に左寄せ */
  /* font-size, font-weight, margin, line-height は shared-components.css で統一管理 */
  text-decoration: underline;
  text-decoration-color: var(--color-neutral-400); /* 事業内容と同じ下線色 */
  text-underline-offset: 2px; /* 事業内容と同じオフセット */
  transition: all 0.2s ease; /* 事業内容と同じトランジション */
}

.cta__card:hover .image-card__title {
  color: var(--color-primary-600);
  text-decoration-color: var(--color-primary-600);
}

/* レスポンシブ対応 */
/* フォントサイズは shared-components.css で統一管理 */

/* ========================================
   SUBPAGE HERO セクション
   ======================================== */

.subpage-hero {
  position: relative;
  padding: var(--spacing-20) 0 var(--spacing-16) 0;
  background-color: var(--color-neutral-100);
  overflow: hidden;
}

.subpage-hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.subpage-hero__picture {
  display: block;
  width: 100%;
  height: 100%;
}

.subpage-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.7);
}

.subpage-hero__content {
  position: relative;
  z-index: 1;
  text-align: center;
  color: var(--color-neutral-white);
  max-width: var(--content-max-width);
  margin: 0 auto;
}

.subpage-hero__title {
  font-size: var(--font-size-5xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-2);
  line-height: var(--line-height-tight);
  color: var(--color-neutral-white);
}

.subpage-hero__subtitle {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.2em;
  margin-bottom: var(--spacing-8);
  color: var(--color-neutral-white);
  opacity: 0.9;
}

.subpage-hero__description {
  font-size: var(--font-size-base);
  line-height: var(--line-height-relaxed);
  color: var(--color-neutral-white);
  max-width: 800px;
  margin: 0 auto;
}

@media (max-width: 768px) {
  .subpage-hero {
    padding: var(--spacing-12) 0 var(--spacing-8) 0;
  }

  .subpage-hero__title {
    font-size: var(--font-size-4xl);
  }

  .subpage-hero__subtitle {
    font-size: var(--font-size-xs);
    margin-bottom: var(--spacing-4);
  }

  .subpage-hero__description {
    font-size: var(--font-size-sm);
  }

  .subpage-hero__description br {
    display: none;
  }
}

@media (max-width: 480px) {
  .subpage-hero {
    padding: var(--spacing-8) 0 var(--spacing-4) 0; /* スマートフォンでさらに縮小 */
  }
}

/* ========================================
   SERVICE ITEM セクション
   ======================================== */

.service-item {
  padding: var(--spacing-16) 0;
  background-color: var(--color-neutral-white);
}

.service-item:nth-child(even) {
  background-color: var(--color-neutral-50);
}

.service-item__wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-12);
  align-items: center;
}

.service-item--reverse .service-item__wrapper {
  direction: rtl;
}

.service-item--reverse .service-item__content,
.service-item--reverse .service-item__media {
  direction: ltr;
}

.service-item__content {
  padding: var(--spacing-4);
}

.service-item__number {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary-500);
  margin-bottom: var(--spacing-2);
  letter-spacing: 0.05em;
}

.service-item__title {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-4);
  line-height: var(--line-height-tight);
}

.service-item__description {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

.service-item__media {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
}

.service-item__image {
  width: 100%;
  height: auto;
  display: block;
  transition: transform var(--transition-normal);
}

.service-item__media:hover .service-item__image {
  transform: scale(1.05);
}

@media (max-width: 1024px) {
  .service-item__wrapper {
    grid-template-columns: 1fr;
    gap: var(--spacing-8);
  }

  .service-item--reverse .service-item__wrapper {
    direction: ltr;
  }

  .service-item__title {
    font-size: var(--font-size-xl);
  }
}

@media (max-width: 768px) {
  .service-item {
    padding: var(--spacing-8) 0;
  }

  .service-item__wrapper {
    gap: var(--spacing-6);
  }

  .service-item__content {
    padding: var(--spacing-2);
  }

  .service-item__title {
    font-size: var(--font-size-lg);
    margin-bottom: var(--spacing-3);
  }

  .service-item__description {
    font-size: var(--font-size-sm);
  }
}

@media (max-width: 480px) {
  .service-item {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }

  .service-item__wrapper {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .service-item__content {
    padding: var(--spacing-1); /* スマートフォンでさらに縮小 */
  }

  .service-item__title {
    margin-bottom: var(--spacing-2); /* スマートフォンでさらに縮小 */
  }
}

/* ========================================
   CTA SECTION セクション
   ======================================== */

.cta-section {
  padding: var(--spacing-20) 0;
  background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700));
  text-align: center;
}

.cta-section__content {
  max-width: 800px;
  margin: 0 auto;
}

.cta-section__title {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-neutral-white);
  margin-bottom: var(--spacing-8);
  line-height: var(--line-height-tight);
}

.cta-section__actions {
  display: flex;
  justify-content: center;
  gap: var(--spacing-4);
  flex-wrap: wrap;
}

@media (max-width: 768px) {
  .cta-section {
    padding: var(--spacing-12) 0;
  }

  .cta-section__title {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--spacing-6);
  }

  .cta-section__actions {
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-3);
  }

  .cta-section__actions .btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .cta-section {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }

  .cta-section__title {
    margin-bottom: var(--spacing-4); /* スマートフォンでさらに縮小 */
  }

  .cta-section__actions {
    gap: var(--spacing-2); /* スマートフォンでさらに縮小 */
  }
}

/* ========================================
   COMPANY PAGE セクション（旧スタイル - 非推奨）
   ======================================== */
/* 
   注意: 会社概要関連のスタイルは shared-sections.css で統一管理されています。
   以下のスタイルは旧バージョン用です。
   新しいページでは shared-sections.css の統一コンポーネントを使用してください：
   - .company-details, .company-table (会社概要テーブル)
   - .ceo-message, .message-content (代表挨拶)
   - .company-philosophy, .philosophy-content (企業理念)
*/

/* Company Overview Section - 旧スタイル */
.company-overview-section {
  padding: var(--spacing-16) 0; /* セクションパディングは shared-sections.css で統一管理 */
  background-color: var(--color-neutral-white);
}

/* 旧スタイル - company-table__header, company-table__data は非推奨 */
/* 新スタイルでは company-table__label, company-table__value を使用してください */
.company-table__row {
  border-bottom: 1px solid var(--color-border-primary);
}

.company-table__row:last-child {
  border-bottom: none;
}

.company-table__header {
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  padding: var(--spacing-4) var(--spacing-6) var(--spacing-4) 0;
  text-align: left;
  vertical-align: top;
  width: 150px;
  background-color: var(--color-neutral-50);
}

.company-table__data {
  color: var(--color-text-secondary);
  padding: var(--spacing-4) 0 var(--spacing-4) var(--spacing-6);
  line-height: var(--line-height-relaxed);
}

/* CEO Message Section - 旧スタイル */
.ceo-message-section {
  padding: var(--spacing-16) 0; /* セクションパディングは shared-sections.css で統一管理 */
  background-color: var(--color-neutral-50);
}

/* 旧スタイル - ceo-message__profile, ceo-message__image など */
/* 新スタイルでは message-content, message-text, message-paragraph を使用してください */
.ceo-message__profile {
  display: flex;
  align-items: center;
  gap: var(--spacing-6);
  margin-bottom: var(--spacing-8);
  padding-bottom: var(--spacing-6);
  border-bottom: 2px solid var(--color-primary-500);
}

.ceo-message__image-wrapper {
  flex-shrink: 0;
}

.ceo-message__image {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--color-primary-200);
}

.ceo-message__title {
  flex: 1;
}

.ceo-message__position {
  font-size: var(--font-size-sm);
  color: var(--color-text-tertiary);
  margin-bottom: var(--spacing-1);
}

.ceo-message__name {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-1);
}

.ceo-message__name-en {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  font-family: var(--font-family-secondary);
}

.ceo-message__content {
  background-color: var(--color-neutral-white);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
}

.ceo-message__text {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--spacing-4);
}

.ceo-message__text:last-child {
  margin-bottom: 0;
}

/* Philosophy Section - 旧スタイル */
.philosophy-section {
  padding: var(--spacing-16) 0; /* セクションパディングは shared-sections.css で統一管理 */
  background-color: var(--color-neutral-white);
}

/* 旧スタイル - philosophy-grid は philosophy-content に統一 */
.philosophy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-8);
  margin-top: var(--spacing-8);
}

/* 旧スタイルの philosophy-item - 新スタイルでは同じクラス名を使用 */
/* コメントアウト: shared-sections.cssの新しいスタイルと競合するため */
/*
.philosophy-item {
  background-color: var(--color-neutral-50);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
  text-align: center;
}
*/

/* コメントアウト: 古いスタイル、現在は使用していない */
/*
.philosophy-item__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-600);
  margin-bottom: var(--spacing-4);
  padding-bottom: var(--spacing-3);
  border-bottom: 2px solid var(--color-primary-200);
}

.philosophy-item__content {
  font-size: var(--font-size-lg);
  color: var(--color-text-primary);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

.philosophy-item__list {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
}

.philosophy-item__list li {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--spacing-3);
  padding-left: var(--spacing-6);
  position: relative;
}

.philosophy-item__list li:last-child {
  margin-bottom: 0;
}

.philosophy-item__list li::before {
  content: '・';
  position: absolute;
  left: 0;
  color: var(--color-primary-500);
  font-weight: var(--font-weight-normal);
}
*/

/* Access Section */
.access-section {
  padding: var(--spacing-16) 0;
  background-color: var(--color-neutral-50);
}

.access-wrapper {
  margin-top: var(--spacing-8);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-8);
  align-items: start;
}

.access-map {
  width: 100%;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

.access-info {
  background-color: var(--color-neutral-white);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.access-info__address {
  margin-bottom: var(--spacing-6);
  padding-bottom: var(--spacing-6);
  border-bottom: 1px solid var(--color-border-primary);
}

.access-info__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-3);
}

.access-info__text {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

.access-info__subtitle {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-3);
}

.access-info__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.access-info__list li {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--spacing-2);
  padding-left: var(--spacing-6);
  position: relative;
}

.access-info__list li:last-child {
  margin-bottom: 0;
}

.access-info__list li::before {
  content: '●';
  position: absolute;
  left: 0;
  color: var(--color-primary-500);
  font-size: var(--font-size-xs);
}

/* Responsive - Company Page */
@media (max-width: 1024px) {
  .philosophy-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
  }

  .access-wrapper {
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
  }
}

@media (max-width: 768px) {
  .company-overview-section,
  .ceo-message-section,
  .philosophy-section,
  .access-section {
    padding: var(--spacing-8) 0;
  }

  .company-table__header {
    font-size: var(--font-size-sm);
    padding: var(--spacing-3) var(--spacing-4) var(--spacing-3) 0;
    width: 100px;
  }

  .company-table__data {
    font-size: var(--font-size-sm);
    padding: var(--spacing-3) 0 var(--spacing-3) var(--spacing-4);
  }

  .ceo-message__profile {
    flex-direction: column;
    text-align: center;
    gap: var(--spacing-4);
  }

  .ceo-message__image {
    width: 100px;
    height: 100px;
  }

  .ceo-message__name {
    font-size: var(--font-size-xl);
  }

  .ceo-message__content {
    padding: var(--spacing-4);
  }

  .ceo-message__text {
    font-size: var(--font-size-sm);
  }

  .philosophy-grid {
    gap: var(--spacing-4);
  }

  /* コメントアウト: shared-sections.cssの新しいスタイルと競合するため */
  /*
  .philosophy-item {
    padding: var(--spacing-4);
  }

  .philosophy-item__title {
    font-size: var(--font-size-lg);
  }

  .philosophy-item__content {
    font-size: var(--font-size-base);
  }

  .philosophy-item__list li {
    font-size: var(--font-size-sm);
  }
  */
}

@media (max-width: 480px) {
  .company-overview-section,
  .ceo-message-section,
  .philosophy-section,
  .access-section {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }

  .company-table__header {
    padding: var(--spacing-2) var(--spacing-3) var(--spacing-2) 0; /* スマートフォンでさらに縮小 */
  }

  .company-table__data {
    padding: var(--spacing-2) 0 var(--spacing-2) var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .ceo-message__profile {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .ceo-message__content {
    padding: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .philosophy-grid {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  /* コメントアウト: shared-sections.cssの新しいスタイルと競合するため */
  /*
  .philosophy-item {
    padding: var(--spacing-3);
  }
  */
}

/* ========================================
   CONTACT PAGE セクション
   ======================================== */

/* Contact Form Section */
.contact-form-section {
  /* padding: var(--spacing-16) 0; */
  background-color: var(--color-neutral-white);
}

.contact-form-wrapper {
  /* max-width: 960px;
  margin: 0 auto;
  background-color: var(--color-neutral-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--elevation-md);
  padding: var(--spacing-10);
  border: 1px solid var(--color-border-primary); */
}

.contact-form__header {
  text-align: left;
  margin-bottom: var(--spacing-6);
}

.contact-form__title {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary-500);
  margin: 0 0 var(--spacing-2) 0;
}

.contact-form__description {
  margin: 0;
  color: var(--color-neutral-600);
  line-height: var(--line-height-relaxed);
}

.contact-form {
  /* max-width: 800px; */
  /* margin: var(--spacing-8) auto 0; */
}

.contact-form .wpcf7-form {
  width: 100%;
}

/* CF7 outputs fields inside paragraphs; match spacing with design system */
.contact-form .wpcf7-form p {
  margin-bottom: var(--spacing-0);
  line-height: var(--line-height-relaxed);
}

.contact-form .wpcf7-form p:last-child {
  margin-bottom: 0;
}

.contact-form .wpcf7-form-control-wrap {
  width: 100%;
  display: block;
}

.contact-form .wpcf7-form-control:not(.wpcf7-radio):not(.wpcf7-checkbox) {
  width: 100%;
}

.contact-form .wpcf7-form-control.wpcf7-radio {
  border: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-3);
}

.contact-form .form-radio-group .wpcf7-list-item {
  margin: 0;
}

.contact-form .form-radio-group .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  column-gap: var(--spacing-sm);
  font-size: var(--font-size-base);
  color: var(--color-text-primary);
  cursor: pointer;
}

.contact-form span.wpcf7-list-item-label {
  font-size: var(--font-size-sm);
  color: var(--color-neutral-700);
}

.contact-form .form-radio-group .wpcf7-list-item input[type="radio"] {
  margin: 0;
}

.contact-form .form-group {
  /* margin-bottom: var(--spacing-6); */
}

.contact-form .wpcf7-not-valid-tip {
  color: var(--color-accent-red);
  font-size: var(--font-size-sm);
  margin-top: var(--spacing-1);
}

.contact-form .wpcf7-response-output {
  margin: var(--spacing-4) 0 0;
  padding: var(--spacing-3);
}

@media (max-width: 767px) {
  .contact-form-section {
    padding: var(--spacing-12) 0;
  }

  .contact-form-wrapper {
    padding: var(--spacing-6);
  }

  .contact-form {
    margin-top: var(--spacing-4);
  }

  .contact-form .form-row {
    flex-direction: column;
    gap: var(--spacing-2);
  }

  .contact-form .form-group--half {
    min-width: 100%;
    flex: 1 1 100%;
  }

  .contact-form .form-radio-group {
    gap: var(--spacing-2);
  }

  .contact-form .form-radio-row {
    gap: var(--spacing-2);
  }
}

/* ========================================
   PRIVACY POLICY PAGE セクション
   ======================================== */

.privacy-header {
  padding: var(--spacing-20) 0 var(--spacing-12) 0;
  background-color: var(--color-neutral-100);
  text-align: center;
}

.privacy-header__title {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-2);
}

.privacy-header__subtitle {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-secondary);
  letter-spacing: 0.2em;
  margin-bottom: var(--spacing-4);
}

.privacy-header__date {
  font-size: var(--font-size-sm);
  color: var(--color-text-tertiary);
  margin: 0;
}

.privacy-toc {
  padding: var(--spacing-12) 0;
  background-color: var(--color-neutral-white);
}

.toc {
  max-width: 800px;
  margin: 0 auto;
  background-color: var(--color-neutral-50);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
}

.toc__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-4);
}

.toc__list {
  list-style: decimal;
  padding-left: var(--spacing-6);
  margin: 0;
}

.toc__item {
  margin-bottom: var(--spacing-2);
}

.toc__item:last-child {
  margin-bottom: 0;
}

.toc__link {
  color: var(--color-primary-600);
  text-decoration: none;
  font-size: var(--font-size-base);
  transition: color var(--transition-fast);
}

.toc__link:hover {
  color: var(--color-primary-700);
  text-decoration: underline;
}

.privacy-content {
  background-color: var(--color-neutral-white);
  padding: var(--spacing-16) 0;
}

.privacy-section {
  max-width: 800px;
  margin: 0 auto var(--spacing-6) auto;
  padding-bottom: var(--spacing-6);
  border-bottom: 1px solid var(--color-border-primary);
}

.privacy-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.privacy-section__title {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-6);
}

.privacy-section__content {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
}

.privacy-section__content p {
  margin-bottom: var(--spacing-4);
}

.privacy-section__content p:last-child {
  margin-bottom: 0;
}

.privacy-section__content h3 {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin: var(--spacing-6) 0 var(--spacing-3) 0;
}

.privacy-section__content ul,
.privacy-section__content ol {
  margin: var(--spacing-4) 0;
  padding-left: var(--spacing-6);
}

.privacy-section__content li {
  margin-bottom: var(--spacing-2);
  line-height: var(--line-height-relaxed);
}

.privacy-contact-box {
  background-color: var(--color-neutral-50);
  padding: var(--spacing-4);
  border-left: 3px solid var(--color-primary-500);
  margin-top: var(--spacing-4);
}

.privacy-contact-box h3 {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin: 0 0 var(--spacing-2) 0;
}

.privacy-contact-box p {
  margin: 0;
}

/* Responsive - Privacy Page */
@media (max-width: 768px) {
  .privacy-header {
    padding: var(--spacing-12) 0 var(--spacing-8) 0;
  }

  .privacy-header__title {
    font-size: var(--font-size-3xl);
  }

  .privacy-toc {
    padding: var(--spacing-8) 0;
  }

  .toc {
    padding: var(--spacing-4);
  }

  .toc__title {
    font-size: var(--font-size-lg);
  }

  .toc__link {
    font-size: var(--font-size-sm);
  }

  .privacy-content {
    padding: var(--spacing-8) 0;
  }

  .privacy-section {
    margin-bottom: var(--spacing-8);
    padding-bottom: var(--spacing-8);
  }

  .privacy-section__title {
    font-size: var(--font-size-xl);
  }

  .privacy-section__content {
    font-size: var(--font-size-sm);
  }

  .privacy-section__content h3 {
    font-size: var(--font-size-base);
  }
}

@media (max-width: 480px) {
  .privacy-header {
    padding: var(--spacing-8) 0 var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }

  .privacy-toc {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }

  .toc {
    padding: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .privacy-content {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }

  .privacy-section {
    margin-bottom: var(--spacing-4); /* スマートフォンでさらに縮小 */
    padding-bottom: var(--spacing-4); /* スマートフォンでさらに縮小 */
  }
}

/* ========================================
   PARTNERS PAGE セクション
   ======================================== */

/* Benefits Section */
.benefits-section {
  padding: var(--spacing-16) 0;
  background-color: var(--color-neutral-white);
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-8);
  margin-top: var(--spacing-8);
}

.benefit-card {
  background-color: var(--color-neutral-50);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
  text-align: center;
  transition: all var(--transition-normal);
}

.benefit-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.benefit-card__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto var(--spacing-4);
  background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.benefit-card__icon-svg {
  width: 32px;
  height: 32px;
  color: var(--color-neutral-white);
}

.benefit-card__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-3);
}

.benefit-card__description {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

/* Partner Requirements Section */
.partner-requirements-section {
  padding: var(--spacing-16) 0;
  background-color: var(--color-neutral-50);
}

.requirements-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-8);
  margin-top: var(--spacing-8);
}

.requirement-group {
  background-color: var(--color-neutral-white);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
}

.requirement-group__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-600);
  margin-bottom: var(--spacing-4);
  padding-bottom: var(--spacing-3);
  border-bottom: 2px solid var(--color-primary-200);
}

.requirement-group__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.requirement-group__list li {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--spacing-2);
  padding-left: var(--spacing-6);
  position: relative;
}

.requirement-group__list li:last-child {
  margin-bottom: 0;
}

.requirement-group__list li::before {
  content: '・';
  position: absolute;
  left: 0;
  color: var(--color-primary-500);
  font-weight: var(--font-weight-normal);
}

/* Partnership Types Section */
.partnership-types-section {
  padding: var(--spacing-16) 0;
  background-color: var(--color-neutral-white);
}

.partnership-types {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-8);
  margin-top: var(--spacing-8);
}

.partnership-type {
  background-color: var(--color-neutral-50);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
  border-left: 4px solid var(--color-primary-500);
}

.partnership-type__number {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary-500);
  margin-bottom: var(--spacing-2);
}

.partnership-type__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-3);
}

.partnership-type__description {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--spacing-4);
}

.partnership-type__details {
  list-style: none;
  padding: 0;
  margin: 0;
}

.partnership-type__details li {
  font-size: var(--font-size-sm);
  color: var(--color-text-tertiary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--spacing-2);
  padding-left: var(--spacing-5);
  position: relative;
}

.partnership-type__details li:last-child {
  margin-bottom: 0;
}

.partnership-type__details li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: var(--color-primary-400);
}

/* Registration Flow Section */
.registration-flow-section {
  padding: var(--spacing-16) 0;
  background-color: var(--color-primary-50);
}

.flow-steps {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: var(--spacing-8);
  gap: var(--spacing-4);
}

.flow-step {
  flex: 1;
  background-color: var(--color-neutral-white);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
  text-align: center;
}

.flow-step__number {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary-600);
  margin-bottom: var(--spacing-2);
  letter-spacing: 0.05em;
}

.flow-step__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-2);
}

.flow-step__description {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

.flow-arrow {
  font-size: var(--font-size-2xl);
  color: var(--color-primary-500);
  font-weight: var(--font-weight-bold);
  flex-shrink: 0;
}

/* Responsive - Partners Page */
@media (max-width: 1024px) {
  .benefits-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
  }

  .requirements-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
  }

  .partnership-types {
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
  }

  .flow-steps {
    flex-direction: column;
    gap: var(--spacing-6);
  }

  .flow-arrow {
    transform: rotate(90deg);
  }
}

@media (max-width: 768px) {
  .benefits-section,
  .partner-requirements-section,
  .partnership-types-section,
  .registration-flow-section {
    padding: var(--spacing-8) 0;
  }

  .benefit-card {
    padding: var(--spacing-4);
  }

  .benefit-card__icon {
    width: 48px;
    height: 48px;
  }

  .benefit-card__icon-svg {
    width: 24px;
    height: 24px;
  }

  .benefit-card__title {
    font-size: var(--font-size-lg);
  }

  .benefit-card__description {
    font-size: var(--font-size-sm);
  }

  .requirement-group {
    padding: var(--spacing-4);
  }

  .requirement-group__title {
    font-size: var(--font-size-lg);
  }

  .requirement-group__list li {
    font-size: var(--font-size-sm);
  }

  .partnership-type {
    padding: var(--spacing-4);
  }

  .partnership-type__title {
    font-size: var(--font-size-lg);
  }

  .partnership-type__description {
    font-size: var(--font-size-sm);
  }

  .flow-step {
    padding: var(--spacing-4);
  }

  .flow-step__title {
    font-size: var(--font-size-base);
  }

  .flow-step__description {
    font-size: var(--font-size-xs);
  }
}

@media (max-width: 480px) {
  .benefits-section,
  .partner-requirements-section,
  .partnership-types-section,
  .registration-flow-section {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }

  .benefit-card {
    padding: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .benefits-grid {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .requirement-group {
    padding: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .requirements-grid {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .partnership-type {
    padding: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .partnership-types {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .flow-step {
    padding: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .flow-steps {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }
}

/* ========================================
   NEWS & BLOG LISTING PAGE セクション
   ======================================== */

/* Category Filter */
.category-filter-section {
  padding: var(--spacing-8) 0;
  background-color: var(--color-neutral-50);
}

.category-filter {
  display: flex;
  justify-content: flex-start;
  gap: var(--spacing-3);
  flex-wrap: wrap;
}

.category-filter__btn {
  padding: var(--spacing-2) var(--spacing-4);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-secondary);
  background-color: var(--color-neutral-white);
  border: 1px solid var(--color-border-primary);
  border-radius: var(--radius-full);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.category-filter__btn:hover {
  border-color: var(--color-primary-400);
  color: var(--color-primary-600);
}

.category-filter__btn--active {
  background-color: var(--color-primary-500);
  color: var(--color-neutral-white);
  border-color: var(--color-primary-500);
}

/* ブログカテゴリ ナビゲーション（リンク式） */
.blog-category-nav {
  padding: var(--spacing-1) 0 var(--spacing-2);
  background: transparent;
}
.blog-category-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-4);
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.blog-category-nav__item {
  display: inline-flex;
}
.blog-category-nav__link {
  color: var(--color-neutral-700);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: var(--color-neutral-300);
  transition: color var(--animation-duration-base) var(--animation-easing-ease),
              text-decoration-color var(--animation-duration-base) var(--animation-easing-ease);
}
.blog-category-nav__link:hover,
.blog-category-nav__link:focus {
  color: var(--color-primary-600);
  text-decoration-color: var(--color-primary-600);
}
.blog-category-nav__link--active {
  color: var(--color-primary-700);
  text-decoration-color: var(--color-primary-700);
  font-weight: var(--font-weight-semibold);
}

@media (max-width: 767px) {
  .blog-category-nav {
    padding: var(--spacing-2) 0 var(--spacing-2);
  }
  .blog-category-nav__list {
    gap: var(--spacing-3);
  }
}


/* Blog Article Styles (for WordPress post content) */
.article-content h2 {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin: var(--spacing-12) 0 var(--spacing-6) 0;
  padding-bottom: var(--spacing-3);
  border-bottom: 2px solid var(--color-primary-500);
}

.article-content h3 {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin: var(--spacing-10) 0 var(--spacing-4) 0;
  padding-left: var(--spacing-3);
  border-left: 4px solid var(--color-primary-500);
}

.article-content h4 {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-primary);
  margin: var(--spacing-8) 0 var(--spacing-3) 0;
}

.article-content p {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--spacing-4);
}

.article-content ul,
.article-content ol {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin: var(--spacing-4) 0;
  padding-left: var(--spacing-6);
}

.article-content li {
  margin-bottom: var(--spacing-2);
}

.article-content code {
  font-family: var(--font-family-monospace);
  font-size: 0.9em;
  background-color: var(--color-neutral-100);
  padding: var(--spacing-1) var(--spacing-2);
  border-radius: var(--radius-sm);
  color: var(--color-error);
}

.article-content pre {
  background-color: var(--color-neutral-900);
  color: var(--color-neutral-100);
  padding: var(--spacing-4);
  border-radius: var(--radius-base);
  overflow-x: auto;
  margin: var(--spacing-4) 0;
}

.article-content pre code {
  background-color: transparent;
  color: inherit;
  padding: 0;
}

.article-content blockquote {
  border-left: 4px solid var(--color-primary-300);
  background-color: var(--color-primary-50);
  padding: var(--spacing-4) var(--spacing-6);
  margin: var(--spacing-6) 0;
  font-style: italic;
  color: var(--color-text-secondary);
}

.article-content img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
  margin: var(--spacing-6) 0;
}

.article-content table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--spacing-6) 0;
}

.article-content th,
.article-content td {
  padding: var(--spacing-3);
  border: 1px solid var(--color-border-primary);
  text-align: left;
}

.article-content th {
  background-color: var(--color-neutral-100);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
}

/* Responsive - News & Blog */
@media (max-width: 1024px) {
  .news-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .news-list-section {
    padding: var(--spacing-8) 0;
  }

  .news-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
  }

  .category-filter {
    gap: var(--spacing-2);
  }

  .category-filter__btn {
    padding: var(--spacing-1) var(--spacing-3);
    font-size: var(--font-size-xs);
  }

  .article-content h2 {
    font-size: var(--font-size-2xl);
  }

  .article-content h3 {
    font-size: var(--font-size-xl);
  }

  .article-content h4 {
    font-size: var(--font-size-lg);
  }
}

@media (max-width: 480px) {
  .news-list-section {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }

  .news-grid {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .news-card__content {
    padding: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }
  
  .category-filter-section {
    padding: var(--spacing-6) 0; /* スマートフォンでさらに縮小 */
  }
}

/* ========================================
   LANDING PAGE セクション
   ======================================== */

/* LP Hero */
.lp-hero {
  position: relative;
  padding: var(--spacing-32) 0 var(--spacing-20) 0;
  background: linear-gradient(135deg, var(--color-primary-600), var(--color-primary-800));
  color: var(--color-neutral-white);
  text-align: center;
  overflow: hidden;
}

.lp-hero__content {
  position: relative;
  z-index: 1;
  max-width: 900px;
  margin: 0 auto;
}

.lp-hero__title {
  font-size: var(--font-size-5xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-4);
  line-height: var(--line-height-tight);
}

.lp-hero__subtitle {
  font-size: var(--font-size-xl);
  margin-bottom: var(--spacing-3);
  opacity: 0.95;
}

.lp-hero__description {
  font-size: var(--font-size-lg);
  margin-bottom: var(--spacing-8);
  opacity: 0.9;
}

.lp-hero__actions {
  display: flex;
  justify-content: center;
  gap: var(--spacing-4);
  flex-wrap: wrap;
}

/* LP Challenges */
.lp-challenges {
  padding: var(--spacing-16) 0;
  background-color: var(--color-neutral-50);
}

.lp-challenges__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-6);
  margin-top: var(--spacing-8);
}

.challenge-card {
  background-color: var(--color-neutral-white);
  padding: var(--spacing-6);
  border-radius: var(--radius-lg);
  text-align: center;
}

.challenge-card__icon {
  font-size: var(--font-size-5xl);
  margin-bottom: var(--spacing-3);
}

.challenge-card__text {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
}

/* LP Features */
/* セクションのpaddingは shared-sections.css で統一管理 */
.lp-features {
  /* padding: var(--spacing-16) 0; 削除 - shared-sections.css で統一管理 */
  background-color: var(--color-neutral-white);
}

.lp-features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-8);
  margin-top: var(--spacing-8);
}

.feature-card {
  text-align: center;
}

.feature-card__number {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary-500);
  margin-bottom: var(--spacing-3);
}

.feature-card__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-3);
}

.feature-card__description {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
}

/* LP CTA */
.lp-cta {
  padding: var(--spacing-20) 0;
  background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700));
  color: var(--color-neutral-white);
  text-align: center;
}

.lp-cta__title {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-8);
}

.lp-cta__actions {
  display: flex;
  justify-content: center;
  gap: var(--spacing-4);
  flex-wrap: wrap;
}

/* Responsive - Landing Pages */
@media (max-width: 1024px) {
  .lp-challenges__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .lp-features__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .lp-hero {
    padding: var(--spacing-20) 0 var(--spacing-12) 0;
  }

  .lp-hero__title {
    font-size: var(--font-size-4xl);
  }

  .lp-hero__subtitle {
    font-size: var(--font-size-lg);
  }

  .lp-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .lp-challenges__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
  }

  .lp-cta__title {
    font-size: var(--font-size-3xl);
  }
}

@media (max-width: 480px) {
  .lp-hero {
    padding: var(--spacing-16) 0 var(--spacing-8) 0; /* スマートフォンで適度に縮小 */
  }

  .lp-hero__description {
    margin-bottom: var(--spacing-6); /* スマートフォンで適度に縮小 */
  }

  .lp-challenges {
    padding: var(--spacing-12) 0; /* スマートフォンで適度に縮小 */
  }

  .lp-challenges__grid {
    gap: var(--spacing-3); /* スマートフォンでさらに縮小 */
  }

  .challenge-card {
    padding: var(--spacing-4); /* スマートフォンでさらに縮小 */
  }

  /* .lp-features のpaddingは shared-sections.css で統一管理 */

  .lp-features__grid {
    gap: var(--spacing-4); /* スマートフォンでさらに縮小 */
  }

  .lp-cta {
    padding: var(--spacing-16) 0; /* スマートフォンで適度に縮小 */
  }

  .lp-cta__title {
    margin-bottom: var(--spacing-6); /* スマートフォンで適度に縮小 */
  }
}

/* LP関連のスタイルは lp.css に移動しました */

/* カードグリッドとスライダーは shared-components.css で統一管理 */
/* 実績セクションのスライダーは共通コンポーネントを使用 */

/* 用語集セクション（トップページ用） */
.glossary__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-6);
  margin: var(--spacing-2) 0;
}

.glossary__footer {
  text-align: right;
  margin-top: var(--spacing-6) !important;
}

/* 用語集セクションのカード調整（共通コンポーネントをベースに） */
.glossary .image-card__category {
  background-color: var(--color-secondary-50);
  color: var(--color-secondary-600);
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
  .glossary__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-2);
  }
}

@media (max-width: 768px) {
  .glossary__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-2);
  }
}

/* サービスカテゴリセクションのスタイルは service.css に移動しました */
