@charset "utf-8";

/* ==========================================================================
   1. 【PC・スマホ共通】ベーススタイル
   ========================================================================== */
.l-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 24px;
}

.e-heading-lv1 {
    font-size: var(--font-size-h1); /* 40px(PC) / 30px(SP) */
    line-height: 1.5;
    color: #2c3e50;
    margin: 0 0 24px 0;
    font-weight: 700;
}

.e-heading-lv2 {
    font-size: var(--font-size-h3); /* 24px(PC) / 22px(SP) */
    line-height: 1.5;
    color: #2c3e50;
    border-left: 5px solid #2c3e50;
    padding-left: 12px;
    margin: 0 0 24px 0;
}

.e-link {
    color: #3498db;
    text-decoration: underline;
}

.p-store-map {
    margin-bottom: 32px;
}

.p-store-map__container {
    position: relative;
    padding-top: 56.25%; /* 16:9比率 */
    height: 0;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    background-color: #f1f3f5;
}

/* ※元コードの仕様上 iframe への width/height 100% のみ記述を維持しています */
.p-store-map__container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.p-store-section {
    margin-bottom: 40px;
}

.p-store-text {
    font-size: var(--font-size-body); /* 14px固定 */
    line-height: 2.2rem;
    margin: 0 0 16px 0;
}

.p-store-text__note {
    display: block;
    font-size: var(--font-size-small); /* 12px固定 */
    line-height: 1.8rem;
    color: #7f8c8d;
    margin-top: 8px;
}

/* 💻 【PC用デフォルト】テーブル構造 */
.e-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 32px;
}

.e-table__th {
    width: 25%;
    background-color: #f8f9fa;
    font-weight: bold;
    color: #2c3e50;
    border-bottom: 1px solid #e2e8f0;
    padding: 16px;
    font-size: var(--font-size-body);
    text-align: left;
    vertical-align: top;
}

.e-table__td {
    width: 75%;
    border-bottom: 1px solid #e2e8f0;
    padding: 16px;
    font-size: var(--font-size-body);
    text-align: left;
    vertical-align: top;
}

.c-store-name__sub {
    display: block;
    font-size: var(--font-size-small); /* 12px固定 */
    line-height: 1.8rem;
    color: #7f8c8d;
    margin-top: 4px;
}

.c-print-action {
    text-align: left;
    margin-top: 32px;
}

.c-print-action__img {
    border: 0;
}


/* ==========================================================================
   2. 📱 【スマホ（SP）専用上書きスタイル】
   ========================================================================== */

@media (max-width: 767px) {

    .l-container {
        padding: 24px 16px;
    }

    .e-heading-lv1 {
        /* font-sizeは var(--font-size-h1) がブレークポイントで30pxに自動切替 */
        line-height: 1.35;
        margin-bottom: 16px;
    }

    .p-store-text__note {
        line-height: 1.6rem; /* PC:18px → SP:16px */
    }

    /* 💡 地図をスマホの時だけ真四角（ほぼ1:1）に調整 */
    .p-store-map .p-store-map__container {
        padding-top: 90%;
    }

    /* 💡 セレクタの頭に「table」「tr」「th」「td」などのタグ名を付与することで、
       !importantを使わずに詳細度を引き上げ、PC用の横並び指定を確実に上書きします。 */
    table.e-table, 
    table.e-table tbody, 
    table.e-table tr, 
    table.e-table th, 
    table.e-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    table.e-table tr {
        margin-bottom: 24px;
        border: 2px solid #e2e8f0;
        border-radius: 6px;
        overflow: hidden;
    }

    table.e-table th.e-table__th {
        background-color: #f1f3f5;
        padding: 16px;
        font-size: var(--font-size-body);
        border-bottom: 2px solid #e2e8f0;
        width: 100%;
    }

    table.e-table td.e-table__td {
        padding: 16px;
        font-size: var(--font-size-body);
        border-bottom: none;
        background-color: #ffffff;
        width: 100%;
    }

    /* 印刷ボタンもスマホ画面中央に配置して押しやすく */
    .c-print-action {
        text-align: center;
        margin-top: 40px;
    }
    
    .c-print-action__img {
        max-width: 80%;
        height: auto;
    }
}
