/* Conversion-first homepage reset */
        .hero { min-height: auto; padding: 86px 18px 32px; align-items: flex-end; }
        .hero h1 { margin-bottom: 12px; }
        .hero p { max-width: 600px; }
        .hero-buttons .quote-btn { min-height: 58px; font-size: 17px; }
        .hero-microcopy { display: grid; gap: 6px; margin: 12px 0 18px; color: #fff; font-size: 13px; font-weight: 800; }
        .hero-microcopy span { display: inline-flex; align-items: center; gap: 8px; }

        .rp-funnel { padding: 30px 12px 42px; background: #f6f6f6; }
        .rp-funnel-header { margin-bottom: 10px; }
        .rp-funnel-header h2 { font-size: clamp(30px, 8vw, 44px); margin-bottom: 8px; }
        .rp-funnel-header p { max-width: 620px; }
        .rp-card { max-width: 760px; margin: 0 auto; }
        .rp-progress-label strong { color: var(--red); }

        .rp-live-price { background: #101010; color: #fff; border-radius: 20px; padding: 15px; margin: 0 0 12px; box-shadow: 0 16px 36px rgba(0,0,0,.18); }
        .rp-live-price small { display: block; color: #ddd; font-weight: 900; margin-bottom: 4px; text-transform: uppercase; letter-spacing: .04em; }
        .rp-live-price strong { display: block; color: #fff; font-size: clamp(40px, 13vw, 66px); line-height: .95; letter-spacing: -.05em; }
        .rp-live-price span { display: block; color: #eee; font-size: 13.5px; margin-top: 9px; }
        .rp-estimator-kicker { display: inline-flex; align-items:center; justify-content:center; background:#fff0f0; color:var(--red); border:1px solid #f0caca; border-radius:999px; padding:8px 14px; font-size:12px; font-weight:900; margin-bottom:12px; text-transform:uppercase; letter-spacing:.04em; }
        .rp-tap-note { font-weight: 900; color: var(--black); margin: 0 0 10px; font-size: 15px; }

        .rp-option { position: relative; padding-right: 48px; border: 2px solid #ddd; min-height: 76px; }
        .rp-option::after { content: "›"; position: absolute; right: 17px; top: 50%; transform: translateY(-50%); color: #999; font-size: 34px; font-weight: 900; line-height: 1; }
        .rp-option.featured-option { border-color: #333; background: #f7f7f7; box-shadow: 0 12px 30px rgba(0,0,0,.10); }
        .rp-option .badge { display:inline-flex; background: var(--black); color:#fff; border-radius:999px; padding:5px 10px; font-size:11px; font-weight:800; letter-spacing:.02em; margin-bottom: 7px; }
        .rp-option:active, .rp-pill:active, .rp-primary:active, .quote-btn:active, .secondary-btn:active { transform: scale(.985); }
        .rp-pill { border: 2px solid #ddd; border-radius: 18px; }
        .rp-pill small { color:#555; font-weight: 800; }
        .rp-pill.is-selected, .rp-option.is-selected { border-color: #333; background:#f7f7f7; }

        .rp-mini-row { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid #eee; padding:10px 0; font-size:14px; }
        .rp-mini-row strong { text-align:right; }
        .rp-choice-grid { display:grid; gap:10px; margin:14px 0; }
        .rp-checkbox-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; background:#fafafa; border:2px solid #ddd; border-radius:16px; padding:14px; cursor:pointer; }
        .rp-checkbox-card input { width:20px; height:20px; accent-color:var(--red); }
        .rp-checkbox-card strong { display:block; font-size:15px; }
        .rp-checkbox-card span { display:block; color:#555; font-size:12px; }
        .rp-price-chip { background:#fff0f0; color:var(--red); border:1px solid #f0caca; border-radius:999px; padding:6px 10px; font-weight:900; white-space:nowrap; font-size:13px; }

        .quick-reviews { background:#fffdf9; }
        .quick-review-grid { display:grid; grid-template-columns:1fr; gap:14px; max-width:1050px; margin:24px auto 0; }
        .quick-review-card { background:#fffdf9; border:1px solid #eee; box-shadow: var(--shadow); border-radius:22px; padding:22px; }
        .quick-review-card p { color:#333; margin:10px 0; font-size:14px; }
        .quick-review-card strong { color:#111; }

        .included-simple { background:#f7f7f7; }
        .included-grid { display:grid; grid-template-columns:1fr; gap:12px; max-width:900px; margin:24px auto 0; }
        .included-item { background:#fffdf9; border:1px solid #eee; border-radius:16px; padding:16px; font-weight:900; box-shadow:0 8px 22px rgba(0,0,0,.05); }
        .included-note { max-width:760px; margin:20px auto 0; text-align:center; color:#555; font-size:14px; }

        .faq-section { background:#fffdf9; }
        .faq-wrap { max-width:850px; margin:0 auto; }
        .faq-item { border:1px solid #eee; border-radius:16px; padding:16px 18px; margin:10px 0; background:#fffdf9; box-shadow:0 8px 22px rgba(0,0,0,.04); }
        .faq-item summary { cursor:pointer; font-weight:900; color:#111; }
        .faq-item p { color:#555; margin:10px 0 0; font-size:14px; }

        .sticky-mobile-cta { display:none; }
        @media (max-width: 699px) {
            .navbar .book-btn { font-size: 12px; padding: 10px 12px; }
            .hero { padding-top: 84px; padding-bottom: 26px; }
            .hero h1 { font-size: clamp(32px, 9vw, 43px); }
            .hero p { font-size: 15px; margin-bottom: 14px; }
            .hero-trust { gap: 7px; margin-bottom: 12px; }
            .hero-trust span { font-size: 11px; padding: 7px 9px; }
            .rp-funnel-header p { font-size: 13.5px; }
            .rp-card { padding: 14px; border-radius: 20px; }
            .rp-progress { height: 5px; margin-bottom: 14px; }
            .rp-card h1, .rp-card h2 { font-size: clamp(25px, 7vw, 32px); margin-bottom: 6px; }
            .rp-sub { font-size: 13.5px; margin-bottom: 12px; }
            .rp-grid { gap: 9px; margin: 12px 0; }
            .rp-option strong { font-size: 16.5px; margin-bottom: 4px; }
            .rp-option span { font-size: 13.5px; line-height: 1.45; }
            .rp-pill-grid { grid-template-columns: repeat(2, 1fr); margin: 12px 0; gap: 9px; }
            .rp-pill { min-height: 58px; font-size: 17px; padding: 12px; }
            .rp-btns { margin-top: 14px; }
            .rp-primary, .rp-secondary { min-height: 54px; }
            section { padding: 44px 18px; }
            .trust-bar { padding-top: 20px; }
            .contact-cta { padding-bottom: 82px; }
            .sticky-mobile-cta {
                position: fixed;
                left: 12px;
                right: 12px;
                bottom: 12px;
                z-index: 99999;
                display: grid;
                grid-template-columns: 1.25fr .75fr;
                gap: 8px;
                pointer-events: none;
                opacity: 0;
                transform: translateY(18px);
                transition: opacity .18s ease, transform .18s ease;
            }
            .sticky-mobile-cta.is-visible {
                pointer-events: auto;
                opacity: 1;
                transform: translateY(0);
            }
            .sticky-mobile-cta a {
                min-height: 44px;
                font-size: 14px;
                padding: 11px 14px;
                box-shadow: 0 10px 30px rgba(0,0,0,.22);
            }

            /* Keep LeadConnector chat from covering the mobile Estimate/Text bar */
            body { padding-bottom: 76px; }
            iframe[src*="leadconnector" i],
            iframe[src*="leadconnectorhq" i],
            iframe[src*="msgsndr" i],
            iframe[title*="chat" i],
            iframe[id*="chat" i],
            iframe[class*="chat" i],
            div[id*="chat-widget" i],
            div[class*="chat-widget" i],
            div[class*="lc-widget" i],
            div[class*="lc_chat" i],
            div[class*="leadconnector" i] {
                bottom: 94px !important;
            }

            /* Make sure the user's primary actions stay visually on top of the page chrome */
            .sticky-mobile-cta { z-index: 2147482990 !important; }

        }
        @media (min-width: 700px) {
            .hero { min-height: 74vh; padding: 120px 7% 70px; align-items:center; }
            .quick-review-grid { grid-template-columns: repeat(3, 1fr); }
            .included-grid { grid-template-columns: repeat(2, 1fr); }
        }
        @media (min-width: 1000px) {
            .hero { min-height: 86vh; }
            .rp-funnel { padding: 72px 20px; }
            .included-grid { grid-template-columns: repeat(3, 1fr); }
        }
    

        /* Mobile: hide chat-specific UI only.
           Do NOT hide LeadConnector/msgsndr iframes globally, because the booking calendar also uses LeadConnector. */
        @media (max-width: 768px) {
            iframe[title*="chat" i],
            iframe[id*="chat" i],
            iframe[class*="chat" i],
            div[id*="chat-widget" i],
            div[class*="chat-widget" i],
            div[id*="chat-widget-container" i],
            div[class*="chat-widget-container" i] {
                display: none !important;
                visibility: hidden !important;
                opacity: 0 !important;
                pointer-events: none !important;
            }

            .rp-booking-widget,
            .rp-booking-widget iframe,
            iframe[src*="/widget/booking/" i],
            iframe[id*="1VXLRmyHfLdsHa4rTKJ2" i] {
                display: block !important;
                visibility: visible !important;
                opacity: 1 !important;
                pointer-events: auto !important;
                width: 100% !important;
                min-height: 760px !important;
            }
        }


        .chamber-trust {
            background: #fffdf9;
            padding: 34px 18px;
        }
        .chamber-trust-card {
            max-width: 980px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: auto 1fr;
            gap: 16px;
            align-items: center;
            background: #f7f7f7;
            border: 1px solid var(--border);
            border-radius: 22px;
            padding: 20px;
            box-shadow: 0 12px 28px rgba(0,0,0,.06);
        }
        .chamber-trust-card i {
            color: var(--black);
            font-size: 30px;
        }
        .chamber-trust-card h2 {
            text-align: left;
            font-size: clamp(20px, 5vw, 28px);
            margin: 0 0 6px;
        }
        .chamber-trust-card p {
            color: #555;
            margin: 0;
            font-size: 14px;
            line-height: 1.55;
        }
        @media (max-width: 699px) {
            .chamber-trust {
                padding: 26px 18px;
            }
            .chamber-trust-card {
                grid-template-columns: 1fr;
                text-align: center;
            }
            .chamber-trust-card h2 {
                text-align: center;
            }
        }


    .image-lightbox {
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,.86);
        z-index: 2147483000;
        display: none;
        align-items: center;
        justify-content: center;
        padding: 18px;
    }
    .image-lightbox.is-open { display: flex; }
    .image-lightbox img {
        width: auto;
        max-width: 96vw;
        max-height: 84vh;
        border-radius: 18px;
        box-shadow: 0 20px 70px rgba(0,0,0,.45);
    }
    .image-lightbox button {
        position: absolute;
        top: 14px;
        right: 14px;
        border: 0;
        background: #fffdf9;
        color: #111;
        border-radius: 999px;
        width: 44px;
        height: 44px;
        font-size: 26px;
        line-height: 1;
        cursor: pointer;
        font-weight: 900;
    }
    .gallery-item { cursor: zoom-in; }




    .hero-trust a.google-review-pill,
    .hero-trust a.google-review-pill:visited {
        background: rgba(255,255,255,.18);
        color: #fff !important;
        border: 1px solid rgba(255,255,255,.16);
        padding: 8px 12px;
        border-radius: 999px;
        font-size: 12px;
        font-weight: 900;
        text-decoration: none !important;
        backdrop-filter: blur(8px);
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }
    .hero-trust a.google-review-pill:hover { background: rgba(255,255,255,.28); transform: translateY(-1px); }
    .hero-trust a.google-review-pill i { color: #ffcc00; }

    .soro-blog-section { text-align: center; }
    .soro-blog-section .container { max-width: 920px; margin: 0 auto; }
    .soro-blog-section .section-header { text-align: center; max-width: 820px; margin: 0 auto 34px; }
    .soro-blog-section .section-header p { max-width: 760px; margin: 0 auto; color: #333; line-height: 1.6; }
    .soro-blog-section #soro-blog { width: 100%; display: flex; justify-content: center; align-items: center; }
    .soro-blog-section #soro-blog > * { margin-left: auto !important; margin-right: auto !important; }
    .soro-blog-section #soro-blog article,
    .soro-blog-section #soro-blog a,
    .soro-blog-section #soro-blog div { box-sizing: border-box; }

    footer { background: #070707; color: #fff; padding: 30px 18px 18px; }
    .footer-logo { display: none !important; }
    .footer-content { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr; gap: 22px; align-items: start; }
    footer h3 { color: #fff; font-size: 16px; margin: 0 0 8px; }
    footer p, footer li { color: #d6d6d6; font-size: 13.5px; line-height: 1.55; margin: 0 0 7px; }
    footer ul { list-style: none; margin: 0; padding: 0; }
    footer a, footer a:visited { color: #d6d6d6 !important; text-decoration: none; }
    footer a:hover { color: #fff !important; text-decoration: underline; }
    .copyright { max-width: 1180px; margin: 20px auto 0; padding-top: 14px; border-top: 1px solid #2a2a2a; text-align: center; color: #d6d6d6; font-size: 12px; }
    @media (min-width: 900px) {
        .footer-content { grid-template-columns: 1.35fr .85fr 1fr; gap: 64px; }
    }

    /* Estimator UX tighten-up: clearer cards, no badge overlap, mobile safe */
    .rp-card { overflow: visible; }
    .rp-progress-label { gap: 10px; flex-wrap: wrap; }
    .rp-progress-label span:first-child { min-width: 0; }
    .rp-estimator-help {
        margin: 12px 0 8px; padding: 12px 14px; border: 1px solid #ffd0d0;
        border-radius: 14px; background: #fff7f7; color: #6d0000; font-weight: 900;
        line-height: 1.35; font-size: 14px;
    }
    .rp-grid.rp-service-grid { gap: 12px; }
    .rp-option { text-align: left; }
    .rp-option strong { padding-right: 14px; line-height: 1.25; }
    .rp-option span:not(.badge) { padding-right: 10px; }
    .rp-option .badge {
        position: static; width: fit-content; max-width: calc(100% - 34px);
        white-space: normal; line-height: 1.1; margin-bottom: 7px;
    }
    .rp-option::after { right: 15px; }
    .rp-service-summary h2 { margin-bottom: 6px; }
    .rp-service-summary > p { margin: 0 0 12px; color: #333; line-height: 1.45; }
    .rp-inclusion-grid { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 14px 0; }
    .rp-inclusion-item {
        background: #fffdf9; border: 1px solid #e4e4e4; border-radius: 12px;
        padding: 10px 12px; font-weight: 800; font-size: 14px;
    }
    .rp-guarantee-note {
        background: #f7f7f7; border-left: 4px solid var(--red); border-radius: 12px;
        padding: 12px 14px; color: #222; line-height: 1.5; font-size: 14px;
    }
    .rp-callout-card {
        border: 2px dashed #9f2027; background: #fff7f7; border-radius: 18px;
        padding: 18px; text-align: center; margin: 12px 0 18px;
    }
    .rp-callout-card h3 { margin: 0 0 8px; }
    .rp-callout-card p { margin: 0 0 14px; color: #333; line-height: 1.45; }
    .soro-scroll-shell {
        max-height: 560px; overflow: auto; border: 1px solid #e5e5e5; border-radius: 18px;
        background: #fffdf9; padding: 10px; box-shadow: 0 14px 40px rgba(0,0,0,.05);
        scrollbar-width: thin;
    }
    .soro-scroll-note { margin: -18px auto 18px; color: #666; font-size: 13px; }
    .soro-blog-section #soro-blog { min-height: 120px; align-items: flex-start; }
    .footer-brand-mark { width: 150px; height: auto; border-radius: 0; margin: 0 0 14px; display: block; }
    @media (min-width: 720px) { .rp-inclusion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (max-width: 520px) {
        .rp-card { padding: 14px; }
        .rp-option { min-height: auto; padding: 14px 42px 14px 13px; }
        .rp-option strong { font-size: 16px; }
        .rp-option span:not(.badge) { font-size: 13px; }
        .rp-tap-note, .rp-estimator-help { font-size: 13px; }
        .soro-scroll-shell { max-height: 460px; padding: 8px; }
    }




    /* Vertical rhythm normalization: every major "chapter" section (hero,
       estimator, reviews, before/after, faq, contact-cta, service-area, blog)
       gets the same deliberate outer padding scale, so scroll pacing feels
       consistent instead of some sections ballooning and others feeling
       clipped. Internal card/content spacing is untouched. Footer keeps a
       smaller, distinct scale since it's a utility close, not a chapter. */
    .hero, .rp-funnel, .quick-reviews, .before-after, .faq-section,
    .contact-cta, .service-area, .soro-blog-section {
        padding-top: 64px;
        padding-bottom: 64px;
        padding-left: 20px;
        padding-right: 20px;
    }
    /* Hero previously forced itself to 74-86% of viewport height on larger
       screens regardless of content, which made it feel dramatically taller
       than every section after it. Let it size to its own content instead,
       same as it already did on mobile. */
    .hero { min-height: auto; }

    /* Preserve the sticky mobile CTA bar clearance on contact-cta specifically. */
    .contact-cta { padding-bottom: 82px; }

    @media (min-width: 700px) {
        .hero, .rp-funnel, .quick-reviews, .before-after, .faq-section,
        .contact-cta, .service-area, .soro-blog-section {
            padding-top: 88px;
            padding-bottom: 88px;
            padding-left: 6%;
            padding-right: 6%;
        }
        .hero { min-height: auto; }
    }
    @media (min-width: 1000px) {
        .hero, .rp-funnel, .quick-reviews, .before-after, .faq-section,
        .contact-cta, .service-area, .soro-blog-section {
            padding-top: 104px;
            padding-bottom: 104px;
        }
        .hero { min-height: auto; }
    }

    footer { padding: 56px 20px 32px; }
    @media (min-width: 700px) { footer { padding: 72px 6% 40px; } }


    /* Hero -> Estimator transition: the first two screens should read as one
       continuous move ("landing, then booking begins") instead of two
       stacked sections. Three things do the work together: (1) the hero's
       bottom padding and the estimator's top padding are both tightened so
       there's far less dead space at the seam, (2) a gradient fade at the
       bottom of the hero photo blends into the estimator's background color
       instead of cutting hard from dark photo to flat gray, and (3) the
       card is pulled up slightly snug against its header so it reads as one
       lifted unit rather than content that just starts underneath. Layout,
       structure, and the estimator itself are untouched. */
    .hero { padding-bottom: 28px; }
    .hero::after {
        content: "";
        position: absolute;
        left: 0; right: 0; bottom: 0;
        height: 120px;
        background: linear-gradient(to bottom, rgba(246,246,246,0), #f6f6f6);
        z-index: 1;
        pointer-events: none;
    }
    .rp-funnel { padding-top: 22px; }
    .rp-funnel-header { margin-bottom: 16px; }
    .rp-card {
        margin-top: -6px;
        box-shadow: 0 22px 50px rgba(0,0,0,.16);
    }

    @media (min-width: 700px) {
        .hero { padding-bottom: 36px; }
        .hero::after { height: 150px; }
        .rp-funnel { padding-top: 30px; }
    }
    @media (min-width: 1000px) {
        .hero { padding-bottom: 44px; }
        .hero::after { height: 180px; }
        .rp-funnel { padding-top: 38px; }
    }


    /* Footer trust badges: same squared-chip language as the hero/estimator
       badges (border-radius in the 8-12px family, not a full pill), just
       tuned for the footer's dark background. */
    .footer-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
    .footer-badge {
        display: inline-flex; align-items: center; gap: 6px;
        background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14);
        color: #e8e8e8; font-size: 12px; font-weight: 700;
        padding: 6px 10px; border-radius: 10px;
    }
    .footer-services-label {
        color: #8a8a8a !important; font-size: 11px !important; font-weight: 800;
        text-transform: uppercase; letter-spacing: .04em; margin: 14px 0 6px !important;
    }
    .footer-services-label:first-of-type { margin-top: 0 !important; }
    .rp-hero-text-link { text-align: left; margin: 12px 0 0; }
    .rp-hero-text-link a {
        color: #fff; font-weight: 800; font-size: 14px; text-decoration: underline;
        text-underline-offset: 3px; opacity: .92;
    }
    /* One unified status bar replacing the old separate pill badge +
       stepper row. Squared radius intentionally matches .rp-card and
       .rp-option instead of the old 999px pill shape, so every surface
       in the estimator reads as one consistent design language. */
    .rp-status-bar {
        display: flex; align-items: center; justify-content: center; gap: 8px;
        background: var(--black); color: #fff; font-size: 11.5px; font-weight: 800;
        letter-spacing: .02em; padding: 9px 14px; border-radius: 12px;
        margin-bottom: 14px;
    }
    .rp-status-dot { width: 6px; height: 6px; border-radius: 50%; background: #33d17a; flex-shrink: 0; }
    .rp-status-divider { width: 1px; height: 12px; background: rgba(255,255,255,.25); flex-shrink: 0; }
    .rp-option .badge {
        border-radius: 8px !important;
    }
    .rp-discount-card { border-color: #cfae4a !important; background: #fffaf0; }
    /* Calmer, consistent card language for the Quote Summary screen:
       one bold black price card leads, everything else below it is a
       plain white card with a thin colored left border instead of a
       full solid-colored background -- avoids five different shouting
       colors competing on one screen. */
    .rp-guarantee-note {
        display: block !important; background: #fffdf9 !important; border: 1px solid #e6e6e6 !important;
        border-left: 3px solid #2ea44f !important; border-radius: 8px !important;
        color: #222 !important; text-align: left !important; justify-content: flex-start !important;
        font-size: 13px !important; padding: 10px 14px !important;
    }
    .rp-notice {
        background: #fffdf9 !important; border: 1px solid #e6e6e6 !important;
        border-left: 3px solid #c8862a !important;
    }
    .rp-discount-row { color: #8a6d1a; font-weight: 900; }
    .rp-discount-row span:first-child { color: #8a6d1a; }
    @media (max-width: 699px) {
        .rp-service-grid .rp-option { padding: 13px 44px 13px 14px; min-height: 74px; }
        .rp-service-grid { gap: 9px !important; margin: 12px 0 !important; }
        .rp-card { padding: 16px !important; }
        .rp-funnel-header { margin-bottom: 10px !important; }
        .rp-live-badge { margin-bottom: 10px !important; }
        .rp-stepper { margin-bottom: 10px !important; }
    }
    .rp-guarantee-note {
        display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 800;
        color: #1a7a3c; background: #eefaf1; border: 1px solid #cdeed8; border-radius: 12px;
        padding: 10px 14px; margin: 0 0 16px; text-align: center; justify-content: center;
    }
    .rp-guarantee-note-small {
        font-size: 12.5px; font-weight: 700; color: #1a7a3c; text-align: center; margin: 12px 0 4px;
    }
    .rp-includes-list { list-style: none; padding: 0; margin: 4px 0 18px; }
    .rp-includes-list li {
        padding: 11px 14px 11px 40px; margin-bottom: 8px; background: #f7f7f7;
        border-radius: 12px; font-weight: 700; color: #222; position: relative; font-size: 14.5px;
    }
    .rp-includes-list li::before {
        content: "✓"; position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
        color: var(--red); font-weight: 900;
    }
    .rp-includes-categories { margin: 4px 0 4px; }
    .rp-includes-category { margin-bottom: 18px; }
    .rp-includes-category h3 {
        font-size: 14px; text-transform: uppercase; letter-spacing: .04em;
        color: var(--red); font-weight: 900; margin: 0 0 8px;
    }
    .rp-includes-category .rp-includes-list { margin-bottom: 0; }
    .rp-includes-value {
        font-size: 15px; font-weight: 700; color: #333; text-align: center;
        padding: 14px 16px; background: #fff7f6; border: 1px solid #f5d9d6;
        border-radius: 14px; margin: 10px 0 18px;
    }
    .rp-handyman-card { margin-top: 14px; }

    .rp-addon-stack { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 16px; }
    .rp-addon-card {
        display: flex; align-items: center; justify-content: space-between;
        width: 100%; text-align: left; background: #fffdf9; border: 1px solid #e6e6e6;
        border-radius: 14px; padding: 15px 16px; font-weight: 800; font-size: 15px;
        color: #151515; cursor: pointer; transition: border-color .15s ease;
    }
    .rp-addon-card:hover { border-color: var(--red); }
    .rp-addon-card.is-selected { border-color: var(--red); background: #fff7f6; }
    .rp-addon-card.is-expanded { display: block; border-color: var(--red); cursor: default; padding: 0; overflow: hidden; }
    .rp-addon-card-head {
        display: flex; align-items: center; justify-content: space-between; width: 100%;
        background: none; border: none; padding: 15px 16px; font-weight: 800; font-size: 15px;
        color: #151515; cursor: pointer; text-align: left;
    }
    .rp-addon-card-body { padding: 0 16px 16px; }
    .rp-addon-chevron { color: var(--red); font-weight: 900; }
    .rp-addon-summary { font-size: 13px; font-weight: 700; color: var(--red); display: flex; align-items: center; gap: 8px; }
    .rp-addon-summary em { font-style: normal; text-decoration: underline; color: #555; }

/* Round 49: the bar's grid is 1.25fr/.75fr, sized for two buttons. The
   homepage ships three (Estimate / Call / Text), so "Text" wrapped onto a
   second row and the bar rendered 96px tall instead of 44px. Scoped
   modifier so the existing two-button bars are untouched. */
.sticky-mobile-cta.rp-cta-3 { grid-template-columns: 1.3fr .85fr .85fr; }
