/* Canonical Service source composition; other page families keep their templates. */
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-body { width: 100%; max-width: none; margin: 0; padding: 0; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-body > .wp-block-post-content > * { max-width: none; margin: 0; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead { position: relative; isolation: isolate; min-height: 0; padding: 120px max(30px, calc((100% - 1300px) / 2)) 80px; overflow: hidden; border-radius: 20px 20px 0 0; background: var(--bc-navy); text-align: left; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead__image, :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-masthead__image { position: absolute; z-index: -2; inset: 0 0 0 auto; width: 50%; height: 100%; object-fit: cover; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, var(--bc-navy) 48%, rgba(25,50,60,0) 65%); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead > h2 { max-width: 800px; margin: 0 0 40px; color: var(--bc-white); font-size: 54px; font-weight: 800; line-height: 1.125; text-transform: uppercase; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead .trust-benefits__items { max-width: 800px; gap: 30px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead .trust-benefit { grid-template-columns: 114px minmax(0, 1fr); gap: 15px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead .trust-benefit__icon { width: 114px; height: 114px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead .trust-benefit__icon img { width: 55px; height: 55px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead h3 { margin: 0; color: var(--bc-white); font-size: 18px; font-weight: 400; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction { width: min(calc(100% - 40px), 1300px); margin: 30px auto !important; grid-template-columns: minmax(0, 1fr) 514px; gap: 30px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction h1 { margin: 10px 0 25px; font-size: 42px; font-weight: 800; line-height: 1.125; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction .estimate-card { border-top: 10px solid var(--bc-navy); border-radius: 20px 20px 0 0; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .content-lead-form__body ul { padding-left: 35px; columns: 1; list-style: disc; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .content-lead-form__body li { padding-left: 0; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .content-lead-form__body li::before { content: none; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .call-to-action { padding: 25px 20px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-body > .wp-block-post-content > .interior-section { padding: 40px max(30px, calc((100% - 1000px) / 2)); border-radius: 0; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-information > h2:first-child { text-align: center; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-source-blog { background: var(--bc-light); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing { padding: 40px max(30px, calc((100% - 1300px) / 2)); grid-template-columns: 3fr 2fr; gap: 30px; background: linear-gradient(rgba(25,50,60,.86), rgba(25,50,60,.86)), var(--bc-service-team-image) center / cover; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing__copy { min-width: 0; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing ul { columns: 3; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing a { text-decoration: none; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .related-services { padding: 30px max(20px, calc((100% - 1000px) / 2)); background: var(--bc-yellow); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .related-services ul { grid-template-columns: repeat(6, minmax(0, 1fr)); justify-content: center; gap: 30px 20px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .related-services a { min-height: 0; padding: 0; border: 0; background: transparent; color: var(--bc-ink); font-size: 16px; font-weight: 600; line-height: 1.4; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .related-services__icon { width: 75px; height: 75px; margin: 0 auto 10px; padding: 18px; display: grid; place-items: center; border-radius: 50%; background: var(--bc-red); color: var(--bc-white); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .related-services__icon .bc-icon { width: 100%; height: 100%; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .offer-listing { padding: 40px max(30px, calc((100% - 1300px) / 2)); background: var(--bc-blue); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .testimonials { padding: 40px max(30px, calc((100% - 1300px) / 2)); background: var(--bc-light); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .testimonials blockquote { border: 0; background: var(--bc-white); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .testimonials__stars { color: var(--bc-yellow); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-packages { padding: 60px max(30px, calc((100% - 1300px) / 2)) 40px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-packages .content-card { position: relative; padding: 0; overflow: visible; border: 1px solid #ddd; background: var(--bc-white); text-align: center; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-packages .content-card > img { position: absolute; z-index: 1; top: 60px; left: 50%; width: 112px; height: 112px; margin: 0; transform: translateX(-50%); object-fit: contain; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-packages .content-card__copy { padding: 0 0 25px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-packages h3 { min-height: 112px; margin: 0 0 70px; padding: 25px 15px; background: var(--bc-blue); color: var(--bc-white); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-packages .content-card:last-child h3 { background: var(--bc-red); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-packages .content-card__body { padding-inline: 25px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-body > .wp-block-post-content > .estimate-card { position: relative; padding: 50px max(30px, calc((100% - 1000px) / 2)); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-body > .wp-block-post-content > .estimate-card .gform_wrapper { max-width: 514px; margin: auto; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-body > .wp-block-post-content > .estimate-card h2 { text-align: center; }

@media (max-width: 900px) {
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction { grid-template-columns: minmax(0, 1fr); }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead { min-height: 0; padding: 80px 30px 60px; border-radius: 0; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead > h2 { font-size: 26px; text-align: center; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead .trust-benefits__items { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead .trust-benefit { display: grid; grid-template-columns: 114px minmax(0, 1fr); gap: 12px; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead .trust-benefit__icon { width: 114px; height: 114px; margin: 0; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead h3 { font-size: 16px; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction { width: calc(100% - 60px); }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction h1 { font-size: 32px; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-main p, :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-main ul, :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-main ol { font-size: 16px; line-height: 1.8; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .interior-main h2 { font-size: 26px; line-height: 1.125; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .related-services ul { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px 10px; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .related-services a { font-size: 14px; overflow-wrap: anywhere; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing ul { columns: 2; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing > img { max-width: 280px; margin: auto; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .testimonials__grid { grid-template-columns: minmax(0, 1fr); }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .testimonials blockquote:not(:first-child) { display: none; }
}

:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing h2, :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing p, :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing a { color: var(--bc-white); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-area-listing li::before { color: var(--bc-yellow); }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-packages .button { align-self: center; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction .estimate-card h2 { margin-top: 6px; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-information details { margin-bottom: 15px; padding: 15px 0; border-bottom: 1px solid #ddd; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-information summary { color: var(--bc-blue-dark); font-size: 24px; font-weight: 700; cursor: pointer; }
:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-information details p { margin-top: 20px; }

:is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction--two-columns .content-lead-form__body ul { columns: 2; }
@media (max-width: 767px) {
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead__image { inset: 0; width: 100%; }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-masthead::before { background: rgba(25,50,60,.3); }
  :is(.bc-source-service, .bc-source-local-service, .editor-styles-wrapper:has(.service-masthead)) .service-introduction--two-columns .content-lead-form__body ul { columns: 1; }
}
