/*
 * ⚠️ 警告: このファイルは一時的な技術的負債です ⚠️
 *
 * 元の場所: css/style.css
 * 移動日: 2026-01-04
 * 移動理由: 基礎CSS（style.css）からメディアクエリを分離
 *
 * 【問題の根源】
 * PHPファイル内のインラインスタイル（461箇所）
 * インラインスタイルの詳細度1000 > CSSクラスの詳細度10
 * → 上書きするために!importantが必須
 *
 * 【このファイルの問題】
 * - !important: 200箇所（85.5%）
 * - 属性セレクタ [style*="..."] でインラインを強制上書き
 * - ユニバーサルセレクタ * に !important（危険）
 * - 4つのブレークポイント（375px, 480px, 768px, 1024px）
 *
 * 【削除計画】
 * Phase 1: インラインスタイルを段階的に削除（PHPファイル）
 * Phase 2: 対応する属性セレクタを削除（このファイル）
 * Phase 3: メディアクエリを削減
 * Phase 4: このファイル自体を削除
 *
 * 【CLAUDE.mdルール】
 * メディアクエリ使用禁止 - PHPデバイス判定のみで対応すべき
 *
 * TODO: 本来は不要。将来的に完全削除予定
 */

/* ========================================
   @media (max-width: 768px) - 統合版
   6つのブロックを1つに統合（矛盾解消）
   ======================================== */
@media (max-width: 768px) {
    /* ========================================
       一般的なレスポンシブ調整
       ======================================== */

    /* デフォルト: セクションコンテナに15pxのpadding */
    .section-container {
        padding-left: 15px;
        padding-right: 15px;
    }

    .section-index {
        display: none;
    }

    .scroll-indicator {
        margin-top: 20px;
    }

    .scroll-text {
        font-size: 12px;
    }

    /* ========================================
       ナビゲーション
       ======================================== */

    /* モバイルメニュー表示 */
    .hamburger-menu {
        display: flex;
    }

    #main-menu-block nav {
        display: none;
    }

    #main-menu-block nav li a {
        padding: 8px;
    }

    .mobile-menu {
        display: flex;
    }

    /* ========================================
       モバイルデバイス向けパディング調整
       ======================================== */

    /* インラインスタイル削除済みのためpadding調整は不要 */

    /* インラインスタイル削除済みのため、上記の調整は不要 */

    /* ========================================
       インラインスタイル上書き - rg-site-masterに移動完了

       ✅ Phase 2完了: 属性セレクタをrg-site-master専用CSSに移動
       - 移動先: rg-site-master/css/inline-overrides.css
       - 主要ページのインラインスタイル: 完全削除済み
       - rg-site-masterのインラインスタイル: 専用CSSで対応

       削除した属性セレクタ:
       - [style*="padding-left"]
       - [style*="padding:"]
       - [style*="padding-right"]
       - [style*="margin-left"]
       - [style*="margin-right"]
       - [style*="width:"]
       - [style*="grid-template-columns"]
       - div/section/article[style*="margin:"]

       効果: !important約40箇所削減
       ======================================== */

    /* トップページのSVGサイズ調整 */
    /* トップページ固有の調整はdesktop/top.cssに移動済み */

    /* カードレイアウトの調整 */
    .cards {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        padding: 30px;
        margin-left: 0;
        width: 100%;
    }

    .card {
        width: 95%;
        max-width: 350px;
        margin: 10px auto;
        height: auto;
        min-height: 380px;
    }

    .card img {
        width: 100%;
        object-fit: cover;
        height: auto;
    }

    .card h2 {
        font-size: 20px;
        padding: 12px 5px;
        margin: 0;
        text-align: center;
    }

    .card p {
        padding: 0 15px 15px 15px;
        margin: 0;
        text-align: left;
        font-size: 16px;
    }

    /* ========================================
       Site Index（旧ブロック2）
       ======================================== */

    .site-index {
        padding: 30px 0;
    }

    .site-index-layout {
        flex-direction: column;
        align-items: center;
    }

    .site-index-logo {
        width: 100%;
        max-width: 300px;
        margin-bottom: 20px;
        align-items: center;
        text-align: center;
    }

    .logo-address {
        margin-top: 10px;
        text-align: center;
        max-width: 300px;
    }

    .site-index-map {
        width: 100%;
        justify-content: space-around;
    }

    .site-index-section {
        width: 45%;
        margin-bottom: 20px;
    }

    /* ========================================
       ニュースセクション（旧ブロック3, 5, 6）
       例外的にpadding: 0を設定
       ======================================== */

    /* ニュースセクション専用の設定 */
    .news-section,
    .news-section .section-title,
    .scroll-indicator-dots,
    .news-view-all {
        text-align: center;
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
        width: 100%;
        left: 0;
        right: 0;
        padding-left: 0;
        padding-right: 0;
    }

    /* ニュースセクションのみpadding: 0（デフォルトの15pxを上書き） */
    .news-section .section-container {
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    /* ニュースグリッド */
    .news-grid {
        grid-template-columns: 1fr;
    }

    .news-card {
        max-width: 100%;
    }

    /* ニュース詳細ページ */
    .news-detail-title {
        font-size: 24px;
    }

    .news-detail-intro {
        font-size: 16px;
    }

    .news-detail-subtitle {
        font-size: 20px;
    }

    /* ニュースアーカイブページ */
    .news-archive-title {
        font-size: 28px;
    }

    .news-filter {
        justify-content: center;
        width: 100%;
    }

    .news-archive-item-title {
        font-size: 20px;
    }

    /* ========================================
       ミッション・会社情報（旧ブロック4）
       ======================================== */

    .mission-content {
        flex-direction: column;
    }

    .mission-text,
    .mission-philosophy {
        flex: 1 1 100%;
        padding: 10px 15px;
    }

    .company-info-section {
        flex-direction: column;
        padding: 0 20px;
    }

    .company-details,
    .company-contact {
        flex: 1 1 100%;
    }
}

/* 中間画面サイズ向けの修正 - トップページの右側空白バグ対応 */
@media screen and (max-width: 1024px) {
    article[style*="width: 100vw"] {
        width: 100%;
        max-width: 100%;
        left: 0;
        right: 0;
        margin-left: 0;
        margin-right: 0;
        box-sizing: border-box;
    }
}

@media (max-width: 375px) {
    /* 小型デバイスの最新情報セクション調整 */
    .news-section {
        text-align: center;
        padding: 30px 0 50px;
    }
    
    .news-title {
        text-align: center;
        width: 100%;
        margin: 0 auto 20px;
    }
    
    .news-container {
        text-align: center;
        padding: 0;
    }
    
    /* 小型デバイスでは最新情報を3件だけ表示（元の設定に戻す） */
    .news-card:nth-child(n+4) {
        display: none;
    }
    
    /* 最新情報カードのスタイル調整 */
    .news-card {
        width: 95%;
        max-width: none;
        margin: 5px auto;
        text-align: center;
    }
    
    .news-card-content {
        padding: 15px;
        text-align: center;
    }
    
    /* ユニバーサルセレクタ*への!importantは削除（危険なため） */
    
    /* 小型デバイス向け会社情報テーブルの調整 */
    .td-title, .td-data {
        padding: 5px;
        white-space: normal;
        font-size: 0.85rem;
    }
    
    /* 小型デバイス向けミッションセクションの調整 */
    .mission-philosophy img {
        width: 50%;
        max-width: 150px;
    }
    
    .td-title {
        text-align: right;
        padding-right: 5px;
    }
    
    .td-data {
        text-align: left;
        padding-left: 5px;
    }
    
    body, html {
        width: 100%;
        overflow-x: hidden;
    }
    
    /* 属性セレクタ[style*="width:"]はrg-site-master/css/inline-overrides.cssに移動済み */
    
    /* トップページ固有の調整はdesktop/top.cssに移動済み */
}


@media (max-width: 480px) {
    .site-index {
        padding: 25px 0;
    }
    
    .site-index-logo {
        max-width: 240px;
        font-size: 8pt;
    }
    
    .site-index-section {
        width: 100%;
        max-width: 240px;
        margin-bottom: 15px;
    }
    
    /* 応募方法のコンテナ調整 */
    #recruitment-entry h3 {
        font-size: 24pt;
        margin-bottom: 20px;
    }
    
    #recruitment-entry div[style*="background-color: white"] {
        padding: 20px 10px;
        margin: 10px 0;
    }
    
    .site-index-section h3 {
        font-size: 16px;
    }
    
    .site-index-section li {
        margin-bottom: 2px;
    }
    
    /* 採用ページの調整 */
    #recruitment-body-top,
    #recruitment-body,
    #recruitment-entry {
        padding-left: 0;
        padding-right: 0;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    /* 職種リストの調整 */
    .job-listing-item {
        display: flex;
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        margin: 10px auto;
        overflow: hidden; /* はみ出しを防止 */
    }
    
    .job-listing-item > div {
        width: 100%;
        padding: 10px 5px;
        border-right: none;
        box-sizing: border-box; /* 幅計算にパディングを含める */
    }
    
    /* 募集職種の説明文エリアスタイル */
    .job-description-section {
        width: 100%;
        margin: 0;
        padding: 10px;
        box-sizing: border-box;
        overflow-wrap: break-word; /* 長い単語の折り返し */
    }
    
    /* 職種リストのタイトル部分 */
    .job-listing-item > div:first-child {
        border-bottom: 1px solid #eee;
    }
    
    /* 職種一覧のグリッドを調整 */
    [style*="grid-template-columns"] {
        grid-template-columns: 1fr;
    }
    
    /* グリッド内の職種タイトルと説明文を縦並びに */
    .job-listing-item {
        display: flex;
        flex-direction: column;
    }
    
    /* 画面いっぱいに広げる */
    div[style*="width: 800px"],
    div[style*="max-width: 800px"],
    div[style*="max-width: 1000px"],
    article[style*="max-width: 1000px"] {
        width: 98%;
        max-width: 98%;
        margin-left: auto;
        margin-right: auto;
        padding-left: 2px;
        padding-right: 5px;
    }
    
    /* 職種詳細ページの調整 */
    .job-description,
    .job-details {
        padding-left: 2px;
        padding-right: 5px;
    }
    
    .job-description p,
    .job-details p {
        padding-left: 2px;
        text-align: left;
    }
    
    .job-description ul,
    .job-details ul {
        padding-left: 5px;
    }
    
    .job-description li,
    .job-details li {
        padding-left: 1px;
    }
}
