/* カスタムスタイル */
body {
    font-family: 'Hiragino Kaku Gothic Pro', 'Meiryo', sans-serif;
    background-color: #f8f9fa;
}

.navbar-brand {
    font-weight: bold;
}

.card {
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.card-header {
    background-color: #f8f9fa;
    font-weight: bold;
}

footer {
    margin-top: 30px;
}

/* 基本的なリセットとページ全体のスタイル */
body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; /* よりモダンなフォントへ変更 */
    overflow-x: hidden; /* 横スクロールバーの防止 */
}

/* 背景スタイル */
body {
    background: linear-gradient(to bottom, #f0f0f0, #e0e0e0); /* 仮の淡いグラデーション背景 */
    /* もし背景画像を使用する場合:
    background-image: url('/path/to/your/background-image.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    */
    color: #333; /* 基本の文字色 */
    display: flex; /* ヘッダーとメインコンテンツを縦に並べる */
    flex-direction: column;
    min-height: 100vh; /* ビューポート全体の高さ */
}

/* カスタムヘッダースタイル */
.custom-header {
    position: fixed; /* ヘッダーを固定 */
    top: 0;
    left: 0;
    width: 100%;
    display: flex; 
    justify-content: space-between; /* 要素間のスペースを均等に配置 */
    align-items: center; /* 垂直方向中央揃え */
    padding: 15px 20px; /* 上下左右のパディング */
    box-sizing: border-box;
    z-index: 1000; /* 他の要素より手前に表示 */
}

.menu-icon {
    /* ハンバーガーメニューは左端に配置 */
}

.menu-icon i {
    font-size: 24px; /* アイコンサイズ */
    color: #555; /* アイコンの色 */
    cursor: pointer;
}

/* サイトロゴのスタイル */
.site-logo {
    margin-left: 15px;
    margin-right: auto; /* 左寄せに配置するため */
}

.site-logo a {
    color: #333;
    text-decoration: none;
    font-size: 1.5rem;
    font-weight: bold;
    transition: color 0.3s ease;
}

.site-logo a:hover {
    color: #000;
}

/* ヘッダー内リンクのスタイル (HOMEなど中央配置用) */
.header-links {
    /* flex-grow: 1; */ /* 中央のリンクがスペースを埋めるように - ロゴ追加のため削除 */
    text-align: center; /* テキストを中央揃え */
}

.header-links a,
.admin-link a {
    color: #555; /* リンクの色をアイコンと合わせる */
    text-decoration: none;
    margin: 0 15px; /* リンク間のマージン */
    font-size: 1rem; /* フォントサイズ */
    font-weight: 500; /* やや太字に */
    transition: color 0.3s ease;
}

.header-links a:hover,
.admin-link a:hover {
    color: #000; /* ホバー時の色 */
}

/* 管理画面リンクのスタイル (右端配置用) */
.admin-link {
    /* 右端に配置 */
}

.admin-link a i {
    font-size: 1em; /* アイコンサイズをテキストに合わせる */
}

/* メインコンテンツエリアのスタイル */
.main-content {
    flex-grow: 1; /* 残りのスペースを埋める */
    /* display: flex; */
    /* flex-direction: column; */
    /* justify-content: center; */ /* 垂直方向中央揃え */
    /* align-items: center; */     /* 水平方向中央揃え */
    /* text-align: center; */
    /* padding: 20px; */
    padding-top: 80px; /* ヘッダーの高さ分を考慮 */
}

/* ロゴSVGのスタイル */
.logo-svg {
    margin-bottom: 20px;
    /* SVGの色はCSSで変更しにくい場合があるので、SVG内で直接指定するか、インラインSVGとして扱うことを推奨 */
}

/* サイトタイトル */
.site-title {
    font-size: 3.5rem; /* サイズ調整 */
    font-weight: 200; /* 細めのフォントウェイト */
    color: #333;
    letter-spacing: 1px; /* 文字間隔 */
    margin-bottom: 10px;
}

/* タグライン */
.tagline {
    font-size: 1.2rem;
    font-weight: 300;
    color: #777;
    margin-bottom: 30px;
}

/* ダウンロードボタン */
.download-button {
    background-color: #FF7F50; /* Coral - 画像に近い色 */
    color: white;
    padding: 15px 40px;
    border: none;
    border-radius: 25px; /* 角丸 */
    text-decoration: none;
    font-size: 1.1rem;
    font-weight: bold;
    transition: background-color 0.3s ease;
    cursor: pointer;
}

.download-button:hover {
    background-color: #FF6347; /* Tomato - ホバー時の色 */
}

/* layout.twig側のBootstrapコンテナや行によるパディング/マージンをリセットする場合の考慮 */
/* .container, .row { margin: 0 !important; padding: 0 !important; } */

/* レスポンシブ対応の調整（例） */
@media (max-width: 768px) {
    .site-title {
        font-size: 2.5rem;
    }
    .tagline {
        font-size: 1rem;
    }
    .download-button {
        padding: 12px 30px;
        font-size: 1rem;
    }
    .custom-header {
        padding: 15px 20px;
    }
}

/* トップページ用コンテンツラッパーのスタイル */
.index-page-content-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center; /* 垂直方向中央揃え */
    align-items: center;     /* 水平方向中央揃え */
    text-align: center;
    padding: 20px; /* 必要に応じて調整 */
    flex-grow: 1; /* 親要素の残りのスペースを埋める */
}

/* メインコンテンツ幅制限 */
.main-container {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 2.5rem 2rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.main-tab {
    flex: 1;
    padding: 1.5rem 2.5rem !important;
    border: none;
    background: none;
    color: #6B7280;
    font-size: 1.125rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    min-height: 4rem !important;
}

@media (min-width: 1400px) {
    .main-container {
        max-width: 1280px !important;
        padding: 2.5rem 4rem !important;
    }
}

@media (max-width: 768px) {
    .main-container {
        padding: 1.5rem 1rem !important;
    }
} 