/* || 余白・テキスト */
.py-80 { padding: 80px 20px; }
.py-100 { padding: 100px 20px; }
.text-center { text-align: center; }
.mb-10 { margin-bottom: 10px; }
.mb-30 { margin-bottom: 30px; }
.mb-40 { margin-bottom: 40px; }
.mb-50 { margin-bottom: 50px; }

/* || TOPページ固有 */
.top-concept { background: #fff; }
.top-concept__txt { line-height: 2; font-size: 1.1rem; color: #444; max-width: 30em; margin: 0 auto; text-align: left;} 
.top-house { background: #fdfdfd; }
.top-more { background: #333; color: #fff; }
.top-more h2 { color: #fff; }

.u-text-center { text-align: center !important; }
.u-fw-b { font-weight: bold !important; }
.u-text-green-large { color: #00b900 !important; font-size: 1.8rem !important; }
.u-highlight-orange { color: #ff6600 !important; }

.sale-cta-btn.--line {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: #00b900;
    color: #fff;
    border-radius: 50px;
    padding: 16px 32px;
    font-weight: bold;
    font-size: 1rem;
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
}

/* =========================
   スマホ余白統一（追記のみ）
   基準：CONCEPT実測値 = 8vw
========================= */
@media (max-width: 768px) {
    .py-80  { padding-left: 8vw; padding-right: 8vw; }
    .py-100 { padding-left: 8vw; padding-right: 8vw; }

    .top-concept__txt {
        font-size: 0.85rem;
        text-align: left;
        max-width: 20em;
    }

    .m-house-visual__text {
        font-size: 0.85rem;
        text-align: left;
        max-width: 20em;
    }
}
