/* Phase 8 service page footer match fix. Service pages use the same footer as city/county preview pages. */

body:has(.op-service-page) > footer:not(.op-footer) {
    display: none !important;
}

.op-service-page .op-footer,
.op-service-page .op-footer * {
    box-sizing: border-box;
}

.op-service-page .op-footer {
    margin: 0 !important;
    padding: 72px 0 56px !important;
    background: #202020 !important;
    color: #f4f4f4 !important;
    font-family: "Open Sans", Arial, sans-serif !important;
    text-align: center !important;
    border: 0 !important;
}

.op-service-page .op-footer .op-container {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.op-service-page .op-footer-logo-grid {
    display: grid !important;
    grid-template-columns: repeat(7, 82px) !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 34px 52px !important;
    max-width: 1120px !important;
    margin: 0 auto !important;
    padding: 6px 0 10px !important;
}

.op-service-page .op-footer-logo-grid img {
    display: block !important;
    width: 78px !important;
    height: 78px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    filter: none !important;
}

.op-service-page .op-footer-divider {
    display: block !important;
    width: 100% !important;
    max-width: 980px !important;
    height: 1px !important;
    margin: 48px auto 0 !important;
    background: rgba(255, 255, 255, .10) !important;
    border: 0 !important;
}

.op-service-page .op-payment-area {
    margin: 42px 0 0 !important;
    padding: 0 !important;
}

.op-service-page .op-payment-area h3 {
    margin: 0 0 26px !important;
    padding: 0 !important;
    color: #ffffff !important;
    font-family: "Open Sans", Arial, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
}

.op-service-page .op-payment-row.footer-social-icons {
    display: grid !important;
    grid-template-columns: repeat(8, 72px) !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0 30px !important;
    max-width: 820px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

.op-service-page .op-payment-row.footer-social-icons a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 72px !important;
    height: 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    text-decoration: none !important;
    line-height: 1 !important;
}

.op-service-page .op-payment-row.footer-social-icons a i {
    display: block !important;
    color: #ffffff !important;
    font-size: 42px !important;
    line-height: 1 !important;
}

.op-service-page .op-payment-row.footer-social-icons a[title="Bitcoin"] i,
.op-service-page .op-payment-row.footer-social-icons a[title="Google"] i,
.op-service-page .op-payment-row.footer-social-icons a[title="Apple"] i {
    font-size: 45px !important;
}

.op-service-page .op-payment-row.footer-social-icons a:hover,
.op-service-page .op-payment-row.footer-social-icons a:focus-visible {
    color: #a7cc46 !important;
    text-decoration: none !important;
    outline: none !important;
}

.op-service-page .op-payment-row.footer-social-icons a:hover i,
.op-service-page .op-payment-row.footer-social-icons a:focus-visible i {
    color: #a7cc46 !important;
}

.op-service-page .op-payment-area + .op-footer-divider {
    margin-top: 46px !important;
    margin-bottom: 30px !important;
}

.op-service-page .op-footer-links {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    color: #ffffff !important;
    font-family: "Open Sans", Arial, sans-serif !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
    font-weight: 800 !important;
}

.op-service-page .op-footer-links a {
    color: #ffffff !important;
    text-decoration: none !important;
}

.op-service-page .op-footer-links a:hover,
.op-service-page .op-footer-links a:focus-visible {
    color: #a7cc46 !important;
    text-decoration: underline !important;
    outline: none !important;
}

.op-service-page .op-footer-address,
.op-service-page .op-footer-copy {
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(255, 255, 255, .76) !important;
    font-family: "Open Sans", Arial, sans-serif !important;
    line-height: 1.5 !important;
}

.op-service-page .op-footer-address {
    margin-bottom: 14px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
}

.op-service-page .op-footer-copy {
    font-size: 15px !important;
    font-weight: 700 !important;
}

@media (max-width: 980px) {
    .op-service-page .op-footer-logo-grid {
        grid-template-columns: repeat(4, 76px) !important;
        gap: 30px 44px !important;
    }

    .op-service-page .op-footer-logo-grid img {
        width: 72px !important;
        height: 72px !important;
    }

    .op-service-page .op-payment-row.footer-social-icons {
        grid-template-columns: repeat(4, 72px) !important;
        gap: 18px 34px !important;
    }
}

@media (max-width: 560px) {
    .op-service-page .op-footer {
        padding: 54px 0 46px !important;
    }

    .op-service-page .op-footer .op-container {
        width: min(100% - 28px, 1180px);
    }

    .op-service-page .op-footer-logo-grid {
        grid-template-columns: repeat(3, 70px) !important;
        gap: 28px 30px !important;
    }

    .op-service-page .op-footer-logo-grid img {
        width: 66px !important;
        height: 66px !important;
    }

    .op-service-page .op-payment-row.footer-social-icons {
        grid-template-columns: repeat(4, 58px) !important;
        gap: 16px 22px !important;
    }

    .op-service-page .op-payment-row.footer-social-icons a {
        width: 58px !important;
        height: 48px !important;
    }

    .op-service-page .op-payment-row.footer-social-icons a i {
        font-size: 36px !important;
    }

    .op-service-page .op-footer-links,
    .op-service-page .op-footer-address {
        font-size: 15px !important;
    }
}

/* Phase 8 service footer payment restore: force FA4 icons visible on service pages. */
.op-service-page .op-payment-row.footer-social-icons,
.op-service-page .op-payment-row.footer-social-icons a,
.op-service-page .op-payment-row.footer-social-icons i {
    opacity: 1 !important;
    visibility: visible !important;
}

.op-service-page .op-payment-row.footer-social-icons i::before {
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Phase 8 immediate service footer icon repair. */
.op-service-page .op-payment-row.footer-social-icons a,
.op-service-page .op-payment-row.footer-social-icons a i,
.op-service-page .op-payment-row.footer-social-icons a i::before {
    opacity: 1 !important;
    visibility: visible !important;
    color: #ffffff !important;
}

.op-service-page .op-payment-row.footer-social-icons a i {
    display: inline-block !important;
    min-width: 1em !important;
    min-height: 1em !important;
    font-family: FontAwesome !important;
    font-style: normal !important;
    font-weight: normal !important;
    font-size: 42px !important;
    line-height: 1 !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}


/* Phase 8 final review/map polish: consistent Google rating stars, pill labels, and review links. */
.op-google-rating-stars,
.op-google-rating-stars i,
.op-city-rating-stars,
.op-city-rating-stars i,
.op-market-rating-stars,
.op-market-rating-stars i,
.op-home-review-stars,
.op-home-review-stars i {
    display: inline-flex !important;
    align-items: center !important;
    gap: 2px !important;
    color: #f6b400 !important;
    font-size: clamp(15px, 1.7vw, 22px) !important;
    line-height: 1 !important;
    letter-spacing: .035em !important;
    text-shadow: 0 1px 0 rgba(0,0,0,.12) !important;
}

.op-google-review-link,
.op-google-review-link:visited,
.op-google-review-link:hover,
.op-google-review-link:focus-visible {
    color: inherit !important;
    text-decoration: none !important;
    outline: none !important;
}

.op-city-page .op-city-content-card > .lp-pill,
.op-county-page .op-county-content-card > .lp-pill,
.op-market-page .op-market-content-card > .lp-pill,
.onepress-home-preview .op-area-links-card .lp-pill,
.onepress-home-preview .op-home-map-card .lp-pill {
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    max-width: 100% !important;
    margin: 0 0 18px !important;
    padding: .42rem .86rem !important;
    border-radius: 999px !important;
    border: 1px solid rgba(168, 213, 72, .55) !important;
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(246,255,223,.90)) !important;
    color: #7aa31e !important;
    font: 900 .74rem/1 "Open Sans", Arial, sans-serif !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
}

/* PHASE9_HERO_H1_48PX_FIX_START */
/* Keep non-home marketing hero H1s readable. Main home page is intentionally excluded. */
.op-county-hero h1,
.op-city-hero h1,
.op-market-hero h1,
.op-service-page .lp-hero h1 {
    font-size: clamp(36px, 4vw, 48px) !important;
    line-height: 1.08 !important;
    letter-spacing: .015em !important;
}

@media (max-width: 767px) {
    .op-county-hero h1,
    .op-city-hero h1,
    .op-market-hero h1,
    .op-service-page .lp-hero h1 {
        font-size: clamp(34px, 10vw, 48px) !important;
        line-height: 1.08 !important;
    }
}
/* PHASE9_HERO_H1_48PX_FIX_END */

/* op-service-grid-3x2-final-fix
   Keep the OnePress-style services table at 3 columns x 2 rows on desktop.
   Scoped only to the rendered .op-service-grid markup.
*/
@media (min-width: 981px) {
    .op-service-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 28px !important;
        align-items: stretch !important;
    }

    .op-service-grid > .op-service-card {
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        float: none !important;
    }
}

@media (min-width: 641px) and (max-width: 980px) {
    .op-service-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 22px !important;
        align-items: stretch !important;
    }

    .op-service-grid > .op-service-card {
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        float: none !important;
    }
}

@media (max-width: 640px) {
    .op-service-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        align-items: stretch !important;
    }

    .op-service-grid > .op-service-card {
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        float: none !important;
    }
}
.bundle-text {
     display: block;
     width: fit-content;
     max-width: 100%;
     margin: 0.85rem auto 0;
     padding: 0.55rem 1rem;
  
     font-size: clamp(0.85rem, 1.7vw, 1rem);
     font-weight: 900;
     line-height: 1.15;
     letter-spacing: 0.08em;
     text-align: center;
     text-transform: uppercase;
  
     color: #111827;
     background:
        radial-gradient(circle at 20% 20%, rgba(255, 214, 10, 0.38), transparent 35%),
        linear-gradient(135deg, rgba(255, 214, 10, 0.18), rgba(164, 211, 63, 0.24), rgba(39, 174, 96, 0.16));
     border: 1px solid rgba(164, 211, 63, 0.7);
     border-radius: 999px;
  
     box-shadow:
        0 0 0 1px rgba(255, 214, 10, 0.35),
        0 0 18px rgba(164, 211, 63, 0.55),
        0 0 34px rgba(255, 214, 10, 0.35),
        0 12px 26px rgba(15, 23, 42, 0.16);
  
     text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.85),
        0 0 14px rgba(255, 214, 10, 0.35);
  }
  
  /* .bundle-text::before {
     content: "★";
     margin-right: 0.45rem;
     color: #8fbf2f;
     text-shadow: 0 0 12px rgba(164, 211, 63, 0.75);
  }
  
  .bundle-text::after {
     content: "★";
     margin-left: 0.45rem;
     color: #8fbf2f;
     text-shadow: 0 0 12px rgba(164, 211, 63, 0.75);
  } */
  
  @media (max-width: 640px) {
     .bundle-text {
        width: 100%;
        padding: 0.65rem 0.85rem;
        font-size: 0.78rem;
        letter-spacing: 0.065em;
     }
  }