/* Best Clean homepage contract: mobile-first, conversion-focused, scoped. */
.bc-home {
    --bc-ink: #102019;
    --bc-muted: #4d6258;
    --bc-soft: #f5faf6;
    --bc-mist: #eef8f4;
    --bc-warm: #fff7e5;
    --bc-panel: #ffffff;
    --bc-line: #d6e5de;
    --bc-primary: #116b45;
    --bc-primary-dark: #083d29;
    --bc-teal: #075f73;
    --bc-teal-soft: #e7f6f7;
    --bc-gold: #f2bd24;
    --bc-radius: 8px;
    --bc-shadow: 0 18px 42px rgba(18, 45, 32, 0.12);
    background: var(--bc-soft);
    color: var(--bc-ink);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.5;
    margin: 0;
    overflow-x: clip;
    padding-bottom: 92px;
    width: 100%;
}

.bc-home,
.bc-home * {
    box-sizing: border-box;
    letter-spacing: 0;
    min-width: 0;
}

.bc-home :where(img, video, canvas, svg) {
    display: block;
    height: auto;
    max-width: 100%;
}

.bc-home :where(a) {
    color: inherit;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.bc-home :where(button, input, select, textarea) {
    font: inherit;
}

.bc-home :where(button, a, input, select, textarea):focus-visible {
    outline: 3px solid rgba(17, 107, 69, 0.36);
    outline-offset: 2px;
}

.bc-home :where(h1, h2, h3, p) {
    margin-top: 0;
    overflow-wrap: anywhere;
}

.bc-home :where(h1, h2, h3) {
    color: var(--bc-ink);
    font-weight: 800;
    line-height: 1.12;
}

.bc-home h1 {
    font-size: 2.35rem;
    max-width: 11ch;
}

.bc-home h2 {
    font-size: 1.9rem;
    margin-bottom: 12px;
}

.bc-home h3 {
    font-size: 1.15rem;
    margin-bottom: 8px;
}

.bc-home p {
    color: var(--bc-muted);
    font-size: 1rem;
    margin-bottom: 16px;
}

.bc-hero,
.bc-trust-strip,
.bc-services,
.bc-process,
.bc-proof,
.bc-reviews,
.bc-areas,
.bc-faq,
.bc-future {
    padding: 56px 16px;
}

.bc-header { align-items: center; background: rgba(255, 255, 255, 0.96); border-bottom: 1px solid var(--bc-line); display: grid; gap: 12px; left: 0; padding: 12px 16px; position: sticky; right: 0; top: 0; z-index: 800; }
.bc-logo { align-items: center; color: var(--bc-ink); display: inline-flex; gap: 10px; min-height: 56px; text-decoration: none; width: fit-content; }
.bc-logo img { border-radius: 50%; flex: 0 0 auto; height: 48px; width: 48px; }
.bc-logo span { display: grid; line-height: 1.12; }
.bc-logo small { color: var(--bc-muted); font-weight: 700; }
.bc-nav, .bc-footer nav, .bc-footer address { align-items: center; display: flex; flex-wrap: wrap; gap: 8px 12px; }
.bc-nav a, .bc-footer a { color: var(--bc-primary-dark); font-weight: 800; text-decoration: none; }
.bc-nav a { border-radius: var(--bc-radius); padding: 8px 10px; }
.bc-nav-cta, .bc-button-phone { background: var(--bc-primary); color: #ffffff !important; }

.bc-hero {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(8, 61, 41, 0.96), rgba(7, 95, 115, 0.9)),
        url("/assets/images/heroes/hero-cleaning.webp?v=20260630-mime1") center / cover no-repeat,
        var(--bc-primary-dark);
    color: #ffffff;
    display: grid;
    gap: 28px;
    isolation: isolate;
    min-height: 640px;
    position: relative;
}

.bc-hero::after {
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.12), transparent),
        linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.16));
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: -1;
}

.bc-hero-copy {
    display: grid;
    gap: 16px;
    max-width: 660px;
}

.bc-hero-copy :where(h1, h2, h3, p) {
    color: #ffffff;
}

.bc-hero-copy p {
    color: #e6f4ed;
    font-size: 1.1rem;
    max-width: 58ch;
}

.bc-hero-copy :where(.eyebrow, .bc-kicker, small) {
    align-items: center;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: var(--bc-radius);
    color: #ffffff;
    display: inline-flex;
    font-size: 0.85rem;
    font-weight: 700;
    min-height: 36px;
    padding: 8px 12px;
    width: fit-content;
}

.bc-hero-copy :where(.bc-actions, .bc-hero-actions, .actions) {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.bc-home :where(.bc-button, .bc-btn, .button, .cta, .cta-button),
.bc-quote-panel :where(button, [type="submit"]),
.bc-sticky-cta :where(a, button) {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--bc-radius);
    cursor: pointer;
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    line-height: 1.2;
    min-height: 48px;
    padding: 13px 18px;
    text-align: center;
    text-decoration: none;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, color 160ms ease, transform 160ms ease;
}

.bc-home :where(.bc-button-primary, .primary, .cta-button, .free-quote),
.bc-quote-panel :where(button, [type="submit"]),
.bc-sticky-cta :where(a:first-child, button:first-child) {
    background: var(--bc-gold);
    color: #231800;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);
}

.bc-home :where(.bc-button-secondary, .secondary),
.bc-sticky-cta :where(a:last-child, button:last-child) {
    background: #ffffff;
    border-color: var(--bc-line);
    color: var(--bc-primary-dark);
}

.bc-home :where(.bc-button, .bc-btn, .button, .cta, .cta-button):hover,
.bc-quote-panel :where(button, [type="submit"]):hover,
.bc-sticky-cta :where(a, button):hover {
    transform: translateY(-1px);
}

.bc-quote-panel {
    background: var(--bc-panel);
    border: 1px solid rgba(214, 229, 222, 0.92);
    border-radius: var(--bc-radius);
    box-shadow: var(--bc-shadow);
    color: var(--bc-ink);
    display: grid;
    gap: 18px;
    padding: 20px;
}

.bc-quote-panel h2,
.bc-quote-panel h3 {
    margin-bottom: 4px;
}

.bc-quote-panel p {
    color: var(--bc-muted);
    margin-bottom: 0;
}

.bc-quote-panel form {
    display: grid;
    gap: 14px;
}

.bc-quote-panel :where(label) {
    color: var(--bc-ink);
    display: grid;
    font-size: 0.92rem;
    font-weight: 700;
    gap: 7px;
}

.bc-quote-panel :where(input, select, textarea) {
    background: #ffffff;
    border: 1px solid #b8cbc2;
    border-radius: var(--bc-radius);
    color: var(--bc-ink);
    min-height: 48px;
    padding: 12px 13px;
    width: 100%;
}

.bc-quote-panel textarea {
    min-height: 112px;
    resize: vertical;
}

.bc-quote-panel :where(input, select, textarea)::placeholder {
    color: #6b7e75;
    opacity: 1;
}

.bc-quote-panel :where(button, [type="submit"]) {
    min-height: 52px;
    width: 100%;
}

.bc-quote-summary { background: var(--bc-mist); border: 1px solid var(--bc-line); border-radius: var(--bc-radius); color: var(--bc-primary-dark) !important; font-weight: 700; margin: 0; padding: 12px; }

.bc-trust-strip {
    background: #ffffff;
    border-bottom: 1px solid var(--bc-line);
    border-top: 1px solid var(--bc-line);
    display: grid;
    gap: 14px;
}

.bc-trust-strip :where(ul, .bc-trust-list) {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.bc-trust-strip :where(li, .bc-trust-item) {
    align-items: center;
    background: var(--bc-mist);
    border: 1px solid var(--bc-line);
    border-radius: var(--bc-radius);
    color: var(--bc-primary-dark);
    display: flex;
    font-weight: 800;
    gap: 10px;
    min-height: 52px;
    padding: 12px 14px;
}
.bc-trust-strip > div { align-items: center; background: var(--bc-mist); border: 1px solid var(--bc-line); border-radius: var(--bc-radius); color: var(--bc-primary-dark); display: grid; font-weight: 800; gap: 2px 10px; grid-template-columns: 12px minmax(0, 1fr); min-height: 58px; padding: 12px 14px; }
.bc-trust-strip > div strong, .bc-trust-strip > div span { grid-column: 2; }
.bc-trust-strip > div span { color: var(--bc-muted); font-size: 0.88rem; font-weight: 700; line-height: 1.25; }

.bc-trust-strip :where(li, .bc-trust-item)::before,
.bc-trust-strip > div::before {
    background: var(--bc-primary);
    border-radius: 4px;
    content: "";
    flex: 0 0 12px;
    height: 12px;
}
.bc-trust-strip > div::before { grid-row: 1 / span 2; }

.bc-services,
.bc-reviews {
    background: #ffffff;
}

.bc-services :where(.bc-section-head, .bc-section-copy, header),
.bc-process :where(.bc-section-head, .bc-section-copy, header),
.bc-proof :where(.bc-section-head, .bc-section-copy, header),
.bc-reviews :where(.bc-section-head, .bc-section-copy, header),
.bc-areas :where(.bc-section-head, .bc-section-copy, header),
.bc-faq :where(.bc-section-head, .bc-section-copy, header),
.bc-future :where(.bc-section-head, .bc-section-copy, header) {
    margin-bottom: 28px;
    max-width: 720px;
}

.bc-services :where(ul, .bc-grid, .bc-services-grid, .bc-card-grid),
.bc-process :where(ol, ul, .bc-steps),
.bc-proof :where(ul, .bc-proof-grid, .bc-proof-layout),
.bc-reviews :where(ul, .bc-review-grid),
.bc-future :where(ul, .bc-future-grid) {
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr);
    list-style: none;
    margin: 0;
    padding: 0;
}

.bc-services :where(li, article, .bc-service-card),
.bc-reviews :where(li, article, .bc-review-card),
.bc-future :where(li, article, .bc-future-card) {
    background: var(--bc-panel);
    border: 1px solid var(--bc-line);
    border-radius: var(--bc-radius);
    box-shadow: 0 10px 24px rgba(17, 50, 35, 0.08);
    display: grid;
    gap: 10px;
    padding: 18px;
}

.bc-services :where(li, article, .bc-service-card) {
    border-top: 4px solid var(--bc-primary);
}

.bc-services :where(li, article, .bc-service-card) p,
.bc-reviews :where(li, article, .bc-review-card) p,
.bc-future :where(li, article, .bc-future-card) p {
    margin-bottom: 0;
}

.bc-services :where(a, button) {
    min-height: 44px;
}
.bc-card-actions { display: flex; flex-wrap: wrap; gap: 10px; }

.bc-price { color: var(--bc-primary-dark) !important; font-weight: 800; }
.bc-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.bc-button-ghost { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.34) !important; color: #ffffff !important; }
.bc-money-page .bc-section, .bc-money-page .bc-final-cta { padding: 56px 16px; }
.bc-money-page .bc-section:nth-of-type(even) { background: #ffffff; }
.bc-money-page .bc-section-label { color: var(--bc-primary); font-size: 0.86rem; font-weight: 800; margin-bottom: 8px; }
.bc-two-column, .bc-price-grid, .bc-proof-list { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
.bc-price-grid article, .bc-faq details, .bc-final-cta, .bc-money-page .bc-checklist { background: var(--bc-panel); border: 1px solid var(--bc-line); border-radius: var(--bc-radius); box-shadow: 0 10px 24px rgba(17, 50, 35, 0.08); padding: 18px; }
.bc-money-page .bc-checklist ul, .bc-proof-list { margin: 0; padding: 0; }
.bc-money-page .bc-checklist li, .bc-proof-list li { border-bottom: 1px solid var(--bc-line); list-style: none; padding: 10px 0; }
.bc-money-page .bc-checklist li:last-child, .bc-proof-list li:last-child { border-bottom: 0; }
.bc-faq { background: var(--bc-mist); }
.bc-faq details { margin-bottom: 12px; }
.bc-faq summary { color: var(--bc-primary-dark); cursor: pointer; font-weight: 800; }
.bc-faq details p { margin: 10px 0 0; }
.bc-final-cta { margin: 0 16px 56px; }
.bc-note { color: var(--bc-muted); font-weight: 700; margin-top: 14px; }

.bc-process {
    background: var(--bc-mist);
}

.bc-process :where(ol, ul, .bc-steps) {
    counter-reset: bc-step;
}

.bc-process :where(li, article, .bc-step) {
    background: #ffffff;
    border: 1px solid var(--bc-line);
    border-radius: var(--bc-radius);
    counter-increment: bc-step;
    display: grid;
    gap: 10px;
    padding: 18px;
    position: relative;
}

.bc-process :where(li, article, .bc-step)::before {
    align-items: center;
    background: var(--bc-primary);
    border-radius: 6px;
    color: #ffffff;
    content: counter(bc-step);
    display: inline-flex;
    font-size: 0.95rem;
    font-weight: 800;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.bc-proof {
    background:
        linear-gradient(135deg, rgba(8, 61, 41, 0.98), rgba(12, 86, 83, 0.94)),
        var(--bc-primary-dark);
    color: #ffffff;
}

.bc-proof :where(h2, h3, p) {
    color: #ffffff;
}

.bc-proof p {
    color: #dbeee6;
}

.bc-proof-layout img { border: 1px solid rgba(255, 255, 255, 0.2); border-radius: var(--bc-radius); box-shadow: 0 18px 38px rgba(0, 0, 0, 0.2); }
.bc-checklist { align-content: start; }
.bc-proof .bc-checklist li { background: rgba(255, 255, 255, 0.09); border: 1px solid rgba(255, 255, 255, 0.18); border-radius: var(--bc-radius); color: #ffffff; font-weight: 700; padding: 14px; }

.bc-proof :where(li, article, .bc-proof-card) {
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--bc-radius);
    display: grid;
    gap: 10px;
    padding: 18px;
}

.bc-proof :where(strong, b) {
    color: #ffffff;
    font-size: 1.35rem;
}

.bc-reviews :where(blockquote) {
    color: var(--bc-ink);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0;
}

.bc-reviews :where(cite, .bc-review-name) {
    color: var(--bc-primary-dark);
    font-style: normal;
    font-weight: 800;
}

.bc-areas {
    background: var(--bc-warm);
}

.bc-areas :where(ul, .bc-area-list) {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.bc-areas :where(li, a, .bc-area, span) {
    align-items: center;
    background: #ffffff;
    border: 1px solid #e4d4a9;
    border-radius: var(--bc-radius);
    color: #493810;
    display: inline-flex;
    font-weight: 800;
    min-height: 44px;
    padding: 10px 13px;
    text-decoration: none;
}

.bc-future {
    background: #f3f8fb;
}

.bc-future-copy { max-width: 820px; }
.bc-future ul { color: var(--bc-ink); display: grid; gap: 8px; margin: 18px 0 0; padding-left: 20px; }

.bc-future :where(li, article, .bc-future-card) {
    border-left: 4px solid var(--bc-teal);
}

.bc-future :where(.bc-note, small) {
    color: var(--bc-teal);
    font-weight: 800;
}

.bc-sticky-cta {
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--bc-line);
    bottom: 0;
    box-shadow: 0 -12px 30px rgba(12, 31, 22, 0.16);
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    left: 0;
    opacity: 0;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    pointer-events: none;
    position: fixed;
    right: 0;
    transform: translateY(100%);
    transition: opacity 180ms ease, transform 180ms ease;
    z-index: 900;
}

.bc-sticky-cta.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

.bc-sticky-cta :where(a, button) {
    font-size: 0.94rem;
    min-height: 50px;
    padding: 12px 10px;
    width: 100%;
}

.bc-footer { background: var(--bc-primary-dark); color: #ffffff; display: grid; gap: 16px; padding: 32px 16px calc(120px + env(safe-area-inset-bottom)); }
.bc-footer p, .bc-footer span, .bc-footer a { color: #e6f4ed; margin: 0; }
.bc-footer address { font-style: normal; }
.teddy-chat-header .info .teddy-chat-title { font-size: 0.95rem; font-weight: 600; margin: 0; }

@media (min-width: 640px) {
    .bc-home h1 { font-size: 3rem; }
    .bc-home h2 { font-size: 2.35rem; }
    .bc-quote-panel form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bc-quote-panel :where(.full, .bc-full, textarea, button, [type="submit"]) { grid-column: 1 / -1; }
    .bc-trust-strip, .bc-trust-strip :where(ul, .bc-trust-list), .bc-services :where(ul, .bc-grid, .bc-services-grid, .bc-card-grid), .bc-process :where(ol, ul, .bc-steps), .bc-proof :where(ul, .bc-proof-grid, .bc-proof-layout), .bc-reviews :where(ul, .bc-review-grid), .bc-future :where(ul, .bc-future-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
    .bc-home { padding-bottom: 0; }
    .bc-home h1 { font-size: 3.8rem; }
    .bc-home h2 { font-size: 2.75rem; }
    .bc-hero, .bc-trust-strip, .bc-services, .bc-process, .bc-proof, .bc-reviews, .bc-areas, .bc-faq, .bc-future { padding-left: max(40px, calc((100vw - 1160px) / 2)); padding-right: max(40px, calc((100vw - 1160px) / 2)); }
    .bc-hero { grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr); min-height: 720px; padding-bottom: 88px; padding-top: 104px; }
    .bc-quote-panel { padding: 24px; }
    .bc-header { grid-template-columns: minmax(0, 1fr) auto; padding-left: max(40px, calc((100vw - 1160px) / 2)); padding-right: max(40px, calc((100vw - 1160px) / 2)); }
    .bc-footer { grid-template-columns: minmax(0, 1fr) auto; padding: 36px max(40px, calc((100vw - 1160px) / 2)); }
    .bc-money-page .bc-section, .bc-money-page .bc-final-cta { padding-left: max(40px, calc((100vw - 1160px) / 2)); padding-right: max(40px, calc((100vw - 1160px) / 2)); }
    .bc-two-column, .bc-price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bc-price-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bc-final-cta { margin-left: max(40px, calc((100vw - 1160px) / 2)); margin-right: max(40px, calc((100vw - 1160px) / 2)); }
    .bc-future-copy { max-width: 860px; }
    .bc-proof-layout { align-items: center; grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr); }
    .bc-trust-strip, .bc-trust-strip :where(ul, .bc-trust-list) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .bc-services :where(ul, .bc-grid, .bc-services-grid, .bc-card-grid), .bc-process :where(ol, ul, .bc-steps), .bc-proof :where(ul, .bc-proof-grid), .bc-reviews :where(ul, .bc-review-grid), .bc-future :where(ul, .bc-future-grid) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bc-sticky-cta { display: none; }
}
@media (min-width: 1180px) {
    .bc-home h1 { font-size: 4.25rem; }
    .bc-hero { gap: 48px; }
}
@media (prefers-reduced-motion: reduce) {
    .bc-home *, .bc-home *::before, .bc-home *::after { animation-duration: 1ms !important; scroll-behavior: auto !important; transition-duration: 1ms !important; }
}
@media (max-width: 639px) {
    .bc-header { gap: 8px; grid-template-columns: minmax(0, 1fr) auto; padding: 8px 12px; }
    .bc-logo { min-height: 48px; }
    .bc-logo img { height: 42px; width: 42px; }
    .bc-logo small { font-size: 0.82rem; }
    .bc-nav { justify-content: flex-end; }
    .bc-nav a:not(.bc-nav-cta) { display: none; }
    .bc-nav-cta { min-height: 44px; padding: 10px 12px; }
    .bc-hero { min-height: auto; padding-bottom: 40px; padding-top: 36px; }
    .bc-home h1 { font-size: 2.15rem; max-width: 100%; }
    .bc-hero-copy { gap: 12px; }
    .bc-hero-copy p { font-size: 1rem; }
    .bc-hero-actions .bc-button-secondary { display: none; }
    .bc-quote-panel { scroll-margin-top: 96px; }
}
