@charset "UTF-8";

/* Pricing cards */
.pricing-section {
    background-color: #f7f7f7;
    padding: 50px 0;
}

.pricing-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}

.pricing-card {
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    margin-bottom: 20px;
    padding: 20px;
    position: relative;
    text-align: center;
    transition:
        transform 0.3s ease-in-out,
        box-shadow 0.3s ease-in-out;
}

.pricing-container .pricing-card {
    flex: 1;
    max-width: 400px;
    min-width: 300px;
}

.pricing-card:hover {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
    transform: translateY(-10px);
}

.pricing-header {
    background-color: var(--kc);
    border-radius: 10px 10px 0 0;
    color: #fff;
    padding: 20px 0;
    position: relative;
}

.pricing-plan {
    font-size: 24px;
    font-weight: bold;
    margin: 0;
}

.pricing-price {
    background-color: var(--kc);
    border-radius: 5px;
    color: #fff;
    font-size: 28px;
    font-weight: bold;
    margin: 10px 0;
    padding: 10px;
}

.pricing-description {
    color: #555;
    font-weight: bold;
    margin: 15px 0;
}

.pricing-features {
    list-style: none;
    margin: 20px 0;
    padding: 0;
    text-align: left;
}

.pricing-features li {
    margin-bottom: 10px;
    padding-left: 20px;
    position: relative;
}

.pricing-features li::before {
    color: var(--kc);
    content: "✓";
    font-weight: bold;
    left: 0;
    position: absolute;
}
.c-section:nth-child(odd) {
    background-color: #d4d9dd00 !important;
}

.badge {
    background-color: #ff4b4b;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    padding: 5px 10px;
    position: absolute;
    right: 10px;
    top: 10px;
}

/* Box accents */
.c-box-border {
    background-color: #fff;
    border: var(--border, 5px solid var(--scd));
    border-radius: 10px;
    margin-bottom: 20px;
    padding: 20px;
}

.fa-check-circle {
    color: #008000;
    margin-right: 10px;
}

/* Footer/order-made footer */
.company-link i {
    color: #fff;
    font-size: 0.8em;
    margin-left: 5px;
}

/* Common UI overrides */
.g-pagetop a {
    background: var(--kc);
}

.c-btn--contact {
    background: linear-gradient(to bottom, #f06a92, #d94f77) !important;
}

.p-common-texture::after {
    background-color: #fddce6;
}

/* Googleマップをカラー表示（style.css のグレースケール解除） */
.g-gmap {
    -webkit-filter: none !important;
    filter: none !important;
}

/* 各ページのサブビジュアルの縦幅。
   ※実際の値は include/visual-sub.php のインライン<style>で最終決定している（サーバーCSSキャッシュ対策）。
   ここは同じ値に揃えてある（写真は inset:0 でセクションいっぱいに広がるため、
   セクション .c-visual-sub の min-height が写真の高さを決める）。ブレークポイントは
   ナビ段が消える1199pxを境にする。 */
#visual-sub .c-visual-sub,
#visual-sub.c-visual-sub {
    min-height: 400px !important;
}

#visual-sub .c-visual-sub__inner {
    min-height: 400px !important;
    padding-top: 170px !important;
    padding-bottom: 40px !important;
}

@media (max-width: 1199.98px) {
    #visual-sub .c-visual-sub,
    #visual-sub.c-visual-sub {
        min-height: 274px !important;
    }
    #visual-sub .c-visual-sub__inner {
        min-height: 274px !important;
        padding-top: 100px !important;
        padding-bottom: 36px !important;
    }
}

@media (max-width: 767.98px) {
    #visual-sub .c-visual-sub,
    #visual-sub.c-visual-sub {
        min-height: 214px !important;
    }
    #visual-sub .c-visual-sub__inner {
        min-height: 214px !important;
        padding-top: 94px !important;
        padding-bottom: 30px !important;
    }
}

/* フッターを明るい桜×黄緑カラーに（暗い黒オーバーレイを上書き。白文字が読める明るい色） */
footer.c-section--trans .c-after__black {
    background: linear-gradient(135deg, #afe16e, #e487a1) !important;
}

.g-fixarea .g-fixarea-footer__item {
    background: linear-gradient(to right, #e08b8f, #f3bdbf);
}

/* スマホのハンバーガーボタンを確実に表示（自己完結：桜×黄緑の四角＋白い3本線） */
@media (max-width: 991.98px) {
    .lai-header-hamburger-btn {
        align-items: center !important;
        background: linear-gradient(135deg, var(--kc), var(--ac)) !important;
        border: none !important;
        border-radius: 10px !important;
        box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18) !important;
        display: inline-flex !important;
        height: 52px !important;
        justify-content: center !important;
        min-width: 52px !important;
        padding: 0 !important;
        position: relative !important;
        width: 52px !important;
        z-index: 200 !important;
    }

    .lai-header-hamburger-btn__icon {
        display: block !important;
        height: 18px !important;
        position: relative !important;
        width: 26px !important;
    }

    .lai-header-hamburger-btn__line {
        background: #fff !important;
        border-radius: 2px !important;
        display: block !important;
        height: 2px !important;
        left: 0 !important;
        position: absolute !important;
        width: 26px !important;
    }

    .lai-header-hamburger-btn__line:nth-child(1) {
        top: 0 !important;
    }

    .lai-header-hamburger-btn__line:nth-child(2) {
        top: 8px !important;
    }

    .lai-header-hamburger-btn__line:nth-child(3) {
        top: 16px !important;
    }

    .lai-header-hamburger-btn__dot {
        display: none !important;
    }
}

.c-headline-compact .c-headline-compact__ttl::first-letter {
    color: var(--kc);
}

.p-contact .g-form {
    border: 3px dashed var(--kc);
}

/* Sitemap */
.c-sitemap .nav-item a {
    background-color: var(--kc);
    border: 1px solid #333;
    color: #fff;
}

.c-sitemap .nav-item a::after {
    background-image: none;
}

.c-sitemap .nav-item a .c-btn-simple__icon,
.c-sitemap .nav-item a i {
    color: #fff;
}
body.lai-cursor--native #cursor,
body.lai-cursor--native #stalker {
    display: none;
}

/* Laiweb home renewal */
.lai-home-problems,
.lai-home-about,
.lai-home-reasons,
.lai-home-plans,
.lai-home-ai,
.lai-home-growth,
.lai-home-service-hub {
    position: relative;
}

.lai-home-problems .container,
.lai-home-about .container,
.lai-home-reasons .container,
.lai-home-plans .container,
.lai-home-ai .container,
.lai-home-growth .container,
.lai-home-service-hub .container {
    position: relative;
    z-index: 1;
}

.lai-home-problems {
    background:
        radial-gradient(
            circle at 12% 14%,
            rgba(var(--kc-rgb), 0.13),
            transparent 30%
        ),
        radial-gradient(
            circle at 88% 6%,
            rgba(var(--ac-rgb), 0.2),
            transparent 26%
        ),
        linear-gradient(180deg, rgba(var(--sc-rgb), 0.06) 0%, #fff 55%);
    overflow: hidden;
    z-index: 0;
}

.lai-home-problems::before {
    background: linear-gradient(
        135deg,
        rgba(var(--kc-rgb), 0.08),
        rgba(var(--ac-rgb), 0.1)
    );
    border-radius: 42px;
    content: "";
    height: 180px;
    position: absolute;
    right: -70px;
    top: 120px;
    transform: rotate(18deg);
    width: 180px;
}

.lai-home-about,
.lai-home-plans {
    background:
        radial-gradient(
            circle at 12% 18%,
            rgba(var(--ac-rgb), 0.1),
            transparent 26%
        ),
        linear-gradient(
            180deg,
            rgba(var(--sc-rgb), 0.08),
            rgba(var(--sc-rgb), 0.03)
        ),
        #f7fbff;
}

.lai-home-reasons {
    background-color: #fff;
    background-image:
        linear-gradient(
            rgba(255, 255, 255, 0.92) 0%,
            rgba(255, 255, 255, 0.74) 32%,
            rgba(255, 255, 255, 0.8) 100%
        ),
        var(--reasons-bg, none);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.lai-home-service-hub {
    background:
        radial-gradient(
            circle at 86% 12%,
            rgba(var(--ac-rgb), 0.16),
            transparent 30%
        ),
        linear-gradient(180deg, #fff 0%, rgba(var(--sc-rgb), 0.05) 100%), #fff;
}

/* 別荘・空き家サポート：写真背景の特集バンド */
.lai-home-feature {
    background:
        linear-gradient(135deg, rgba(35, 18, 26, 0.74), rgba(35, 18, 26, 0.52)),
        var(--feature-bg, linear-gradient(135deg, var(--kc), var(--ac)))
            center / cover no-repeat;
    border-radius: 28px;
    box-shadow: 0 26px 70px rgba(var(--bc-rgb), 0.18);
    overflow: hidden;
    padding: clamp(40px, 6vw, 76px) clamp(22px, 5vw, 64px);
    position: relative;
}

.lai-home-feature__inner {
    margin: 0 auto;
    max-width: 900px;
    text-align: center;
}

.lai-home-feature__eyebrow {
    color: #fff;
    font-weight: 900;
    letter-spacing: 0.06em;
    margin-bottom: 10px;
    opacity: 0.92;
}

.lai-home-feature__ttl {
    color: #fff;
    font-size: clamp(26px, 3.4vw, 42px);
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 16px;
    text-shadow: 0 8px 30px rgba(0, 0, 0, 0.42);
}

.lai-home-feature__lead {
    color: rgba(255, 255, 255, 0.94);
    font-weight: 700;
    line-height: 1.9;
    margin: 0 auto 28px;
    max-width: 680px;
    text-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}

.lai-home-feature__cats {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(6, 1fr);
    margin: 0 auto 32px;
    max-width: 780px;
}

.lai-home-feature__btn {
    align-items: center;
    background: linear-gradient(135deg, var(--kc), var(--scd));
    border-radius: 999px;
    box-shadow: 0 16px 34px rgba(var(--kc-rgb), 0.4);
    color: #fff !important;
    display: inline-flex;
    font-weight: 900;
    gap: 10px;
    min-height: 56px;
    padding: 0 30px;
    text-decoration: none;
    transition: transform 0.2s ease;
}

.lai-home-feature__btn:hover {
    transform: translateY(-2px);
}

@media (max-width: 991px) {
    .lai-home-feature__cats {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 575px) {
    .lai-home-feature__cats {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* 別荘・空き家サポート：カテゴリーのアイコン付きカードグリッド */
.lai-home-cat-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 24px;
}

.lai-home-cat {
    align-items: center;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(var(--kc-rgb), 0.14);
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(var(--bc-rgb), 0.06);
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
    padding: 16px 8px;
    text-align: center;
    transition:
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.lai-home-cat:hover {
    box-shadow: 0 14px 30px rgba(var(--bc-rgb), 0.12);
    transform: translateY(-3px);
}

.lai-home-cat i {
    align-items: center;
    background: linear-gradient(135deg, var(--kc), var(--ac));
    border-radius: 999px;
    color: #fff;
    display: flex;
    flex: 0 0 auto;
    font-size: 18px;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.lai-home-cat span {
    color: var(--fc);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
}

@media (max-width: 767.98px) {
    .lai-home-cat-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .g-footer {
        padding-bottom: 53px;
    }
}

/* 別荘・民泊・空き家に強い セクション */
.lai-home-villa {
    background:
        radial-gradient(
            circle at 10% 12%,
            rgba(var(--kc-rgb), 0.1),
            transparent 28%
        ),
        radial-gradient(
            circle at 90% 88%,
            rgba(var(--ac-rgb), 0.14),
            transparent 30%
        ),
        linear-gradient(180deg, #fff 0%, rgba(var(--sc-rgb), 0.05) 100%);
    position: relative;
}

.lai-home-villa .container {
    position: relative;
    z-index: 1;
}

.lai-home-checklist {
    background: #fff;
    border: 1px solid rgba(var(--kc-rgb), 0.12);
    border-radius: 22px;
    box-shadow: 0 18px 44px rgba(var(--bc-rgb), 0.08);
    color: var(--fc);
    padding: 36px;
    position: relative;
    z-index: 2;
}

.lai-home-checklist ul {
    display: grid;
    gap: 14px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.lai-home-checklist li {
    align-items: flex-start;
    background: rgba(var(--sc-rgb), 0.05);
    border-radius: 14px;
    color: var(--fc);
    display: flex;
    gap: 12px;
    line-height: 1.65;
    margin-bottom: 0;
    padding: 14px 9px;
}

.lai-home-checklist li i {
    flex: 0 0 auto;
    margin-top: 0.32em;
}

.lai-home-answer {
    background:
        linear-gradient(135deg, #fdeef4 0%, #f1f8e6 100%) padding-box,
        linear-gradient(135deg, var(--kc), var(--ac)) border-box;
    border: 2px solid transparent !important;
    border-radius: 28px;
    box-shadow: 0 22px 60px rgba(var(--bc-rgb), 0.12);
    padding: clamp(24px, 4vw, 40px);
    position: relative;
    z-index: 2;
}

.lai-home-card,
.lai-home-reason,
.lai-home-plan,
.lai-home-link-card {
    background: #fff;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 24px;
    box-shadow: 0 18px 52px rgba(var(--bc-rgb), 0.1);
    height: 100%;
    min-height: 228px;
    padding: 28px;
    transition:
        box-shadow 0.24s ease,
        transform 0.24s ease;
}

.lai-home-card:hover,
.lai-home-reason:hover,
.lai-home-plan:hover,
.lai-home-link-card:hover,
.lai-home-service:hover {
    box-shadow: 0 26px 70px rgba(var(--bc-rgb), 0.16);
    transform: translateY(-4px);
}

.lai-home-card__icon {
    align-items: center;
    background:
        radial-gradient(
            circle at 30% 20%,
            rgba(255, 255, 255, 0.38),
            transparent 28%
        ),
        linear-gradient(135deg, var(--kc), var(--ac));
    border-radius: 999px;
    color: #fff;
    display: flex;
    font-size: 22px;
    height: 54px;
    justify-content: center;
    margin-bottom: 18px;
    width: 54px;
}

.lai-home-stat {
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(
                135deg,
                rgba(var(--kc-rgb), 0.28),
                rgba(var(--ac-rgb), 0.36)
            )
            border-box;
    border: 1px solid transparent;
    border-radius: 20px;
    box-shadow: 0 14px 34px rgba(var(--bc-rgb), 0.1);
    height: 100%;
    padding: 20px 12px;
    text-align: center;
}

.lai-home-stat__num {
    color: var(--kc);
    display: block;
    font-family: Rubik, sans-serif;
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 700;
    line-height: 1;
}

.lai-home-stat__txt {
    color: var(--fc);
    display: block;
    font-weight: 700;
    margin-top: 8px;
}

.lai-home-reason {
    background: linear-gradient(180deg, #fff 0%, rgb(255 237 243) 100%);
    border-top: 0;
    min-height: auto;
    overflow: hidden;
    padding-top: 32px;
    position: relative;
}

.lai-home-reason::before {
    background: linear-gradient(135deg, var(--kc), var(--ac));
    content: "";
    height: 4px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.lai-home-reason__label {
    color: rgba(var(--bc-rgb), 0.1);
    font-family: Rubik, sans-serif;
    font-size: 52px;
    font-weight: 700;
    line-height: 1;
    position: absolute;
    right: 24px;
    top: 20px;
}

.lai-home-plan {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    overflow: hidden;
    position: relative;
    text-align: center;
}

.lai-home-plan--featured {
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, var(--kc), var(--ac)) border-box;
    border: 2px solid transparent;
    transform: translateY(-12px);
}

.lai-home-plan--featured:hover {
    transform: translateY(-16px);
}

.lai-home-plan__badge {
    background: linear-gradient(135deg, var(--ac), var(--acd));
    border-radius: 999px;
    box-shadow: 0 10px 22px rgba(var(--ac-rgb), 0.3);
    color: var(--bc);
    display: inline-block;
    font-size: 13px;
    font-weight: 900;
    margin: -6px auto 16px;
    padding: 7px 18px;
}

.lai-home-plan__price {
    color: var(--kc);
    font-weight: 700;
    margin: 18px 0;
}

.lai-home-plan__price span {
    font-family: Rubik, sans-serif;
    font-size: clamp(38px, 5vw, 56px);
    line-height: 1;
}

.lai-home-plan__list {
    list-style: none;
    margin: auto 0 0;
    padding: 0;
    text-align: left;
}

.lai-home-plan__list li {
    border-top: 1px solid rgba(var(--bc-rgb), 0.08);
    font-weight: 700;
    padding: 12px 0 12px 24px;
    position: relative;
}

.lai-home-plan__list li::before {
    color: var(--ac);
    content: "\f00c";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    left: 0;
    position: absolute;
}

.lai-home-ai__panel {
    background:
        radial-gradient(
            circle at 88% 14%,
            rgba(var(--ac-rgb), 0.28),
            transparent 24%
        ),
        linear-gradient(
            135deg,
            rgba(var(--kc-rgb), 0.09),
            rgba(var(--ac-rgb), 0.14)
        );
    border-radius: 30px;
    box-shadow: inset 0 0 0 1px rgba(var(--kc-rgb), 0.08);
    padding: clamp(28px, 5vw, 56px);
}

.lai-home-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.lai-home-tags span {
    background: #ffffff;
    border-radius: 999px;
    color: var(--kc);
    font-weight: 700;
    padding: 8px 14px;
}

.lai-home-link-card + .lai-home-link-card {
    margin-top: 18px;
}

.lai-home-link-card a {
    color: var(--kc);
    font-weight: 700;
    text-decoration: none;
}

.lai-home-growth {
    background:
        radial-gradient(circle at 8% 14%, rgb(255 161 187), transparent 28%),
        linear-gradient(135deg, #afe59a, #e7c3dd 72%);
    overflow: hidden;
    position: relative;
}

.lai-home-growth::after {
    background: radial-gradient(
        circle,
        rgba(var(--ac-rgb), 0.42),
        transparent 60%
    );
    content: "";
    height: 360px;
    position: absolute;
    right: -120px;
    top: -120px;
    width: 360px;
}

.lai-home-growth__btn {
    background: linear-gradient(135deg, var(--ac), var(--acd));
    border-radius: 999px;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18);
    color: var(--bc);
    display: block;
    font-weight: 700;
    padding: 18px 28px;
    position: relative;
    text-align: center;
    z-index: 1;
}

.lai-home-growth__btn:hover {
    color: var(--bc);
    opacity: 0.88;
}

.lai-home-service {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 16px 40px rgba(var(--bc-rgb), 0.08);
    color: var(--fc);
    display: block;
    height: 100%;
    overflow: hidden;
    text-decoration: none;
    transition:
        box-shadow 0.24s ease,
        transform 0.24s ease;
}

.lai-home-service:hover {
    color: var(--fc);
}

.lai-home-service__body {
    padding: 24px;
}

.lai-home-service__body span {
    color: var(--kc);
    display: block;
    font-family: Rubik, sans-serif;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
}

.lai-home-service__body p {
    color: var(--kc);
    font-weight: 700;
    margin-bottom: 0;
}

@media (max-width: 767.98px) {
    .lai-home-problems,
    .lai-home-about,
    .lai-home-reasons,
    .lai-home-plans,
    .lai-home-ai,
    .lai-home-growth,
    .lai-home-service-hub {
        overflow: hidden;
    }

    .lai-home-checklist {
        padding: 24px 18px;
    }

    .lai-home-card,
    .lai-home-reason,
    .lai-home-plan,
    .lai-home-link-card {
        padding: 22px;
    }

    .lai-home-card,
    .lai-home-reason {
        min-height: 0;
    }

    .lai-home-service {
        display: block;
    }

    .lai-home-plan--featured {
        transform: none;
    }

    .lai-home-plan--featured:hover {
        transform: translateY(-4px);
    }
}

/* ============================================================
   さくら住建 ブランドカラー上書き（桜色 × 黄緑 × 白黒）
   style.css / design-colors より後に読み込まれるため :root を上書きできる
   ============================================================ */
:root {
    --kc: #e05a80;
    --kc-rgb: 224, 90, 128;
    --sc: #cf5a86;
    --sc-rgb: 207, 90, 134;
    --scd: #c44f76;
    --ac: #8cc63f;
    --ac-rgb: 140, 198, 63;
    --acd: #79b52f;
}

/* ローディング：青系背景・バーを黄緑系に。
   ベースの style.css が .preloader .preloader-before を --scd-rgb/--sc-rgb（青）で
   直接定義しているため、要素へ直接 !important 指定して確実に上書きする。 */
.preloader .preloader-before,
.preloader .preloader-after {
    background-image: linear-gradient(
        90deg,
        #6fae2b 0%,
        #b6dc7a 33%,
        #6fae2b 100%
    ) !important;
}

.preloader .preloader-bar {
    background: #6fae2b !important;
}

/* loading.php 経由（.lai-loading-root）で表示される場合の変数も合わせて黄緑に */
.lai-loading-root {
    --loading-bg: #b6dc7a !important;
    --loading-bg-rgb: 182, 220, 122 !important;
    --loading-bg-dark: #6fae2b !important;
    --loading-bg-dark-rgb: 111, 174, 43 !important;
    --loading-bar: #6fae2b !important;
}

/* 事業内容カード：料金プランカードを流用しアイコンを中央寄せ */
.lai-home-plan .lai-home-card__icon {
    margin-left: auto;
    margin-right: auto;
}

/* 事業内容カード：写真付きカード */
.lai-home-biz {
    background: #fff;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 24px;
    box-shadow: 0 18px 52px rgba(var(--bc-rgb), 0.1);
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    transition:
        box-shadow 0.24s ease,
        transform 0.24s ease;
}

.lai-home-biz:hover {
    box-shadow: 0 26px 70px rgba(var(--bc-rgb), 0.16);
    transform: translateY(-4px);
}

.lai-home-biz__photo {
    background-position: center;
    background-size: cover;
    min-height: 200px;
    position: relative;
}

.lai-home-biz__photo--placeholder {
    align-items: center;
    background:
        radial-gradient(
            circle at 20% 15%,
            rgba(var(--kc-rgb), 0.18),
            transparent 46%
        ),
        radial-gradient(
            circle at 85% 85%,
            rgba(var(--ac-rgb), 0.22),
            transparent 46%
        ),
        linear-gradient(
            135deg,
            rgba(var(--kc-rgb), 0.1),
            rgba(var(--ac-rgb), 0.12)
        );
    display: flex;
    justify-content: center;
}

.lai-home-biz__photo--placeholder i {
    color: var(--kc);
    font-size: 42px;
}

.lai-home-biz__badge {
    background: rgba(255, 255, 255, 0.95);
    border-radius: 999px;
    bottom: 12px;
    box-shadow: 0 8px 20px rgba(var(--bc-rgb), 0.14);
    color: var(--kc);
    font-family: Rubik, sans-serif;
    font-weight: 900;
    left: 12px;
    letter-spacing: 0.06em;
    padding: 6px 14px;
    position: absolute;
}

.lai-home-biz__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    padding: 24px 26px 28px;
}

/* 事業内容カードのサブメニューは（下寄せではなく）リード直下に上詰め表示する */
.lai-home-biz__body .lai-home-plan__list {
    margin-top: 14px;
}

.lai-home-plan__lead {
    color: var(--fc);
    font-weight: 700;
    margin-bottom: 4px;
}

/* About us セクションの写真スライダー */
.lai-home-about-slider {
    position: relative;
}

.lai-home-about-slider__viewport {
    border-radius: 24px;
    overflow: hidden;
}

.lai-home-about-slider__track {
    display: flex;
    transition: transform 0.45s ease;
    will-change: transform;
}

.lai-home-about-slider__slide {
    flex: 0 0 100%;
    min-width: 100%;
}

.lai-home-about-slider__slide .lai-home-about-photo__img {
    border-radius: 0;
}

.lai-home-about-slider__arrow {
    align-items: center;
    background: rgba(255, 255, 255, 0.94);
    border: 0;
    border-radius: 999px;
    box-shadow: 0 10px 26px rgba(var(--bc-rgb), 0.2);
    color: var(--kc);
    cursor: pointer;
    display: flex;
    font-size: 18px;
    height: 46px;
    justify-content: center;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition:
        background 0.2s ease,
        transform 0.2s ease;
    width: 46px;
    z-index: 3;
}

.lai-home-about-slider__arrow:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.06);
}

.lai-home-about-slider__arrow--prev {
    left: 12px;
}

.lai-home-about-slider__arrow--next {
    right: 12px;
}

.lai-home-about-slider__dots {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 16px;
}

.lai-home-about-slider__dot {
    background: rgba(var(--bc-rgb), 0.18);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    height: 8px;
    padding: 0;
    transition:
        background 0.2s ease,
        width 0.2s ease;
    width: 8px;
}

.lai-home-about-slider__dot.is-active {
    background: linear-gradient(135deg, var(--kc), var(--ac));
    width: 22px;
}

/* About us セクションの写真 */
.lai-home-about-photo {
    position: relative;
}

.lai-home-about-photo__img {
    background-position: center;
    background-size: cover;
    border-radius: 24px;
    box-shadow: 0 26px 70px rgba(var(--bc-rgb), 0.16);
    min-height: clamp(300px, 34vw, 460px);
    overflow: hidden;
}

.lai-home-about-photo__img--placeholder {
    align-items: center;
    background:
        radial-gradient(
            circle at 20% 15%,
            rgba(var(--kc-rgb), 0.18),
            transparent 46%
        ),
        radial-gradient(
            circle at 85% 85%,
            rgba(var(--ac-rgb), 0.22),
            transparent 46%
        ),
        linear-gradient(
            135deg,
            rgba(var(--kc-rgb), 0.1),
            rgba(var(--ac-rgb), 0.12)
        );
    display: flex;
    justify-content: center;
}

.lai-home-about-photo__img--placeholder span {
    align-items: center;
    color: var(--kc);
    display: flex;
    flex-direction: column;
    font-weight: 900;
    gap: 8px;
}

.lai-home-about-photo__img--placeholder i {
    font-size: 34px;
}

.lai-home-about-photo__badge {
    align-items: center;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 999px;
    bottom: 16px;
    box-shadow: 0 16px 40px rgba(var(--bc-rgb), 0.18);
    color: var(--kc);
    display: inline-flex;
    font-weight: 900;
    gap: 8px;
    left: 16px;
    padding: 12px 20px;
    position: absolute;
}

.lai-home-about-photo__badge i {
    color: var(--ac);
}

@media (max-width: 767.98px) {
    .lai-home-about-photo__badge {
        font-size: 13px;
        padding: 10px 16px;
    }
}

/* 事業内容：桜色×黄緑のグラデーション背景（共通ルールを後勝ちで上書き） */
.lai-home-plans {
    background:
        radial-gradient(
            circle at 12% 15%,
            rgba(var(--kc-rgb), 0.16),
            transparent 34%
        ),
        radial-gradient(
            circle at 88% 85%,
            rgba(var(--ac-rgb), 0.18),
            transparent 34%
        ),
        linear-gradient(135deg, #fce1ea 0%, #f6eede 50%, #edf6df 100%);
}

/* ヘッダーロゴを大きく（各ヘッダーの max-width 指定を上書き） */
.g-header__logo-link-img {
    height: auto !important;
    max-width: 260px !important;
    width: clamp(170px, 18vw, 260px) !important;
}

/* 施工実績：桜色グラデーションの背景 */
.lai-home-works {
    background:
        radial-gradient(
            circle at 12% 12%,
            rgba(var(--kc-rgb), 0.16),
            transparent 34%
        ),
        radial-gradient(
            circle at 88% 88%,
            rgba(var(--ac-rgb), 0.12),
            transparent 34%
        ),
        linear-gradient(135deg, #fce1ea 0%, #fff4f8 52%, #fbe6f0 100%);
}

/* 施工実績：セクションをワイド化 */
.lai-home-works__container {
    margin: 0 auto;
    max-width: 1600px;
    padding-left: clamp(16px, 4vw, 56px);
    padding-right: clamp(16px, 4vw, 56px);
}

/* 施工実績カード */
.lai-home-work {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 16px 44px rgba(var(--bc-rgb), 0.1);
    color: var(--fc);
    display: block;
    height: 100%;
    overflow: hidden;
    text-decoration: none;
    transition:
        box-shadow 0.24s ease,
        transform 0.24s ease;
}

a.lai-home-work:hover {
    box-shadow: 0 26px 64px rgba(var(--bc-rgb), 0.16);
    color: var(--fc);
    transform: translateY(-4px);
}

.lai-home-work__img {
    background-position: center;
    background-size: cover;
    padding-top: 66%;
    position: relative;
}

.lai-home-work__img--placeholder {
    align-items: center;
    background:
        radial-gradient(
            circle at 25% 20%,
            rgba(var(--kc-rgb), 0.16),
            transparent 46%
        ),
        linear-gradient(
            135deg,
            rgba(var(--kc-rgb), 0.1),
            rgba(var(--ac-rgb), 0.12)
        );
    display: flex;
    justify-content: center;
    min-height: 190px;
    padding-top: 0;
}

.lai-home-work__img--placeholder i {
    color: var(--kc);
    font-size: 40px;
}
.lai-hero__btn--primary {
    background: linear-gradient(135deg, var(--kc), #8cc63f) !important;
}

.lai-home-work__body {
    padding: 18px 20px;
}

.lai-home-work__ttl {
    font-size: clamp(16px, 1.4vw, 18px);
    font-weight: 800;
    line-height: 1.5;
    margin: 0;
}

/* お知らせ＆ブログ セクション（背景は白／下層のマップが透けないよう不透明） */
.lai-home-newsfaq {
    background: #fff;
    position: relative;
    z-index: 2;
}

/* フッター装飾（固定背景マップ等）が上のセクションに被らないよう、フッター内に収める */
footer.c-section--trans {
    overflow: hidden;
    position: relative;
}

.lai-home-panel {
    background: #fff;
    border: 1px solid rgba(var(--kc-rgb), 0.08);
    border-radius: 24px;
    box-shadow: 0 18px 52px rgba(var(--bc-rgb), 0.08);
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: clamp(24px, 3vw, 40px);
}

.lai-home-panel__head {
    margin-bottom: 20px;
}

.lai-home-panel__head p {
    margin-bottom: 2px;
}

.lai-home-panel__head h2 {
    margin: 0;
}

.lai-home-panel__more {
    margin-top: auto;
    padding-top: 22px;
    text-align: right;
}

.lai-home-panel__more-link {
    align-items: center;
    border: 1px solid rgba(var(--kc-rgb), 0.72);
    border-radius: 999px;
    color: var(--kc);
    display: inline-flex;
    font-weight: 900;
    gap: 8px;
    padding: 10px 20px;
    text-decoration: none;
    transition:
        background 0.2s ease,
        color 0.2s ease;
}

.lai-home-panel__more-link::after {
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
}

.lai-home-panel__more-link:hover {
    background: var(--kc);
    color: #fff;
}

/* お知らせリスト */
.lai-home-news {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lai-home-news li {
    border-bottom: 1px solid rgba(var(--bc-rgb), 0.1);
}

.lai-home-news li:first-child {
    border-top: 1px solid rgba(var(--bc-rgb), 0.1);
}

.lai-home-news a {
    align-items: baseline;
    color: var(--fc);
    display: flex;
    flex-wrap: wrap;
    gap: 2px 16px;
    padding: 14px 4px;
    text-decoration: none;
    transition: color 0.2s ease;
}

.lai-home-news a:hover {
    color: var(--kc);
}

.lai-home-news__date {
    color: var(--kc);
    flex: 0 0 auto;
    font-family: Rubik, sans-serif;
    font-size: 13px;
    font-weight: 800;
}

.lai-home-news__ttl {
    font-weight: 700;
}

.lai-home-news__empty {
    color: rgba(var(--fc-rgb), 0.7);
    font-weight: 700;
    list-style: none;
    padding: 14px 4px;
}

/* よくある質問アコーディオン */
.lai-home-faq__item {
    border-bottom: 1px solid rgba(var(--kc-rgb), 0.25);
}

.lai-home-faq__item:first-child {
    border-top: 1px solid rgba(var(--kc-rgb), 0.25);
}

.lai-home-faq__q {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: 28px minmax(0, 1fr) 20px;
    list-style: none;
    padding: 16px 4px;
}

.lai-home-faq__q::-webkit-details-marker {
    display: none;
}

.lai-home-faq__mark {
    align-items: center;
    background: linear-gradient(135deg, var(--kc), var(--ac));
    border-radius: 50%;
    color: #fff;
    display: flex;
    flex: 0 0 auto;
    font-family: Rubik, sans-serif;
    font-weight: 900;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.lai-home-faq__mark--a {
    background: linear-gradient(135deg, var(--ac), var(--acd));
    color: var(--bc);
}

.lai-home-faq__q-text {
    font-weight: 800;
}

.lai-home-faq__toggle {
    height: 20px;
    position: relative;
    width: 20px;
}

.lai-home-faq__toggle::before,
.lai-home-faq__toggle::after {
    background: var(--kc);
    content: "";
    left: 50%;
    position: absolute;
    top: 50%;
    transition: transform 0.2s ease;
}

.lai-home-faq__toggle::before {
    height: 2px;
    transform: translate(-50%, -50%);
    width: 14px;
}

.lai-home-faq__toggle::after {
    height: 14px;
    transform: translate(-50%, -50%);
    width: 2px;
}

.lai-home-faq__item[open] .lai-home-faq__toggle::after {
    transform: translate(-50%, -50%) scaleY(0);
}

.lai-home-faq__a {
    display: grid;
    gap: 12px;
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 2px 4px 18px;
}

.lai-home-faq__a-body {
    font-weight: 600;
    line-height: 1.9;
}

.lai-home-faq__a-body > :last-child {
    margin-bottom: 0;
}

/* お悩み → 解決 をつなぐ矢印 */
.lai-home-arrow {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 4px 0 64px;
    position: relative;
    z-index: 2;
}

.lai-home-arrow__label {
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, var(--kc), var(--ac)) border-box;
    border: 2px solid transparent;
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(var(--bc-rgb), 0.1);
    color: var(--kc);
    font-weight: 900;
    padding: 10px 22px;
    text-align: center;
}

.lai-home-arrow__icon {
    align-items: center;
    animation: laiHomeArrowBounce 1.5s ease-in-out infinite;
    background: linear-gradient(135deg, var(--kc), var(--ac));
    border-radius: 999px;
    box-shadow: 0 16px 34px rgba(var(--kc-rgb), 0.32);
    color: #fff;
    display: flex;
    font-size: 30px;
    height: 66px;
    justify-content: center;
    width: 66px;
}

@keyframes laiHomeArrowBounce {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(9px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .lai-home-arrow__icon {
        animation: none;
    }
}

/* 対応エリア：イラスト風エリア図（同心円） */
.lai-home-areamap {
    aspect-ratio: 1 / 1;
    margin: 0 auto;
    max-width: 360px;
    position: relative;
    width: 100%;
}

.lai-home-areamap__ring {
    border-radius: 50%;
    position: absolute;
}

.lai-home-areamap__ring--outer {
    background: rgb(140 198 63 / 49%);
    border: 1.5px dashed rgb(73 112 20);
    inset: 0;
}

.lai-home-areamap__ring--mid {
    background: rgb(224 90 128 / 62%);
    border: 1.5px dashed rgb(224 90 128);
    inset: 20%;
}

.lai-home-areamap__ring-label {
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    left: 50%;
    position: absolute;
    top: 9px;
    transform: translateX(-50%);
    white-space: nowrap;
}

.lai-home-areamap__center {
    align-items: center;
    background: linear-gradient(135deg, var(--kc), var(--ac));
    border-radius: 50%;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35);
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 2px;
    height: 44%;
    justify-content: center;
    left: 50%;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 44%;
}

.lai-home-areamap__center i {
    font-size: 20px;
}

.lai-home-areamap__center span {
    font-size: clamp(14px, 1.6vw, 17px);
    font-weight: 900;
    line-height: 1.2;
}

.lai-home-areamap__center small {
    display: block;
    font-size: 11px;
    font-weight: 700;
    opacity: 0.85;
}

/* 対応エリア（濃色セクション内）のグループ見出し */
.lai-home-area-label {
    font-weight: 700;
    margin: 22px 0 10px;
}

.lai-home-area-label:first-of-type {
    margin-top: 8px;
}

/* ===== スマホ時の個別調整 ===== */
@media (max-width: 767.98px) {
    /* メインビジュアルの文言を中央寄せ */
    .lai-hero__copy {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    /* 「さくら住建にお任せ！」見出しタブを小さく */
    .lai-home-answer .c-box-border__ttl {
        font-size: 22px;
    }

    /* 対応エリアのチップを全幅グリッドで均等配置 */
    .lai-home-growth .lai-home-tags {
        display: grid;
        gap: 8px;
        grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
    }

    .lai-home-growth .lai-home-tags span {
        padding: 9px 6px;
        text-align: center;
    }

    /* 別荘・空き家サポート特集バンドの文章を左寄せ */
    .lai-home-feature__inner {
        text-align: left;
    }

    /* お知らせ＆ブログのボタンを中央に */
    .lai-home-panel__more {
        text-align: center;
    }

    /* ヒーロー直下（main上部）の白い余白を無くす */
    main {
        padding-top: 0;
    }

    /* お知らせ＆ブログ直下（Googleマップ上）の白い余白を無くす */
    .lai-home-newsfaq {
        padding-bottom: 0;
    }
}
