*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body{
    background-color: rgb(188, 238, 238);
    font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    color: black;
}

/* サイト全体の幅を制限するコンテナ */
.container{
    width: 100%;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px; /* スマホ画面で端がくっつかないための余白 */
}

img{
    border-radius: 20px;
    display: block;
    margin: 0 auto;
    max-width: 100%; /* 親要素からはみ出さないように設定 */
    height: auto;
}

/* セクション共通の見出し（MENU や INFORMATION） */
main h2 {
    text-align: center;
    color: blue;
    margin-bottom: 20px;
    font-size: 24px;
}


/* ==========================================================================
   2. スマホ用（画面幅が狭いとき）のスタイル設定（デフォルト）
   ========================================================================== */

/* --- ヘッダー --- */
header {
    background-color: rgb(201, 255, 248);
    padding: 20px 0;
}

/* スマホではロゴとメニューを縦並びに（中央揃え） */
header .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
}

header h1 img {
    max-height: 90px; /* ロゴが大きくなりすぎないように調整 */
}

header ul {
    display: flex;
    list-style-type: none;
    gap: 20px; /* メニュー同士の間隔 */
}

header ul a {
    text-decoration: none;
    color: rgb(46, 5, 5);
    font-weight: bold;
    font-size: 14px;
}

/* --- ファーストビュー (FV) --- */
.fv .items {
    text-align: center;
    padding: 40px 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.fv h1 {
    color: blue;
    margin: 20px 0 10px 0;
    font-size: 24px;
}

.fv p {
    text-align: center;
    line-height: 1.6;
    font-size: 14px;
}

.fv img {
    width: 100%;
    max-width: 500px;
}

/* --- メニュー & インフォメーション共通 --- */
.about-01, .about-02 {
    padding: 40px 0;
}

/* スマホでは横並びにせず、すべて縦1列に並べる */
.about-01 .items,
.about-02 .items {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* MENU のテキスト */
.about-01 p {
    text-align: center;
    color: black;
    margin-top: 10px;
    font-weight: bold;
}

/* INFORMATION の地図 */
.about-02 iframe {
    display: block;
    margin: 0 auto;
    width: 100%;
    height: 250px; /* スマホ用に高さを少し低めに */
    border-radius: 20px;
}

/* INFORMATION のテキスト */
.about-02 p {
    text-align: center; /* スマホでは中央揃えが綺麗 */
    line-height: 1.8;
    color: black;
    font-size: 14px;
}

/* --- フッター --- */
footer {
    padding-bottom: 40px;
}

/* 予約ボタン */
footer a { 
    background-color: rgb(0, 255, 242);
    padding: 15px 40px;
    display: block;
    border: 4px solid white;
    border-radius: 100px;
    color: black;
    text-decoration: none;
    margin: 30px auto;
    width: fit-content;
    font-weight: bold;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: background-color 0.3s;
}

footer a:hover {
    background-color: rgb(0, 255, 136);
}

footer small {
    display: block;      
    text-align: center;
    color: #555;
    font-size: 12px;
}


/* ==========================================================================
   3. PC・タブレット用（画面幅が 768px 以上）の切り替えスタイル
   ========================================================================== */
@media screen and (min-width: 768px) {
    
    main h2 {
        font-size: 28px;
        margin-bottom: 30px;
    }

    /* ヘッダー：ロゴとナビを左右にきれいに振り分ける */
    header .container {
        flex-direction: row;
        justify-content: space-between;
    }
    
    header ul {
        gap: 40px; /* メニューの間隔を広く */
    }
    
    header ul a {
        font-size: 16px;
    }

    /* ファーストビュー：写真と店名を左右2カラムにする */
    .fv .items {
        flex-direction: row;
        align-items: center;
        text-align: left;
        gap: 40px;
        padding: 60px 0;
    }
    
    .fv .item {
        flex: 1;
    }
    
    .fv h1 {
        text-align: left;
        font-size: 32px;
    }
    
    .fv p {
        text-align: left;
        font-size: 16px;
    }

    /* メニュー：3列の横並びに戻す */
    .about-01 .items {
        flex-direction: row;
    }
    
    .about-01 .item {
        flex: 1;
    }

    /* インフォメーション：地図と住所を左右2カラムにする */
    .about-02 .items {
        flex-direction: row;
        align-items: center;
        gap: 40px;
    }
    
    .about-02 .item {
        flex: 1;
    }
    
    .about-02 iframe {
        height: 350px; /* PC画面に合わせて地図を大きく */
    }
    
    .about-02 p {
        text-align: left; /* PCでは住所は左揃えが見やすい */
        font-size: 16px;
    }

    /* フッターボタンをPCサイズに微調整 */
    footer a {
        padding: 20px 60px;
        margin: 40px auto;
        font-size: 18px;
    }
}