/* ========================================
 * レスポンシブデザイン - 991px以下の画面サイズ (タブレット・モバイル)
 * ======================================== */
@media (max-width: 991px) {
    .container { 
        padding: 0 20px; 
    }
    
    .page-section { 
        padding: 80px 0; 
    }
    
    .section-header { 
        margin-bottom: 50px; 
    }
    
    .section-title { 
        font-size: 28px; 
    }

    /* PC用のヘッダー要素を非表示 */
    .header-tagline,
    .header-cta {
        display: none !important;
    }
    
    /* PC用のナビゲーションを非表示 */
    .main-navigation {
        display: none;
    }
    
    /* モバイル用のメニューボタンを表示 */
    .menu-toggle {
        display: flex;
    }
    
    /* モバイル用のナビゲーションを表示可能に */
    .mobile-navigation {
        display: block;
    }
    
    /* ヘッダーのレイアウト調整 */
    .header-content {
        justify-content: space-between;
        gap: 15px;
    }
    
    .logo-area {
        flex: 1;
    }
}

/* ========================================
 * レスポンシブデザイン - 1024px以下の画面サイズ (主にタブレット)
 * ======================================== */
@media (max-width: 1024px) {
  /* --- フッター (タブレット) --- */
  .footer-main { 
      grid-template-columns: repeat(2, 1fr); 
      gap: 30px;
  }
  
  .footer-about { 
      grid-column: 1 / -1; 
      text-align: center; 
      margin-bottom: 20px;
  }
  
  .footer-links-column { 
      text-align: center; 
  }
  
  .footer-links-column a:hover { 
      padding-left: 0; 
  }
  
  /* --- コラムページ (タブレット) --- */
  .article-inner-grid {
        grid-template-columns: 1fr;
        gap: 48px;
    }
    
    .sidebar-container {
        position: static;
        width: 100%;
        top: auto;
    }
    
    .column-layout-wrapper .container {
        padding: 0 32px;
    }
  
    .featured-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    
    .featured-main,
    .featured-sub {
        grid-column: 1;
        grid-row: auto;
    }
    
    .featured-main .featured-image {
        aspect-ratio: 4 / 3;
    }
    
    .post-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* ========================================
 * レスポンシブデザイン - 968px以下の画面サイズ (大きめのモバイル)
 * ======================================== */
@media (max-width: 968px) {
    .column-layout-wrapper .container {
        padding: 0 20px;
    }

    .archive-hero-section {
        padding: 80px 0 72px !important;
        background-size: 40px 40px !important;
    }

    .archive-hero-title,
    .archive-hero-section .section-title {
        font-size: 32px !important;
        line-height: 1.5 !important;
    }

    .archive-hero-subtitle {
        font-size: 14px !important;
        line-height: 1.8 !important;
    }

    .archive-hero-kicker {
        font-size: 10px !important;
        gap: 8px !important;
        margin-bottom: 24px !important;
    }

    .archive-hero-kicker::before,
    .archive-hero-kicker::after {
        width: 16px !important;
    }

    .column-layout-wrapper {
        padding: 60px 0 80px;
    }

    .category-list {
        overflow-x: auto;
        justify-content: flex-start;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 0 20px;
        flex-wrap: nowrap;
    }
    
    .category-list::-webkit-scrollbar {
        display: none;
    }

    .category-item {
        white-space: nowrap;
        flex-shrink: 0;
        padding: 20px 24px;
        font-size: 12px;
    }

    .post-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}


/* ========================================
 * レスポンシブデザイン - 767px以下の画面サイズ (一般的なモバイル)
 * ======================================== */
@media (max-width: 767px) {
  /* --- フッター (モバイル) --- */
  .site-footer { 
      padding: 60px 0 30px; 
  }
  
  .footer-main {
    display: grid;
    grid-template-columns: 1fr 1fr; 
    gap: 30px 20px; 
    padding-bottom: 30px;
  }
  
  .footer-about {
    grid-column: 1 / -1; 
    margin-bottom: 10px;
    text-align: left;
    gap: 20px;
  }
  
  .footer-logo { 
      font-size: 24px; 
      margin-bottom: 0;
  }
  
  .footer-links-column {
    text-align: left;
    border-top: none; 
    padding: 0;
  }

  /* ★★★ ここが修正箇所です ★★★ */
  .footer-license p {
    font-size: 13px;
  }

  /* --- コラムページ (モバイル) --- */
  .archive-hero-section {
        padding: 60px 0 56px !important;
    }

    .archive-hero-title,
    .archive-hero-section .section-title {
        font-size: 28px !important;
        margin-bottom: 20px !important;
    }

    .archive-hero-subtitle {
        font-size: 13px !important;
    }

    .column-layout-wrapper {
        padding: 48px 0 64px;
    }

    .post-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .post-card-thumbnail {
        aspect-ratio: 16 / 9;
    }
    
    .sidebar-section {
        padding: 24px;
        margin-bottom: 32px;
    }

    .sidebar-section h3 {
        font-size: 12px;
        margin-bottom: 20px;
    }

    .pagination-wrapper {
        margin-top: 48px;
    }

    .pagination-wrapper .nav-links {
        gap: 12px;
    }
    
    .content-section-inline.alt-bg {
        margin-left: -20px;
        margin-right: -20px;
        width: calc(100% + 40px);
        padding: 40px 20px;
    }
    
    .post-grid-4 {
        grid-template-columns: 1fr;
    }
    
    .post-list-item {
        flex-direction: column;
        gap: 16px;
    }
    
    .post-list-thumbnail {
        width: 100%;
    }
    
    .cta-section {
        padding: 60px 24px;
        background: var(--bg-white);
        border: 1px solid var(--border-color);
    }
    
    .cta-question {
        font-size: 24px;
        color: var(--primary-color);
        text-shadow: none;
    }

    .cta-description {
        color: var(--text-secondary);
        text-shadow: none;
    }

    .cta-button {
        background: var(--primary-color);
        color: var(--text-on-primary);
    }
}

/* ========================================
 * レスポンシブデザイン - 480px以下の画面サイズ (小さめのモバイル)
 * ======================================== */
@media (max-width: 480px) {
    .mobile-navigation {
        padding: 100px 20px 30px;
    }
    
    .mobile-nav-menu a {
        font-size: 18px;
        padding: 20px 0;
    }
    
    .mobile-cta {
        margin-top: 30px;
        padding-top: 25px;
    }
    
    .mobile-cta .cta-button-header {
        padding: 14px 20px;
        font-size: 15px;
    }
  
    /* --- コラムページ (小さめのモバイル) --- */
    .column-layout-wrapper .container {
        padding: 0 16px;
    }

    .archive-hero-section {
        padding: 48px 0 44px !important;
    }

    .archive-hero-title,
    .archive-hero-section .section-title {
        font-size: 24px !important;
    }

    .page-numbers {
        min-width: 40px;
        height: 40px;
        font-size: 13px;
        padding: 0 12px;
    }

    /* ページ番号リンクを増やしている（ciw_render_job_pagination）ため、
       狭い画面では間隔と余白を詰めて折り返し行数を抑える。 */
    .job-pagination-wrapper .nav-links,
    .openjob-pagination .nav-links {
        gap: 8px;
    }

    .job-pagination-wrapper .page-numbers,
    .openjob-pagination .page-numbers {
        min-width: 36px;
        padding: 0 8px;
    }

    .page-numbers.prev,
    .page-numbers.next {
        font-size: 16px;
    }

    .sidebar-section {
        padding: 20px;
    }

    .popular-posts-list li {
        padding: 16px 0 16px 44px;
    }

    .popular-posts-list li::before {
        font-size: 16px;
        top: 16px;
    }

    .sidebar-post-content h4 {
        font-size: 12px;
    }

    .category-badge {
        padding: 14px 0;
        font-size: 12px;
    }
}