* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

.container {
    width: 100%;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    /* スマホで見たときに左右に少しだけ余白を作る（はみ出し防止） */
    padding-left: 15px;
    padding-right: 15px;
}

body {
    background-color: blanchedalmond;
}

header {
    background-color: antiquewhite;
    padding: 20px;
}

img {
    border-radius: 20px;
    /* img単体へのgapは効かないため削除（並べる親要素につけるのが正解です） */
    max-width: 100%; /* 画像が画面幅を超えないようにお守りとして追加 */
    height: auto;
}

h1 {
    text-align: center;
}

.container img {
    display: block;
    margin: 0 auto;
}

header ul {
    display: flex;
    justify-content: space-between;
    list-style-type: none;
    gap: 20px;
}

header ul a {
    text-decoration: none;
    color: #3A322d;
}

/* --- ファーストビュー (.fv) --- */
.fv .container .item h1 {
    color: lightcoral;
}

.fv .container .items p {
    text-align: center;
    margin: 20px;
}

.fv .container img {
    width: 100%;
    max-width: 700px;
}

.fv .items {
    text-align: center;
    padding: 40px 0;
    margin: 20px;
}

/* --- セクション 01 (.about-01) --- */
.about-01 .container h2 {
    text-align: center;
    color: burlywood;
}

.about-01 .items {
    display: flex;
    flex-direction: column; /* 【重要】スマホでは基本、縦並びにする */
    margin: 30px 0; /* 左右のmarginはcontainerのpaddingに任せる */
    gap: 30px;
}

.about-01 .container h3 {
    color: olive;
    margin: 20px;
}

/* --- セクション 02 (.about-02) --- */
.about-02 .container h2 {
    text-align: center;
    color: burlywood;
}

.about-02 p {
    text-align: center;
    margin: 20px;
}

/* --- フッター (footer) --- */
footer .container h2 {
    margin: 20px;
    text-align: center;
}

footer .container p {
    margin: 20px;
    text-align: center;
}

footer .container iframe {
    display: block;
    margin: 0 auto;
    width: 100%;
    max-width: 500px;
    height: 350px;
    border: none; /* 枠線を消してスッキリさせる */
}
    
footer h2 {
    color: burlywood;
}

footer a { 
    background-color: burlywood;
    padding: 20px 40px; /* スマホ用に横の余白を少し調整 */
    display: block;
    border: 5px solid white;
    border-radius: 100px;
    color: black;
    text-decoration: none;
    margin: 40px auto 60px auto;
    width: fit-content;
    max-width: 90%; /* ボタンがスマホ画面からはみ出さないように */
    text-align: center; /* 念のため文字を中央寄せに */
}

footer a:hover {
    background-color: olive;
}

footer small {
    display: block;      
    text-align: center;
}


/* ==========================================================================
   画面幅が 768px 以上（PC・タブレット）のときだけ横並びにする設定
   ========================================================================== */
@media (min-width: 768px) {
    .about-01 .items {
        flex-direction: row; /* 横並び（元のデザイン）に戻す */
    }
    footer a {
        padding: 20px 60px; /* PCでは元の広いボタン幅に戻す */
    }
}