/**
 * デザインシステム v9.0.0
 * モバイルレスポンシブ対応
 */

/* モバイル対応：グリッドレイアウトを1カラムに変換 */
@media (max-width: 768px) {
    /* ページ全体の基本設定 */
    body {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }
    
    /* コンテナの最大幅とパディング */
    .container,
    [class*="container"] {
        max-width: 100% !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    
    /* 全体のグリッドをリセット */
    [style*="display: grid"][style*="grid-template-columns"] {
        display: grid !important;
    }
    
    /* Pattern B: 2カラムを1カラムに */
    .pattern-b-grid,
    [style*="grid-template-columns: 1fr 1.618fr"] {
        grid-template-columns: 1fr !important;
    }
    
    .pattern-b-meta {
        position: static !important;
        margin-bottom: var(--space-8);
    }
    
    /* Pattern D: 2カラムを1カラムに */
    .pattern-d-grid {
        grid-template-columns: 1fr !important;
    }
    
    .pattern-d-info-grid {
        grid-template-columns: 1fr !important;
    }
    
    /* 非対称2カラム → 1カラム */
    .section-asymmetric [style*="grid-template-columns: 2fr 1fr"] {
        grid-template-columns: 1fr !important;
    }
    
    .section-asymmetric [style*="transform: translateY(-80px)"] {
        transform: translateY(0) !important;
    }
    
    /* データ可視化グリッド：4カラム → 2カラム */
    .section-data-viz [style*="grid-template-columns: repeat(4, 1fr)"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    .section-data-viz [style*="grid-template-columns: 1fr 2fr"] {
        grid-template-columns: 1fr !important;
    }
    
    /* 比較表：3カラム → 1カラム */
    .section-comparison [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* プレミアムプランの強調を解除 */
    .section-comparison [style*="transform: scale(1.05)"] {
        transform: scale(1) !important;
    }
    
    /* 検査項目一覧：2カラム → 1カラム */
    .medical-list [style*="grid-template-columns: repeat(2, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* 治療フロー：5カラム → 縦並び */
    .treatment-flow [style*="grid-template-columns: repeat(5, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* フローラインを縦に */
    .treatment-flow [style*="position: absolute"][style*="height: 2px"] {
        width: 3px !important;
        height: calc(100% - 160px) !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        top: 80px !important;
        background: linear-gradient(to bottom, var(--color-sage), var(--color-gold)) !important;
        z-index: 0 !important;
    }
    
    /* ステップ間のテキストに白い背景を追加（線を覆うため） */
    .treatment-flow [style*="grid-template-columns"] > div {
        position: relative !important;
        z-index: 1 !important;
    }
    
    /* テキスト部分に白背景ボックス */
    .treatment-flow [style*="grid-template-columns"] > div > p,
    .treatment-flow div[style*="text-align: center"] > p {
        position: relative !important;
        z-index: 2 !important;
        background: white !important;
        padding: 16px 24px !important;
        margin: 24px auto !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(10, 61, 61, 0.1) !important;
        display: inline-block !important;
        max-width: 200px !important;
    }
    
    /* 治療データ：2カラム → 1カラム */
    .treatment-data [style*="grid-template-columns: 1.618fr 1fr"] {
        grid-template-columns: 1fr !important;
    }
    
    /* 医師プロフィール：2カラム → 1カラム */
    .doctor-profile-large [style*="grid-template-columns: 1fr 1.618fr"] {
        grid-template-columns: 1fr !important;
    }
    
    /* クリニック情報：3カラム → 1カラム */
    .clinic-info [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* 複数拠点：2カラム → 1カラム */
    .multi-clinic [style*="grid-template-columns: repeat(2, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* 記事一覧：特集記事を縦並びに */
    .article-list [style*="grid-template-columns: 1.618fr 1fr"] {
        grid-template-columns: 1fr !important;
    }
    
    /* 記事グリッド：3カラム → 1カラム */
    .article-list [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* 記事詳細：2カラム → 1カラム（サイドバーを下に） */
    .article-detail [style*="grid-template-columns: 1fr 320px"] {
        grid-template-columns: 1fr !important;
    }
    
    .article-detail [style*="position: sticky"] {
        position: static !important;
    }
    
    /* CTAコンポーネント：flexboxを縦並びに */
    .cta-components [style*="display: flex"] {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    
    .cta-components a {
        width: 100% !important;
        justify-content: center !important;
    }
    
    /* 固定CTAデモ：2カラム → そのまま（2ボタン並列は維持） */
    /* （モバイルでは2ボタン横並びが一般的なため変更なし） */
    
    /* CTAセクション：3カラム → 1カラム */
    .cta-section-example [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* アニメーションデモ：3カラム → 1カラム */
    .animation-demo [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* アニメーションデモ：4カラム → 2カラム */
    .animation-demo [style*="grid-template-columns: repeat(4, 1fr)"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    /* アニメーションデモ：2カラム画像 → 1カラム */
    .animation-demo [style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
    }
    
    .animation-demo [style*="grid-template-columns: repeat(2, 1fr)"] {
        grid-template-columns: 1fr !important;
    }
    
    /* タイトルのフォントサイズを調整 */
    h1, h2 {
        font-size: clamp(2rem, 8vw, 3rem) !important;
    }
    
    /* パディングを調整 */
    section {
        padding-left: 20px !important;
        padding-right: 20px !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
    }
    
    .content-wrapper {
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* 画像の最大幅 */
    img {
        max-width: 100% !important;
        height: auto !important;
    }
    
    /* すべての要素の最大幅を制限 */
    * {
        max-width: 100vw !important;
    }
    
    /* ただし、特定の要素は除外 */
    html, body, .mobile-menu, .mobile-menu-overlay, .header {
        max-width: none !important;
    }
    
    /* すべての2カラムグリッドを1カラムに */
    [style*="grid-template-columns: 2fr"],
    [style*="grid-template-columns: 1fr 2fr"],
    [style*="grid-template-columns: 1.618fr"] {
        grid-template-columns: 1fr !important;
    }
    
    /* すべての3カラム以上のグリッドを1カラムに */
    [style*="grid-template-columns: repeat(3"],
    [style*="grid-template-columns: repeat(4"],
    [style*="grid-template-columns: repeat(5"] {
        grid-template-columns: 1fr !important;
    }
}

/* 極小デバイス（320px以下） */
@media (max-width: 375px) {
    /* さらに小さなフォントとスペーシング */
    :root {
        --text-base: 0.875rem;
        --space-4: 0.75rem;
        --space-6: 1rem;
        --space-8: 1.25rem;
    }
    
    /* ボタンのパディング調整 */
    a[style*="padding"] {
        padding: var(--space-3) var(--space-4) !important;
    }
}

/* タブレット（768px〜1024px） */
@media (min-width: 769px) and (max-width: 1024px) {
    /* 3カラムを2カラムに */
    .article-list [style*="grid-template-columns: repeat(3, 1fr)"],
    .clinic-info [style*="grid-template-columns: repeat(3, 1fr)"],
    .cta-section-example [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    /* 5カラムフローを3カラムに */
    .treatment-flow [style*="grid-template-columns: repeat(5, 1fr)"] {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    
    /* 4カラムデータを2カラムに */
    .section-data-viz [style*="grid-template-columns: repeat(4, 1fr)"],
    .animation-demo [style*="grid-template-columns: repeat(4, 1fr)"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* 横向きスマートフォン */
@media (max-width: 768px) and (orientation: landscape) {
    /* ヒーローセクションの高さを調整 */
    .pattern-a {
        min-height: 400px !important;
    }
    
    /* パディングを詰める */
    section {
        padding-top: var(--space-10) !important;
        padding-bottom: var(--space-10) !important;
    }
}

/* アクセシビリティ：フォーカス表示を強化 */
a:focus-visible,
button:focus-visible {
    outline: 3px solid var(--color-gold);
    outline-offset: 2px;
}

/* アクセシビリティ：モーション削減設定を尊重 */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* プリント用スタイル */
@media print {
    /* アニメーションを無効化 */
    [data-animate] {
        opacity: 1 !important;
        transform: none !important;
    }
    
    /* 固定要素を解除 */
    [style*="position: fixed"],
    [style*="position: sticky"] {
        position: static !important;
    }
    
    /* 背景色を削除（インク節約） */
    section {
        background: white !important;
        color: black !important;
    }
}
