/* ==========================================================================
   1. サイト共通全体設定
========================================================================== */

/* サイト全体のスタイル */
body {
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-width: 320px;
    max-width: 100%;
    overflow-x: hidden;  /* 横スクロールを防止 */
}

/* サイト全体のメインスタイル */
main {
    position: relative;
}

/* サイト全体のタイトルスタイル */
h1 {
    text-align: center;
    color: #333;
    font-size: 2em;
    margin: 0 auto 20px auto;
}

h2 {
    text-align: center;
    color: #333;
    font-size: 1.6em;
    margin: 0 auto 10px auto;
}

@media (max-width: 768px) {
    h1 {
        font-size: 1.6em;
        margin-bottom: 15px;
    }
    h2 {
        font-size: 1.2em;
        margin-bottom: 5px;
    }
}

@media (max-width: 480px) {
    h1 {
        font-size: 1.3em;
        margin-bottom: 10px;
    }
    h2 {
        font-size: 1.0em;
    }
}

/* ==========================================================================
   1. サイト共通プラン別カラー設定
========================================================================== */

/* カラー変数の定義 */
:root {
    --light-color: #66CD66;
    --light-hover: #4CAF50;
    --standard-color: #6495ED;
    --standard-hover: #4F7BE8;
    --premium-color: #DAA520;
    --premium-hover: #B8860B;
    --text-dark: #333;
    --text-gray: #666;
    --border-light: #eee;
    --bg-light: #f8f9fa;
}

/* プラン別カラー設定をまとめる */
.light {
    --plan-color: var(--light-color);
    --plan-hover: var(--light-hover);
}

.standard {
    --plan-color: var(--standard-color);
    --plan-hover: var(--standard-hover);
}

.premium {
    --plan-color: var(--premium-color);
    --plan-hover: var(--premium-hover);
}

/* ==========================================================================
   3. サイト共通セクションタイトル設定
========================================================================== */

.section-title {
    text-align: center;
    font-size: 1.8em;
    margin-bottom: 20px;
    color: #2c5282;
    position: relative;
    padding-bottom: 15px;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: #b8e986;
}

@media (max-width: 768px) {
    .section-title {
        font-size: 20px;
        margin-bottom: 15px;
        padding-bottom: 10px;
    }
    .section-title::after {
        width: 40px;
        height: 2px;
    }
}