/* ========================================
   Main Styles - メインコンテンツのスタイル
   ========================================
   各セクションの詳細なデザイン設定
======================================== */

/* ========================================
   Hero Section - ヒーローセクション
   ========================================
   トップページのメインビジュアル部分
======================================== */

/* ヒーローセクションの基本レイアウト：全画面高さ、中央配置 */
.heroSection {
    min-height: 100vh;
    display: flex;
    align-items: center;
    position: relative;
    padding-top: 140px; /* ロゴセクション + ナビゲーションセクションの高さに調整 */
    
    /* メイン背景画像（001.png）の設定：疑似要素で実装 */
    &::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-image: url('../images/131.png');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        opacity: 1;
        pointer-events: none;
        z-index: -2;
    }
    
    /* カスタマイズ可能な色オーバーレイ */
    /* 色と透明度はここで変更できます */
    &::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: linear-gradient(135deg, rgba(212, 175, 55, 0.1), rgba(147, 112, 219, 0.1));
        pointer-events: none;
        z-index: -1;
    }
    
    /* オーバーレイ色の詳細設定：CSS変数で管理 */
    &::after {
        /* オーバーレイの色 (RGBA形式で指定) */
        --overlay-color-1: rgba(212, 175, 55, 0.1);  /* 薄い金色 */
        --overlay-color-2: rgba(147, 112, 219, 0.1); /* 紫色 */
        
        /* 単色の場合は以下のコメントアウトを外して上記をコメントアウト */
        /* --overlay-color: rgba(0, 0, 0, 0.4); */
        
        background: linear-gradient(135deg, var(--overlay-color-1), var(--overlay-color-2));
        /* 単色の場合 */
        /* background: var(--overlay-color); */
    }
    
    /* ヒーローセクション内のコンテナ：グリッドレイアウト */
    .heroContainer {
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 20px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
        align-items: center;
        position: relative;
        z-index: 1;
        
        /* ヒーローコンテンツ（テキスト部分）：左からのフェードインアニメーション */
        .heroContent {
            animation: fadeInLeft 1s ease-out;
            
            /* メインタイトル：大きなフォントサイズ、グラデーション文字 */
            .heroTitle {
                font-size: clamp(4rem, 3vw, 5rem);
                background: linear-gradient(135deg, #D4AF37, #9370DB);
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                background-clip: text;
                margin-bottom: 0.5rem;
                font-weight: 700;
            }
            
            /* サブタイトル：イタリック体、控えめな色 */
            .heroSubtitle {
                font-family: 'Cinzel', serif;
                font-size: 1.2rem;
                color: #666;
                margin-bottom: 2rem;
                font-style: italic;
            }
            
            /* 説明文：読みやすいフォントサイズと行間 */
            .heroDescription {
                font-size: 1.2rem;
                color: #555;
                margin-bottom: 3rem;
                line-height: 1.8;
            }
            
            /* ボタンコンテナ：フレックスレイアウト、レスポンシブ対応 */
            .heroButtons {
                display: flex;
                gap: 1rem;
                flex-wrap: wrap;
                
                /* ヒーローボタンの基本スタイル */
                .heroButton {
                    padding: 1rem 2rem;

                    font-weight: 500;
                    text-align: center;
                    transition: all 0.3s ease;
                    min-width: 150px;
                    
                    /* プライマリボタン：グラデーション背景、ホバー効果 */
                    &.primary {
                        background: linear-gradient(135deg, #D4AF37, #9370DB);
                        color: white;
                        
                        /* ホバー時：上に移動、シャドウ追加 */
                        &:hover {
                            transform: translateY(-3px);
                            box-shadow: 0 10px 25px rgba(212, 175, 55, 0.3);
                        }
                    }
                    
                    /* セカンダリボタン：アウトライン、ホバーで塗りつぶし */
                    &.secondary {
                        border: 2px solid #9370DB;
                        color: #9370DB;
                        background: transparent;
                        
                        /* ホバー時：背景色変更、上に移動 */
                        &:hover {
                            background: #9370DB;
                            color: white;
                            transform: translateY(-3px);
                        }
                    }
                }
            }
        }
        
        /* ヒーロー画像部分：非表示設定（背景画像を使用するため） */
        .heroImage {
            display: none;
        }
    }
}

/* ========================================
   Services Section - サービスセクション
   ========================================
   提供サービスの紹介カード表示
======================================== */

/* サービスセクションの基本設定：パディング、背景色 */
.servicesSection {
    padding: 5rem 0;
    background: #fff;
    
    /* サービスカードのグリッドレイアウト：レスポンシブ対応 */
    .servicesGrid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
        gap: 2rem;
        
        /* 個別のサービスカード：ホバー効果付き */
        .serviceCard {
            background: white;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
            transition: all 0.3s ease;
            border: 1px solid rgba(212, 175, 55, 0.2);
            
            /* ホバー時：上に移動、シャドウ強化 */
            &:hover {
                transform: translateY(-10px);
                box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
            }
            
            /* サービス画像部分：ホバー時の拡大効果 */
            .serviceImage {
                position: relative;
                overflow: hidden;
                
                /* 画像の基本設定とトランジション */
                img {
                    width: 100%;
                    height: auto;
                    transition: transform 0.3s ease;
                }
                
                /* ホバー時の画像拡大 */
                &:hover img {
                    transform: scale(1.1);
                }
                
                /* 画像上のオーバーレイ効果 */
                &::after {
                    content: '';
                    position: absolute;
                    top: 0;
                    left: 0;
                    right: 0;
                    bottom: 0;
                    background: linear-gradient(45deg, rgba(212, 175, 55, 0.1), rgba(147, 112, 219, 0.1));
                }
            }
            
            /* サービスカードのテキスト部分 */
            .serviceContent {
                padding: 2rem;
                
                /* サービスタイトル */
                .serviceTitle {
                    color: #6B46C1;
                    margin-bottom: 1rem;
                    font-size: 1.4rem;
                }
                
                /* サービス説明文 */
                .serviceDescription {
                    color: #6B46C1;
                    line-height: 1.7;
                }
            }
        }
    }
}

/* ========================================
   Gallery Section - ギャラリーセクション
   ========================================
   作品集の画像表示エリア
======================================== */

/* ギャラリーセクションの基本設定：パディング、グラデーション背景 */
.gallerySection {
    padding: 5rem 0;
    position: relative;
    
    /* 背景画像の設定：疑似要素で実装、カスタマイズ可能 */
    &::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        /* 背景画像URL（こちらで変更可能） */
        background-image: url('../images/006.png');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        /* 画像の透明度（0.0-1.0で調整可能） */
        opacity: 0.2;
        pointer-events: none;
        z-index: -2;
    }
    
    /* 色オーバーレイの設定：疑似要素で実装、カスタマイズ可能 */
    &::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        /* オーバーレイ色（RGBA形式で指定、こちらで変更可能） */
        --overlay-color-1: rgba(212, 175, 55, 0.05);   /* 薄い金色 */
        --overlay-color-2: rgba(147, 112, 219, 0.05);  /* 薄い紫色 */
        
        /* グラデーションオーバーレイ */
        background: linear-gradient(135deg, var(--overlay-color-1), var(--overlay-color-2));
        
        /* 単色オーバーレイを使用する場合は以下のコメントアウトを外して上記をコメントアウト */
        /* background: rgba(255, 255, 255, 0.8); */
        
        pointer-events: none;
        z-index: -1;
    }
    
    /* ギャラリー画像のグリッドレイアウト */
    .galleryGrid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 1.5rem;
        position: relative;
        z-index: 1;
        
        /* 個別のギャラリーアイテム：ホバー効果とオーバーレイ */
        .galleryItem {
            position: relative;
            overflow: hidden;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
            transition: all 0.3s ease;
            cursor: pointer;
            
            /* ホバー時：拡大、シャドウ強化 */
            &:hover {
                transform: scale(1.05);
                box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
            }
            
            /* ギャラリー画像の基本設定 */
            img {
                width: 100%;
                height: auto;
                display: block;
            }
            
            /* ホバー時のオーバーレイ効果：疑似要素で実装 */
            &::after {
                content: '';
                position: absolute;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                background: linear-gradient(45deg, rgba(212, 175, 55, 0.2), rgba(147, 112, 219, 0.2));
                opacity: 0;
                transition: opacity 0.3s ease;
            }
            
            /* ホバー時のオーバーレイ表示 */
            &:hover::after {
                opacity: 1;
            }
        }
    }
}

/* ========================================
   About Section - 会社概要セクション
   ========================================
   会社情報とテキスト・画像の2カラムレイアウト
======================================== */

/* 会社概要セクションの基本設定 */
.aboutSection {
    padding: 5rem 0;
    background: #fff;
    
    /* 会社概要のコンテンツ：2カラムグリッドレイアウト */
    .aboutContent {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
        align-items: center;
        
        /* テキスト部分 */
        .aboutText {
            /* 会社説明文 */
            .aboutDescription {
                font-size: 1.1rem;
                color: #555;
                margin-bottom: 3rem;
                line-height: 1.8;
            }
            
            /* 会社詳細情報のリスト */
            .aboutDetails {
                display: grid;
                gap: 1.5rem;
                
                /* 個別の詳細項目：左ボーダー付き */
                .aboutItem {
                    border-left: 4px solid #D4AF37;
                    padding-left: 1.5rem;
                    
                    /* 項目タイトル */
                    h3 {
                        color: #6B46C1;
                        font-size: 1.1rem;
                        margin-bottom: 0.5rem;
                    }
                    
                    /* 項目内容 */
                    p {
                        color: #666;
                        margin: 0;
                    }
                }
            }
        }
        
        /* 画像部分 */
        .aboutImage {
            figure {
                overflow: hidden;
                box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
                
                /* 画像の基本設定 */
                img {
                    width: 100%;
                    height: auto;
                }
            }
        }
    }
}

/* ========================================
   Contact Section - アクセス情報セクション
   ========================================
   連絡先情報と地図の表示
======================================== */

/* アクセス情報セクションの基本設定 */
.contactSection {
    padding: 5rem 0;
    position: relative;
    
    /* 背景画像の設定：疑似要素で実装、カスタマイズ可能 */
    &::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        /* 背景画像URL（こちらで変更可能） */
        background-image: url('../images/007.png');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        /* 画像の透明度（0.0-1.0で調整可能） */
        opacity: 0.2;
        pointer-events: none;
        z-index: -2;
    }
    
    /* 色オーバーレイの設定：疑似要素で実装、カスタマイズ可能 */
    &::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        /* オーバーレイ色（RGBA形式で指定、こちらで変更可能） */
        --overlay-color-1: rgba(212, 175, 55, 0.05);   /* 薄い金色 */
        --overlay-color-2: rgba(147, 112, 219, 0.05);  /* 薄い紫色 */
        
        /* グラデーションオーバーレイ */
        background: linear-gradient(135deg, var(--overlay-color-1), var(--overlay-color-2));
        
        /* 単色オーバーレイを使用する場合は以下のコメントアウトを外して上記をコメントアウト */
        /* background: rgba(255, 255, 255, 0.9); */
        
        pointer-events: none;
        z-index: -1;
    }
    
    /* アクセス情報のコンテンツ：2カラムレイアウト */
    .contactContent {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
        position: relative;
        z-index: 1;
        
        /* 連絡先情報部分 */
        .contactInfo {
            display: grid;
            gap: 2rem;
            
            /* 個別の連絡先項目 */
            .contactItem {
                /* 項目タイトル */
                h3 {
                    color: #6B46C1;
                    font-size: 1.2rem;
                    margin-bottom: 0.5rem;
                }
                
                /* 項目内容 */
                p {
                    color: #666;
                    margin: 0;
                    line-height: 1.6;
                }
            }
        }
        
        /* 地図部分 */
        .contactMap {
            figure {
                overflow: hidden;
                box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
                
                /* 地図画像の基本設定 */
                img {
                    width: 100%;
                    height: auto;
                }
            }
        }
    }
}

/* ========================================
   Responsive Design - レスポンシブデザイン
   ========================================
   各画面サイズでの表示調整
======================================== */

/* タブレット・スマートフォン向けの調整（768px以下） */
@media (max-width: 768px) {
    /* ヒーローセクション：1カラムレイアウトに変更 */
    .heroSection {
        .heroContainer {
            grid-template-columns: 1fr;
            gap: 2rem;
            text-align: center;
            
            /* ボタンを中央配置 */
            .heroContent {
                .heroButtons {
                    justify-content: center;
                }
            }
        }
    }
    
    /* サービスセクション：1カラムレイアウト */
    .servicesSection {
        .servicesGrid {
            grid-template-columns: 1fr;
        }
    }
    
    /* 会社概要セクション：1カラムレイアウト */
    .aboutSection {
        .aboutContent {
            grid-template-columns: 1fr;
            gap: 2rem;
        }
    }
    
    /* アクセス情報セクション：1カラムレイアウト */
    .contactSection {
        .contactContent {
            grid-template-columns: 1fr;
            gap: 2rem;
        }
    }
    
    /* ギャラリーセクション：最小幅を縮小 */
    .gallerySection {
        .galleryGrid {
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        }
    }
}

/* スマートフォン向けの追加調整（480px以下） */
@media (max-width: 480px) {
    /* ヒーローセクション：文字サイズをさらに縮小 */
    .heroSection {
          &::before {

        background-image: url('../images/132.png');

    }
        .heroContainer {
            .heroContent {
                .heroTitle {
                    font-size: clamp(2.5rem, 2vw, 1.5rem);
                }
            }
        }
    }
    
    /* サービスカードのパディング調整 */
    .servicesSection {
        .servicesGrid {
            .serviceCard {
                .serviceContent {
                    padding: 1.5rem;
                }
            }
        }
    }
    
    /* ヒーローボタンの縦並び配置 */
    .heroSection {
        .heroContainer {
            .heroContent {
                .heroButtons {
                    flex-direction: column;
                    align-items: center;
                    
                    /* ボタンの幅を統一 */
                    .heroButton {
                        width: 100%;
                        max-width: 250px;
                    }
                }
            }
        }
    }
}