body {
    margin: 0;                                                  /* 余白なし */
    padding: 0;                                                 /* ページ内側の余白なし */
    font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;   /* 表示する文字種の設定 */
    background: #FFFAF4;                                      /* 背景色 */
}

.container {
    width: 65%;         /* 横幅 */
    margin: 0 auto;     /* ページ内側の余白 */
}

.container h2 {
    font-size: clamp(1.25rem, 2vw, 2.25rem);        /* 文字サイズ（20px～36px） */
    text-align: center;                             /* 文字を中央寄せ */
    color: #974257;                               /* 文字色 */
    margin-bottom: clamp(0.5rem, 2vw, 1.5rem);      /* 下部の余白（24px～32px） */
    font-weight: bold;                              /* 文字の太さ */
    letter-spacing: 0.2em;                          /* 文字間隔 */                    
}

.container p {
    font-size: clamp(0.75rem, 2vw, 1.25rem);        /* 文字サイズ（12px～20px） */
    text-align: center;                             /* 文字を中央寄せ */
}

/* メイン画像 */
.top-image img {
    width: 100%;                                    /* 横幅 */
    height: auto;                                   /* アスペクト比を維持 */
    border-radius: 0.5rem;                          /* 丸み */
    margin-bottom: clamp(1.5rem, 4vw, 2.5rem);      /* 下部の余白（24px～40px） */
}

.section-title, .target-description, .cando, .services, .service-state {
    padding: clamp(0.375rem, 1vw, 0.625rem) 0;   /* 上下：余白（6px～10px）、左右：余白なし */
}

/* 英語表記 */
.section-title h3 {
    font-family: "Helvetica Neue", Arial, sans-serif;   /* 文字種（細めで綺麗） */
    font-size: clamp(0.75rem, 2vw, 1.5rem);             /* 文字サイズ（12px～24px） */
    text-align: center;                                 /* 文字を中央寄せ */
    color: #b5b5b5;                                   /* 文字色 */
    font-weight: 300;                                   /* 細字 */
    letter-spacing: 0.3em;                              /* 文字間隔 */
}

/* サービス対象者 */
.target-symptoms {
    width: 80%;                                       /* 横幅 */
    margin: 0 auto;                                   /* 上下：余白なし、左右：余白自動 */
    margin-bottom: clamp(1.5rem, 4vw, 2.5rem);        /* 下部の余白（24px～40px） */
    background: #fff;                               /* 背景色 */
    padding: clamp(1rem, 3vw, 1.625rem);              /* ページ内側の余白（16px～26px） */
    border-radius: 0.5rem;                            /* 丸み */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);     /* 要素に影をつける */
    text-align: center;                               /* 文字を中央寄せ */
    box-sizing: border-box;                           /* 横幅の中にpaddingとborderも含めて表示する */
}

/* 保険の種類 */
.target-description h3 {
    font-size: clamp(0.75rem, 2vw, 1.5rem);             /* 文字サイズ（12px～24px） */
    font-weight: bold;                                  /* 文字の太さ */
    text-align: center;                                 /* 文字を中央寄せ */
}

/* 私たちが出来ること一覧, 具体的なサービス */
.cando-list, .service-list {
    display: grid;                              /* グリッドレイアウトにする */
    grid-template-columns: repeat(3, 1fr);      /* 3つのサービスを横並びに表示する */
    gap: clamp(1rem, 3vw, 1.875rem);            /* 要素同士の間隔（16px～30px） */
}

.cando-item {
    display: block;                                   /* ブロックレイアウトにする */
    width: 100%;                                      /* 横幅 */
    padding: clamp(0.5rem, 2vw, 1rem);                /* ページ内側の余白（8px～16px） */
    border: 1px solid red;                          /* 赤枠 */
    box-sizing: border-box;                           /* 横幅の中にpaddingとborderも含めて表示する */
}

/* ご利用時間・回数、ご利用料金 */
.timecount, .fee {
    width: 100%;                                  /* 横幅 */
    background-color: #FEF3EF;                  /* 背景色 */
    border: 1px solid black;                  /* 黒枠 */
    border-radius: 0.5rem;                        /* 丸み */
    padding: clamp(0.25rem, 1vw, 0.5rem);         /* ページ内側の余白（4px～8px） */
    margin-bottom: clamp(1.5rem, 4vw, 2.5rem);    /* 下部の余白（24px～40px） */
}

.timecount-layout, .fee-layout {
    width: 80%;         /* 横幅 */
    margin: 0 auto;     /* 上下：余白なし、左右：余白自動 */
}

.timecount-layout p, .fee-layout p {
    text-align: left;   /* 文字を左寄せ */
}

.insurance-name {
    display: inline-block;                  /* インラインレイアウトにする */
    font-weight: bold;                      /* 文字の太さ */
    border-bottom: 2px solid black;       /* 下線 */
    padding-bottom: 4px;                    /* 文字と線の距離 */
    margin-bottom: 0;                       /* 下部の余白なし */
}

.service-item {
    display: block;                                   /* ブロックレイアウトにする */
    width: 100%;                                      /* 横幅 */
    background: #fff;                               /* 背景色 */
    padding: clamp(1rem, 3vw, 1.625rem);              /* ページ内側の余白（16px～26px） */
    border-radius: 0.5rem;                            /* 丸み */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);     /* 要素に影をつける */
    text-align: center;                               /* 文字を中央寄せ */
    box-sizing: border-box;                           /* 横幅の中にpaddingとborderも含めて表示する */
}

/* サービス一覧 */
.service-item h3 {
    font-size: clamp(0.875rem, 2vw, 1.5rem);        /* 文字サイズ（14px～24px） */
    font-weight: 500;                               /* 文字の太さ */
    margin-bottom: clamp(0.5rem, 2vw, 0.75rem);     /* 下部の余白（8px～12px） */
}

.service-item p {
    line-height: 1.8;       /* 文字上下間隔 */
}

/* サービスの様子 */
.service-state-list{
    display: grid;                              /* グリッドレイアウトにする */
    grid-template-columns: repeat(3, 1fr);      /* 3枚の画像を横並びに表示する */
    gap: clamp(1rem, 3vw, 1.875rem);            /* 画像同士の間隔（16px～30px）  */
}

.service-state-list img{
    display: block;                     /* ブロックレイアウトにする */
    width: 100%;                        /* 横幅 */
    height: auto;                       /* アスペクト比を維持 */
    border-radius: 0.5rem;              /* 丸み */
}

/* スマホ + タブレット対応 */
@media (max-width: 768px) {
    .container {
        width: 90%;         /* 横幅 */
    }

    .timecount-layout, .fee-layout {
        width: 90%;         /* 横幅 */
    }

    /* 具体的なサービス */
    .service-list {
        display: flex;              /* フレックスレイアウトにする */
        flex-direction: column;     /* 要素を縦並びにする */
    }

    .service-item {
        width: 100%;         /* 横幅 */
        margin: 0 auto;     /* ページ内側の余白 */
    }

    /* サービスの様子 */
    .cando-list, .service-state-list{
        display: flex;              /* フレックスレイアウトにする */
        flex-direction: column;     /* 要素を縦並びにする */
    }

    .service-state-list img{
        width: 100%;    /* 横幅 */
    }
}