/* CFR v1.6.51: shared heading and short-introduction text flow.
   Use the available layout column, then wrap only when the text needs it.
   The important layer outranks historical unlayered important rules without
   adding another round of selector specificity. Fonts, gutters, grids, media,
   long-form prose and the approved homepage hero remain unchanged. */
@layer cfr-text-flow {
  body main :is(h2,h3,h4,h5,h6),
  body:not(.home) main h1 {
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    white-space:normal!important;
    text-wrap:wrap!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }

  /* Heading-only blocks and short section introductions, not page containers,
     article reading rails or the surrounding grid columns. */
  body main :is(
    .cfr-v127-section-head,
    .cfr-v127-section-head-center,
    .cfr-v127-spec-head,
    .cfr-home-feedback-v138-head,
    .cfr-guides-decision-heading,
    .cfr-areas-service-paths-heading,
    .cfr-faq-decision-heading,
    .cfr-faq-premium-heading,
    .cfr-rs-section-heading,
    .cfr-areas-directory-intro,
    .cfr-city-premium-section-intro,
    .cfr-exp-delivery-head,
    .cfr-exp-insights-heading,
    .cfr-ev-section-heading,
    .cfr-missions-section-heading
  ) {
    max-width:none!important;
    min-width:0!important;
  }

  body main .cfr-section-intro,
  body main :is(
    .cfr-v127-section-head,
    .cfr-v127-spec-head,
    .cfr-home-feedback-v138-head,
    .cfr-areas-service-paths-heading,
    .cfr-faq-premium-heading,
    .cfr-rs-section-heading,
    .cfr-areas-directory-intro,
    .cfr-city-premium-section-intro,
    .cfr-exp-delivery-head,
    .cfr-exp-insights-heading,
    .cfr-ev-section-heading,
    .cfr-missions-section-heading
  ) > p {
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    white-space:normal!important;
    text-wrap:wrap!important;
    overflow-wrap:break-word!important;
  }

  /* Keep the existing phrase color. Let normal word spacing determine breaks. */
  body main :is(h1,h2,h3) .cfr-heading-phrase,
  body main.cfr-missions-page .cfr-missions-hero-heading h1 > span {
    display:inline!important;
    white-space:normal!important;
    text-wrap:wrap!important;
  }
}

/* Owner screenshot corrections, 2026-10-14.
   Loaded through the existing shared text-flow stylesheet. Important rules in
   this layer take precedence over the historical unlayered compiled bundles. */
@layer cfr-owner-visual-qa {
  /* Treat foreground and background as one pair on pointer and keyboard states.
     These are the actual text-button families used by the public templates. */
  body :is(.cfr-btn,.cfr-missions-btn,.cfr-v121-btn,.cfr-header-quote,
    .cfr-home-contact-bridge-button,.cfr-footer-v132-quote,.cfr-v145-area-cta) {
    transition-property:transform,box-shadow!important;
  }
  body :is(.cfr-btn,.cfr-missions-btn,.cfr-v121-btn,.cfr-header-quote,
    .cfr-home-contact-bridge-button,.cfr-footer-v132-quote,.cfr-v145-area-cta):is(:hover,:focus-visible) {
    color:#fff!important;
    background:#075687!important;
    border-color:#075687!important;
    text-shadow:none!important;
  }
  body :is(.cfr-btn,.cfr-missions-btn,.cfr-v121-btn,.cfr-header-quote,
    .cfr-home-contact-bridge-button,.cfr-footer-v132-quote,.cfr-v145-area-cta):is(:hover,:focus-visible)
    :is(span,strong,em) {
    color:inherit!important;
  }
  body :is(.cfr-btn,.cfr-missions-btn,.cfr-v121-btn,.cfr-header-quote,
    .cfr-home-contact-bridge-button,.cfr-footer-v132-quote,.cfr-v145-area-cta):focus-visible {
    outline:3px solid #075687!important;
    outline-offset:4px!important;
    box-shadow:0 0 0 3px #fff!important;
  }
  /* A light secondary state remains distinct on the mission's dark hero. */
  body main .cfr-missions-hero .cfr-missions-btn--secondary:is(:hover,:focus-visible) {
    color:#06284a!important;
    background:#fff!important;
    border-color:#fff!important;
  }

  /* The blocks immediately after these blue heroes need a light surface. */
  body main :is(.cfr-faq-decision-band,.cfr-areas-service-paths,.cfr-project-proof-band) {
    background:#fff!important;
    color:#102b43!important;
    border-bottom:1px solid #d8e7f0!important;
  }
  body main :is(.cfr-faq-decision-band,.cfr-areas-service-paths,.cfr-project-proof-band) :is(h2,h3,strong) {
    color:#102b43!important;
  }
  body main :is(.cfr-faq-decision-band,.cfr-areas-service-paths,.cfr-project-proof-band) :is(p,em) {
    color:#35536b!important;
  }
  body main :is(.cfr-faq-decision-band,.cfr-areas-service-paths) .cfr-eyebrow {
    color:#096da4!important;
  }
  body main :is(.cfr-faq-decision-grid,.cfr-areas-service-paths-grid,.cfr-project-proof-grid)>a {
    background:#fff!important;
    color:#102b43!important;
    border:1px solid #cedde8!important;
    box-shadow:0 10px 26px -22px rgba(7,45,73,.25)!important;
  }
  body main :is(.cfr-faq-decision-grid,.cfr-areas-service-paths-grid,.cfr-project-proof-grid)>a :is(span,em) {
    color:#35536b!important;
    opacity:1!important;
  }
  body main :is(.cfr-faq-decision-grid,.cfr-areas-service-paths-grid,.cfr-project-proof-grid)>a:is(:hover,:focus-visible) {
    background:#eef6fb!important;
    border-color:#0a6eac!important;
    color:#102b43!important;
  }

  /* Fill the available text column. Natural wrapping still protects mobile.
     Article/sidebar grids retain their existing column widths. */
  body main :is(.cfr-content,.cfr-service-chapter,.cfr-service-cta-content,
    .cfr-fr-story-copy,.cfr-faq-list details,.cfr-content details,
    .cfr-article-cta,.cfr-home-contact-bridge-inner,.cfr-white-transition-head,
    .cfr-rs-cta-grid>div,.cfr-city-final-grid>div)>p,
  body main :is(.cfr-gallery-click-note,.cfr-ev-budget-note) {
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    white-space:normal!important;
    text-wrap:wrap!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  body main .cfr-rs-centered-chapter {
    max-width:none!important;
  }

  /* Centre the contents and CTA in the shared service action panels. */
  body main :is(.cfr-service-cta-action,.cfr-service-editorial-next,.cfr-solar-assessment-next) {
    text-align:center!important;
    align-items:center!important;
  }
  body main :is(.cfr-service-cta-action,.cfr-service-editorial-next,.cfr-solar-assessment-next)>p {
    width:100%!important;
    max-width:none!important;
    margin-inline:auto!important;
  }
  body main :is(.cfr-service-cta-action,.cfr-service-editorial-next)>.cfr-btn,
  body main .cfr-service-editorial-next>a {
    align-self:center!important;
    margin-inline:auto!important;
    max-width:100%!important;
    text-align:center!important;
  }
  body main .cfr-service-cta-action-label {
    width:100%!important;
    text-align:center!important;
  }
  body main .cfr-article-cta:not(.cfr-service-cta-balanced),
  body main .cfr-exp-bottom-grid>div:last-child {
    text-align:center!important;
  }
  body main .cfr-exp-bottom-grid>div:last-child>p {
    width:100%!important;
    max-width:none!important;
  }
  body main :is(.cfr-article-cta,.cfr-solar-assessment-next) .cfr-actions,
  body main :is(.cfr-solar-assessment-links,.cfr-city-final-actions) {
    justify-content:center!important;
  }

  /* Stop the service grid stretching an empty figure below the photograph. */
  body main .cfr-service-editorial-figure {
    align-self:start!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:auto!important;
  }
}

/* CFR v1.6.52: owner-requested spacing and alignment refinement.
   Keep all existing copy, source ownership, responsive navigation and SEO hooks.
   This shared file is loaded after every route-specific compiled bundle. */
@layer cfr-owner-visual-qa {
  /* A consistent, compact rhythm for interior sections. */
  body:not(.home) main :is(.cfr-section,.cfr-rs-section,.cfr-ev-section) {
    padding-block:clamp(1.75rem,2.7vw,2.4rem)!important;
  }

  /* Paragraph cards share one content row; references get their own slim row. */
  body main .cfr-solar-story-no-media .cfr-solar-story-copy {
    width:100%!important;
    max-width:none!important;
    margin-inline:auto!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:auto!important;
    gap:1rem!important;
    align-items:stretch!important;
  }
  body main .cfr-solar-story-no-media .cfr-solar-story-copy > :is(h2,.cfr-eyebrow) {
    grid-column:1/-1!important;
    grid-row:auto!important;
  }
  body main .cfr-solar-story-no-media .cfr-solar-story-copy > p {
    grid-column:auto!important;
    grid-row:auto!important;
    min-height:0!important;
    height:auto!important;
    align-self:stretch!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:1.15rem 1.3rem!important;
  }
  body main .cfr-solar-story-no-media .cfr-solar-story-copy > .cfr-solar-section-links {
    grid-column:1/-1!important;
    grid-row:auto!important;
    width:100%!important;
    max-width:none!important;
    padding:.75rem 1rem!important;
    background:#edf5fa!important;
    border-radius:8px!important;
    box-shadow:none!important;
  }

  /* v1.6.61: fill an unpaired paragraph's row, excluding reference link rows. */
  body main .cfr-solar-story-no-media .cfr-solar-story-copy > p:nth-child(odd of p:not(.cfr-solar-section-links)):nth-last-child(1 of p:not(.cfr-solar-section-links)) {
    grid-column:1/-1!important;
  }

  /* Let wrapped solar-link rows use their full available width. */
  body main .cfr-solar-link-grid {
    display:flex!important;
    flex-wrap:wrap!important;
  }
  body main .cfr-solar-link-grid > a {
    flex:1 1 250px!important;
    min-width:0!important;
  }

  /* Six system-selection cards wrap into complete, readable rows. */
  body main .cfr-industry-grid:has(> .cfr-industry:nth-child(6):last-child) {
    display:flex!important;
    flex-wrap:wrap!important;
  }
  body main .cfr-industry-grid:has(> .cfr-industry:nth-child(6):last-child) > .cfr-industry {
    flex:1 1 320px!important;
    min-width:0!important;
  }

  /* The current guide directory has seven topics and one published guide. */
  body main .cfr-silo-grid > .cfr-silo-card:nth-child(7):last-child {
    grid-column:1/-1!important;
  }
  body main .cfr-post-grid:has(> .cfr-post-card:only-child) {
    grid-template-columns:minmax(0,1fr)!important;
  }
  @media(min-width:701px) {
    body.home main .cfr-home-audience-grid:has(> article:nth-child(4):last-child) {
      grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
  }

  /* v1.6.62: fill final card rows at each grid's existing breakpoint. */
  @media(max-width:1100px) {
    body main.cfr-exp-premium .cfr-exp-insights-grid > .cfr-exp-insight:nth-child(3):last-child {
      grid-column:1/-1!important;
    }
  }
  @media(max-width:960px) {
    body.home .cfr-white-transition-grid > a:nth-child(3):last-child {
      grid-column:1/-1!important;
    }
  }
  @media(max-width:1000px) {
    body main.cfr-solar-managed .cfr-solar-core-grid > a:nth-child(3):last-child {
      grid-column:1/-1!important;
    }
  }

  /* Balanced edges and lighter, equal-height service-path cards. */
  body main .cfr-service-audience-inner {
    padding-block:1.1rem!important;
    gap:.8rem!important;
  }
  body main .cfr-service-audience-list {
    width:100%!important;
    column-gap:1.4rem!important;
    row-gap:.65rem!important;
  }
  body main .cfr-service-audience-inner > strong {text-align:center!important;}
  body main .cfr-service-audience-list span {
    width:100%!important;
    min-width:0!important;
    justify-content:center!important;
    align-items:center!important;
    text-align:center!important;
  }
  body main :is(.cfr-project-proof-grid,.cfr-guides-decision-grid,.cfr-faq-decision-grid,.cfr-areas-service-paths-grid) {
    align-items:stretch!important;
    gap:1rem!important;
  }
  body main :is(.cfr-project-proof-grid,.cfr-guides-decision-grid,.cfr-faq-decision-grid,.cfr-areas-service-paths-grid) > a {
    min-height:0!important;
    height:auto!important;
    padding:1.1rem 1.2rem!important;
  }
  body main :is(.cfr-faq-decision-grid,.cfr-areas-service-paths-grid) > a > strong {
    margin:0 0 .5rem!important;
  }
  body main :is(.cfr-faq-decision-grid,.cfr-areas-service-paths-grid) > a > span {
    margin:0!important;
  }
  body main.cfr-areas-page .cfr-areas-outro {
    width:min(100%,960px)!important;
    margin:1.75rem auto 0!important;
    padding:1.4rem 1.6rem!important;
    gap:1.5rem!important;
    box-shadow:none!important;
  }

  /* A useful checklist in a centred, proportionate panel. */
  body main.cfr-fr-page .cfr-fr-quote-prep {
    width:min(100%,1080px)!important;
    max-width:1080px!important;
    padding:clamp(1.25rem,2.5vw,2rem)!important;
    border:1px solid #dbe7ef!important;
    border-radius:16px!important;
    background:#f3f8fc!important;
  }
  body main.cfr-fr-page .cfr-fr-quote-prep ul {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.85rem 1.5rem!important;
    max-width:none!important;
    margin:1.3rem 0!important;
    padding:0!important;
    list-style:none!important;
  }
  body main.cfr-fr-page .cfr-fr-quote-prep li {
    display:flex!important;
    gap:.6rem!important;
    margin:0!important;
    padding:0!important;
    align-items:flex-start!important;
  }
  body main.cfr-fr-page .cfr-fr-quote-prep li::before {
    content:"✓"!important;
    color:#086c9f!important;
    font-weight:800!important;
    flex:0 0 1.1rem!important;
  }
  body main.cfr-fr-page .cfr-fr-quote-prep p {
    text-align:center!important;
    margin-bottom:0!important;
  }
  body main.cfr-rs-page .cfr-rs-contained[aria-label="Roof coatings and restoration"] {
    text-align:center!important;
  }
  body main.cfr-rs-page .cfr-rs-contained[aria-label="Roof coatings and restoration"] .cfr-rs-centered-chapter {
    max-width:1000px!important;
    margin-inline:auto!important;
  }

  /* Give the city diagnosis a heading, then three even editorial columns. */
  body main .cfr-city-premium-diagnostic-grid {
    grid-template-columns:minmax(0,1fr)!important;
    gap:1.5rem!important;
  }
  body main .cfr-city-premium-diagnostic-intro {
    width:100%!important;
    max-width:none!important;
  }
  body main .cfr-city-premium-diagnostic-intro > p {
    max-width:none!important;
  }
  body main .cfr-city-premium-diagnostic-steps {
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:1.4rem!important;
    align-items:stretch!important;
  }
  body main .cfr-city-premium-diagnostic-step {
    display:block!important;
    padding:1.2rem 1.25rem!important;
    margin:0!important;
    min-width:0!important;
    border:1px solid #d8e5ee!important;
    border-top:3px solid #1578ac!important;
    border-radius:12px!important;
    background:#fff!important;
  }
  body main .cfr-city-premium-diagnostic-step p:last-child {
    margin-bottom:0!important;
  }
  /* Coverage facts follow both columns instead of lengthening only the left. */
  body main .cfr-city-coverage-grid > .cfr-city-area-facts {
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:1.5rem!important;
    margin:0!important;
    padding:0!important;
  }
  body main .cfr-city-coverage-grid > .cfr-city-area-facts > div {
    padding-top:1rem!important;
    border-top:1px solid #d8e5ee!important;
  }
  /* These cards were absent from the shipped city CSS bundle. */
  body main .cfr-city-priority-lens-shell {display:grid!important;gap:1.4rem!important;}
  body main .cfr-city-priority-lens-heading > p {max-width:none!important;}
  body main .cfr-city-priority-lens-grid {
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:1rem!important;
  }
  body main .cfr-city-priority-lens-card {
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    padding:1.25rem!important;
    border:1px solid #d8e5ee!important;
    border-radius:12px!important;
    background:#fff!important;
  }
  body main .cfr-city-priority-lens-card h3 {margin:0 0 .65rem!important;}
  body main .cfr-city-priority-lens-card p {margin:0 0 1rem!important;}
  body main .cfr-city-priority-lens-card > a {margin-top:auto!important;font-weight:700!important;}

  /* FAQ introductions stay in normal document flow while scrolling. */
  body main :is(.cfr-home-faq-intro,.cfr-ev-faq-intro,.cfr-faq-premium-heading) {
    position:static!important;
    top:auto!important;
    align-self:start!important;
    transform:none!important;
  }
  body main .cfr-ev-final-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:clamp(1.5rem,3vw,2.5rem)!important;
    align-items:center!important;
  }
  body main .cfr-ev-final-grid > div {
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
  body main .cfr-ev-prep {padding:1.5rem!important;}
  body main .cfr-ev-final-grid > div > p {width:100%!important;max-width:none!important;}

  /* Every interior hero starts at the same upper rail, regardless of copy length. */
  body:not(.home) main :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-projects-hero,.cfr-missions-hero,.cfr-contact-owner-hero) {
    padding-top:clamp(1.75rem,2.7vw,2.5rem)!important;
    padding-bottom:clamp(1.75rem,2.7vw,2.5rem)!important;
  }
  body:not(.home) main :is(.cfr-page-hero-grid,.cfr-index-editorial-grid,.cfr-solar-hero-grid,.cfr-exp-hero-grid,.cfr-ev-hero-grid,.cfr-city-hero-grid,.cfr-missions-hero-grid,.cfr-contact-owner-grid) {
    width:min(calc(100% - clamp(2rem,4.5vw,4.5rem)),1240px)!important;
    max-width:1240px!important;
    margin-inline:auto!important;
    padding-inline:0!important;
    align-items:start!important;
    align-content:start!important;
  }
  body:not(.home) main :is(.cfr-hero-content-stack,.cfr-page-hero-copy,.cfr-solar-hero-media,.cfr-page-hero-visual,.cfr-city-hero-media,.cfr-ev-hero-image,.cfr-exp-hero-visual) {
    align-self:start!important;
    justify-content:flex-start!important;
  }

  /* Policy heroes: useful section links and a compact landscape photograph. */
  body main.cfr-policy-page .cfr-qa-split-hero {
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;
    gap:clamp(1.5rem,3vw,2.8rem)!important;
    align-items:start!important;
  }
  body main.cfr-policy-page .cfr-qa-side-photo,
  body main.cfr-policy-page .cfr-qa-side-photo img {
    aspect-ratio:3/2!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    object-fit:cover!important;
  }
  body main.cfr-policy-page .cfr-policy-hero-links {
    display:flex!important;
    flex-wrap:wrap!important;
    gap:.65rem!important;
    margin-top:1.35rem!important;
  }
  body main.cfr-policy-page .cfr-policy-hero-links a {
    display:inline-flex!important;
    align-items:center!important;
    min-height:44px!important;
    padding:.5rem .8rem!important;
    border:1px solid #7099b4!important;
    border-radius:6px!important;
    color:#f4faff!important;
    text-decoration:none!important;
    font-size:.95rem!important;
    line-height:1.35!important;
  }
  body main.cfr-policy-page .cfr-policy-hero-links a:is(:hover,:focus-visible) {
    color:#06284a!important;
    background:#fff!important;
    border-color:#fff!important;
  }
  body main.cfr-policy-page .cfr-policy-hero-note {
    color:#d3e5f0!important;
    font-size:1.02rem!important;
    line-height:1.65!important;
    margin:1.15rem 0 0!important;
  }
  body main.cfr-policy-page .cfr-prose {
    width:min(calc(100% - 2.5rem),960px)!important;
    max-width:960px!important;
    margin-inline:auto!important;
  }
  body main.cfr-policy-page .cfr-prose h2 {scroll-margin-top:150px!important;}

  @media(min-width:1101px) {
    body main .cfr-service-audience-list {grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  }
  @media(max-width:980px) {
    body main .cfr-city-premium-diagnostic-steps {grid-template-columns:1fr!important;}
    body main .cfr-city-priority-lens-grid {grid-template-columns:1fr!important;}
    body main .cfr-ev-final-grid {grid-template-columns:1fr!important;}
  }
  @media(max-width:760px) {
    body main .cfr-solar-story-no-media .cfr-solar-story-copy {grid-template-columns:1fr!important;}
    body main.cfr-fr-page .cfr-fr-quote-prep ul {grid-template-columns:1fr!important;}
    body main .cfr-city-coverage-grid > .cfr-city-area-facts {grid-template-columns:1fr!important;}
    body main.cfr-policy-page .cfr-qa-split-hero {grid-template-columns:1fr!important;}
  }
  @media(max-width:580px) {
    body:not(.home) main :is(.cfr-section,.cfr-rs-section,.cfr-ev-section) {padding-block:1.65rem!important;}
    body main.cfr-areas-page .cfr-areas-outro {padding:1.25rem!important;gap:1rem!important;}
    body main .cfr-service-audience-list {grid-template-columns:1fr!important;}
  }
}


/* v1.6.53 — owner-requested hero alignment, clear actions and city coverage. */
@layer cfr-text-flow {
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-breadcrumbs) {
    margin:0 0 1rem!important;
    padding:0!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-eyebrow,.cfr-exp-kicker,.cfr-missions-eyebrow) {
    display:block!important;
    margin:0 0 .7rem!important;
    padding:0!important;
    font-size:.8rem!important;
    font-weight:800!important;
    line-height:1.6!important;
    letter-spacing:.12em!important;
    color:#a9dbef!important;
    text-transform:uppercase!important;
    border:0!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero)::before,
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero)::after,
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-eyebrow,.cfr-exp-kicker,.cfr-missions-eyebrow,.cfr-page-hero-visual,.cfr-solar-hero-media,.cfr-exp-hero-visual,.cfr-city-hero-media,.cfr-city-hero-copy)::before,
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-eyebrow,.cfr-exp-kicker,.cfr-missions-eyebrow,.cfr-page-hero-visual,.cfr-solar-hero-media,.cfr-exp-hero-visual,.cfr-city-hero-media,.cfr-city-hero-copy)::after {
    content:none!important;
    display:none!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero) :is(.cfr-hero-content-stack) {
    gap:1.25rem!important;
    margin:0!important;
    padding:0!important;
    min-height:0!important;
    align-self:start!important;
    justify-content:flex-start!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero) :is(.cfr-index-hero-heading,.cfr-roof-service-hero-heading,.cfr-solar-hero-heading,.cfr-exp-hero-heading,.cfr-ev-hero-heading,.cfr-city-hero-heading) {
    margin:0!important;
    padding:0!important;
    border:0!important;
    min-height:0!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero) h1 {
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero) :is(.cfr-page-hero-copy,.cfr-solar-hero-copy,.cfr-exp-hero-copy,.cfr-ev-hero-copy,.cfr-city-hero-copy) {
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    width:100%!important;
    padding:0!important;
    margin:0!important;
    text-align:left!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-actions,.cfr-page-hero-actions,.cfr-exp-hero-actions,.cfr-city-hero-actions,.cfr-missions-hero-actions) {
    display:flex!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
    gap:1rem!important;
    margin:1.4rem 0 0!important;
    padding:0!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-actions,.cfr-page-hero-actions,.cfr-exp-hero-actions,.cfr-city-hero-actions,.cfr-missions-hero-actions) > a {
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:1 1 220px!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:52px!important;
    padding:.85rem 1rem!important;
    gap:.45rem!important;
    border:1px solid transparent!important;
    border-radius:8px!important;
    background:#0b70ad!important;
    color:#fff!important;
    font-size:.92rem!important;
    line-height:1.45!important;
    font-weight:750!important;
    text-align:center!important;
    white-space:normal!important;
    text-decoration:none!important;
    box-shadow:none!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-actions,.cfr-page-hero-actions,.cfr-exp-hero-actions,.cfr-city-hero-actions,.cfr-missions-hero-actions) > a:only-child {
    flex:0 1 auto!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-actions,.cfr-page-hero-actions,.cfr-exp-hero-actions,.cfr-city-hero-actions,.cfr-missions-hero-actions) > a:nth-child(n+2) {
    background:transparent!important;
    border-color:#86b7d1!important;
    color:#f4faff!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-actions,.cfr-page-hero-actions,.cfr-exp-hero-actions,.cfr-city-hero-actions,.cfr-missions-hero-actions) > a:is(:hover,:focus-visible) {
    background:#fff!important;
    border-color:#fff!important;
    color:#06284a!important;
    text-decoration:none!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-actions,.cfr-page-hero-actions,.cfr-exp-hero-actions,.cfr-city-hero-actions,.cfr-missions-hero-actions) > a:focus-visible {
    outline:3px solid #87d9ff!important;
    outline-offset:4px!important;
  }
  html body:not(.home) main#main-content :is(.cfr-solar-trust-row,.cfr-exp-trustline) > span {
    border:0!important;
    border-radius:10px!important;
  }
  /* City coverage: all area facts belong with the copy; photo starts at H2. */
  html body:not(.home) main#main-content .cfr-city-home .cfr-city-coverage-grid {
    row-gap:.7rem!important;
    column-gap:clamp(1.7rem,3vw,2.8rem)!important;
    align-items:start!important;
  }
  html body:not(.home) main#main-content .cfr-city-home .cfr-city-coverage-grid > .cfr-eyebrow {
    grid-column:1/-1!important;
    margin:0!important;
  }
  html body:not(.home) main#main-content .cfr-city-home .cfr-city-coverage-copy h2 {
    margin:0 0 1rem!important;
  }
  html body:not(.home) main#main-content .cfr-city-home .cfr-city-coverage-copy .cfr-city-area-facts {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:1rem!important;
    margin:1.25rem 0 0!important;
    padding:0!important;
  }
  html body:not(.home) main#main-content .cfr-city-home .cfr-city-coverage-grid > .cfr-city-inline-figure {
    margin:0!important;
    padding:0!important;
    align-self:start!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero-grid,.cfr-index-editorial-grid,.cfr-ev-hero-grid) {
    grid-template-areas:"content visual"!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero-grid,.cfr-index-editorial-grid,.cfr-ev-hero-grid) > :is(.cfr-hero-content-stack,.cfr-page-hero-copy) {
    grid-area:content!important;
  }
  html body:not(.home) main#main-content :is(.cfr-page-hero-grid,.cfr-index-editorial-grid,.cfr-ev-hero-grid) > :is(.cfr-page-hero-visual,.cfr-ev-hero-image) {
    grid-area:visual!important;
  }
  @media(min-width:981px) {
    html body:not(.home) main#main-content :is(.cfr-page-hero-grid,.cfr-index-editorial-grid,.cfr-solar-hero-grid,.cfr-exp-hero-grid,.cfr-ev-hero-grid,.cfr-city-hero-grid) {
      grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;
      align-items:stretch!important;
    }
    html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero) :is(.cfr-page-hero-visual,.cfr-solar-hero-media,.cfr-ev-hero-image,.cfr-city-hero-media,.cfr-exp-hero-visual:has(.cfr-exp-figure)) {
      position:relative!important;
      align-self:stretch!important;
      height:100%!important;
      min-height:320px!important;
      max-height:none!important;
      aspect-ratio:auto!important;
      border:0!important;
      border-radius:16px!important;
      overflow:hidden!important;
      margin:0!important;
    }
    html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero) :is(.cfr-page-hero-visual,.cfr-solar-hero-media,.cfr-ev-hero-image,.cfr-city-hero-media,.cfr-exp-hero-visual) img,
    html body:not(.home) main#main-content .cfr-exp-hero-visual > .cfr-exp-figure {
      position:absolute!important;
      inset:0!important;
      display:block!important;
      width:100%!important;
      height:100%!important;
      max-height:none!important;
      min-height:0!important;
      aspect-ratio:auto!important;
      object-fit:cover!important;
      object-position:center!important;
      margin:0!important;
    }
  }
  @media(max-width:980px) {
    html body:not(.home) main#main-content :is(.cfr-page-hero-grid,.cfr-index-editorial-grid,.cfr-solar-hero-grid,.cfr-exp-hero-grid,.cfr-ev-hero-grid,.cfr-city-hero-grid) {
      grid-template-columns:1fr!important;
      gap:1.5rem!important;
    }
    html body:not(.home) main#main-content .cfr-solar-hero-grid {grid-template-areas:"content" "photo" "trust"!important;}
    html body:not(.home) main#main-content .cfr-exp-hero-grid {grid-template-areas:"content" "visual" "trust"!important;}
    html body:not(.home) main#main-content .cfr-city-hero-grid {grid-template-areas:"content" "media"!important;}
    html body:not(.home) main#main-content :is(.cfr-page-hero-grid,.cfr-index-editorial-grid,.cfr-ev-hero-grid) {grid-template-areas:"content" "visual"!important;}
    html body:not(.home) main#main-content .cfr-city-home .cfr-city-coverage-grid {grid-template-columns:1fr!important;}
  }
  @media(max-width:580px) {
    html body:not(.home) main#main-content :is(.cfr-page-hero,.cfr-solar-hero,.cfr-exp-hero,.cfr-ev-premium-hero,.cfr-city-hero,.cfr-missions-hero) :is(.cfr-actions,.cfr-page-hero-actions,.cfr-exp-hero-actions,.cfr-city-hero-actions,.cfr-missions-hero-actions) > a {
      flex:1 1 100%!important;
      width:100%!important;
    }
  }
  /* Direct-copy heroes need the same title-to-introduction breathing room. */
  html body:not(.home) main#main-content .cfr-page-hero-copy > h1 {
    margin-bottom:1.25rem!important;
  }
  /* Retain the existing full-width composition when a hero photo is absent. */
  html body:not(.home) main#main-content .cfr-solar-hero-grid.cfr-solar-hero-no-media {
    grid-template-columns:1fr!important;
    grid-template-areas:"content" "trust"!important;
  }
  html body:not(.home) main#main-content .cfr-city-hero-grid.cfr-city-no-media,
  html body:not(.home) main#main-content :is(.cfr-page-hero-grid,.cfr-index-editorial-grid,.cfr-ev-hero-grid):not(:has(> :is(.cfr-page-hero-visual,.cfr-ev-hero-image))) {
    grid-template-columns:1fr!important;
    grid-template-areas:"content"!important;
  }

}


/* CFR v1.6.54: readable property-context labels on dark solar coverage bands. */
@layer cfr-text-flow {
  body:not(.home) main.cfr-solar-managed .cfr-solar-coverage.cfr-section-dark .cfr-eyebrow {
    color:#bee9ff!important;
  }
  body:not(.home) main.cfr-solar-managed .cfr-solar-coverage.cfr-section-dark .cfr-eyebrow::before {
    background:#83ceef!important;
  }
}

/* v1.6.63: a shorter homepage body; hero, quote form and other routes retain their styles. */
body.home main.cfr-home-concise > section:not(.cfr-v121-hero) {
  padding-block:48px!important;
}
body.home main.cfr-home-concise > section:not(.cfr-v121-hero) .cfr-v127-section-head {
  margin-bottom:24px!important;
}
body.home main.cfr-home-concise > section:not(.cfr-v121-hero) h2 {
  font-size:clamp(26px,3.1vw,40px)!important;
  line-height:1.16!important;
  text-wrap:balance;
}
body.home main.cfr-home-concise .cfr-v127-services-layout {
  align-items:start!important;
  gap:28px!important;
}
body.home main.cfr-home-concise .cfr-v127-service-cards {
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
}
body.home main.cfr-home-concise .cfr-v121-service-media {
  height:auto!important;
  min-height:0!important;
  aspect-ratio:16/9!important;
}
body.home main.cfr-home-concise .cfr-v121-service-media img {
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
body.home main.cfr-home-concise .cfr-v121-service-body {
  padding:18px!important;
}
body.home main.cfr-home-concise .cfr-home-audience-grid {
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
}
body.home main.cfr-home-concise .cfr-home-audience-grid article {
  padding:18px!important;
  min-height:0!important;
}
body.home main.cfr-home-concise .cfr-home-audience-grid span {
  font-size:15px!important;
  line-height:1.5!important;
}
body.home main.cfr-home-concise .cfr-v127-detail-grid {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  align-items:center!important;
  gap:32px!important;
}
body.home main.cfr-home-concise .cfr-v127-detail-media {
  margin:0!important;
  align-self:center!important;
  min-height:0!important;
}
body.home main.cfr-home-concise .cfr-v127-detail-media img {
  aspect-ratio:4/3!important;
  height:auto!important;
  min-height:0!important;
  object-fit:cover!important;
}
body.home main.cfr-home-concise .cfr-home-related-energy {
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid #d9e6ef;
}
body.home main.cfr-home-concise .cfr-v121-steps {
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:20px!important;
  margin:0!important;
}
body.home main.cfr-home-concise .cfr-v121-steps li {
  min-width:0;
  padding:18px 16px!important;
}
body.home main.cfr-home-concise .cfr-v121-steps small {
  font-size:15px!important;
  line-height:1.5!important;
}
body.home main.cfr-home-concise .cfr-home-feedback-details {
  margin-top:28px;
  border-top:1px solid #d9e6ef;
  padding-top:18px;
}
body.home main.cfr-home-concise .cfr-home-feedback-details summary {
  cursor:pointer;
  color:#123e61;
  font-weight:700;
}
body.home main.cfr-home-concise .cfr-home-feedback-details > div {
  max-width:900px;
  padding-top:16px;
}
body.home main.cfr-home-concise .cfr-home-photos {
  background:#f4f8fb;
}
body.home main.cfr-home-concise .cfr-home-photo-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
body.home main.cfr-home-concise .cfr-home-photo-grid .cfr-project-card {
  min-width:0;
  margin:0!important;
  grid-column:auto!important;
}
body.home main.cfr-home-concise .cfr-home-photo-grid .cfr-project-open {
  position:relative;
  overflow:hidden;
  border:0;
  padding:0;
  border-radius:8px;
  width:100%;
  display:block;
  aspect-ratio:3/2!important;
  height:auto!important;
  min-height:0!important;
}
body.home main.cfr-home-concise .cfr-home-photo-grid img {
  display:block;
  width:100%!important;
  height:100%!important;
  aspect-ratio:3/2!important;
  object-fit:cover!important;
}
body.home main.cfr-home-concise .cfr-home-photo-links {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px 28px;
  margin-top:22px;
}
body.home main.cfr-home-concise .cfr-home-coverage-compact {
  margin-top:24px;
  width:100%;
  max-width:1000px;
}
body.home main.cfr-home-concise .cfr-home-coverage-compact > a {
  color:#fff!important;
  text-decoration:underline;
  text-underline-offset:3px;
}
body.home main.cfr-home-concise .cfr-home-coverage-compact .cfr-v145-city-details {
  text-align:left;
  color:#173b59;
  background:#fff;
  margin-top:16px;
}
body.home main.cfr-home-concise .cfr-home-coverage-compact .cfr-v145-city-details summary {
  color:#173b59!important;
}
@media(max-width:960px) {
  body.home main.cfr-home-concise .cfr-v127-services-layout,
  body.home main.cfr-home-concise .cfr-v127-detail-grid {
    grid-template-columns:1fr!important;
  }
  body.home main.cfr-home-concise .cfr-home-audience-grid,
  body.home main.cfr-home-concise .cfr-v121-steps,
  body.home main.cfr-home-concise .cfr-home-photo-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.home main.cfr-home-concise .cfr-v127-detail-media {
    width:100%;
    max-width:600px;
    justify-self:center;
  }
}
@media(max-width:600px) {
  body.home main.cfr-home-concise > section:not(.cfr-v121-hero) {
    padding-block:34px!important;
  }
  body.home main.cfr-home-concise .cfr-v127-service-cards,
  body.home main.cfr-home-concise .cfr-v121-steps {
    grid-template-columns:1fr!important;
    gap:16px!important;
  }
  body.home main.cfr-home-concise .cfr-v121-service-media {
    height:auto!important;
    aspect-ratio:16/9!important;
  }
  body.home main.cfr-home-concise .cfr-home-audience-grid {
    gap:10px!important;
  }
  body.home main.cfr-home-concise .cfr-home-audience-grid article {
    padding:13px!important;
  }
  body.home main.cfr-home-concise .cfr-v127-detail-grid {
    gap:22px!important;
  }
  body.home main.cfr-home-concise .cfr-v127-detail-media img {
    aspect-ratio:3/2!important;
  }
  body.home main.cfr-home-concise .cfr-home-photo-grid {
    gap:10px;
  }
}

/* v1.6.64: compact closing quote section and a separate, aligned service-area row. */
body.home main.cfr-home-concise .cfr-home-contact-bridge-inner {
  display:grid!important;
  width:100%!important;
  max-width:1160px!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-areas:"kicker" "title" "copy" "actions" "coverage"!important;
  gap:0!important;
  text-align:left!important;
  align-items:start!important;
}
body.home main.cfr-home-concise .cfr-home-contact-bridge .cfr-v121-kicker {grid-area:kicker!important;justify-self:start!important;}
body.home main.cfr-home-concise .cfr-home-contact-bridge h2 {grid-area:title!important;text-align:left!important;}
body.home main.cfr-home-concise .cfr-home-contact-bridge p {grid-area:copy!important;text-align:left!important;margin:0!important;max-width:68ch!important;}
body.home main.cfr-home-concise .cfr-home-contact-bridge-actions {
  grid-area:actions!important;
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px 20px!important;
  width:100%!important;
  max-width:none!important;
  margin:22px 0 0!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.home main.cfr-home-concise .cfr-home-contact-bridge-button {
  width:auto!important;
  min-height:50px!important;
  padding:12px 24px!important;
  font-size:16px!important;
  line-height:1.4!important;
  white-space:nowrap!important;
}
body.home main.cfr-home-concise .cfr-home-contact-bridge-phone {
  min-height:44px!important;
  padding:8px 0!important;
  border:0!important;
  background:none!important;
  font-size:16px!important;
  line-height:1.4!important;
  white-space:nowrap!important;
}
body.home main.cfr-home-concise .cfr-home-coverage-compact {
  grid-area:coverage!important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px 24px;
  width:100%;
  max-width:none;
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.23);
}
body.home main.cfr-home-concise .cfr-home-coverage-compact > a {font-size:15px;line-height:1.5;}
body.home main.cfr-home-concise .cfr-home-coverage-compact .cfr-v145-city-details {
  flex:0 1 380px;
  max-width:100%!important;
  margin:0!important;
  border:1px solid rgba(255,255,255,.3)!important;
  border-radius:10px!important;
  background:transparent;
  box-shadow:none!important;
}
body.home main.cfr-home-concise .cfr-home-coverage-compact .cfr-v145-city-details summary {
  padding:12px 16px!important;
  font-size:15px!important;
  line-height:1.4!important;
  color:#fff!important;
}
body.home main.cfr-home-concise .cfr-home-coverage-compact .cfr-v145-city-details summary span {flex-shrink:0;width:26px;height:26px;}
body.home main.cfr-home-concise .cfr-home-coverage-compact .cfr-v145-city-details[open] {flex-basis:100%;background:#fff;}
body.home main.cfr-home-concise .cfr-home-coverage-compact .cfr-v145-city-details[open] summary {color:#173b59!important;}
@media(min-width:901px) {
  body.home main.cfr-home-concise .cfr-home-contact-bridge-inner {
    width:calc(100% - 40px)!important;
    grid-template-columns:minmax(0,1fr) 250px!important;
    grid-template-areas:"kicker actions" "title actions" "copy actions" "coverage coverage"!important;
    column-gap:40px!important;
  }
  body.home main.cfr-home-concise .cfr-home-contact-bridge-actions {flex-direction:column!important;justify-content:center!important;align-self:center!important;margin:0!important;gap:10px!important;}
  body.home main.cfr-home-concise .cfr-home-contact-bridge-button {width:100%!important;}
}

/* v1.6.65: preserve a light quote-button surface on the dark closing banner. */
@layer cfr-owner-visual-qa {
  body.home main.cfr-home-concise .cfr-home-contact-bridge-button:is(:hover,:focus-visible) {
    color:#073855!important;
    background:#d9f2ff!important;
    border-color:#fff!important;
    text-shadow:none!important;
  }
  body.home main.cfr-home-concise .cfr-home-contact-bridge-button:is(:hover,:focus-visible) span {color:inherit!important;}
  body.home main.cfr-home-concise .cfr-home-contact-bridge-button:focus-visible {
    outline:3px solid #fff!important;
    outline-offset:4px!important;
    box-shadow:0 0 0 3px #073855!important;
  }
}

/* v1.6.67: wider editorial introductions and purposeful homepage body layout. */
@layer cfr-text-flow {
  body.home main.cfr-home-concise > section:not(.cfr-v121-hero) .cfr-home-section-intro {
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;
    gap:18px!important;
    width:100%!important;
    max-width:none!important;
    margin:0 0 28px!important;
    text-align:left!important;
  }
  body.home main.cfr-home-concise .cfr-home-section-intro :is(.cfr-home-section-heading,.cfr-home-section-description) {
    min-width:0!important;
    max-width:none!important;
    text-align:left!important;
  }
  body.home main.cfr-home-concise .cfr-home-section-intro :is(h2,p) {
    max-width:none!important;
    margin-inline:0!important;
    text-align:left!important;
    text-wrap:pretty!important;
  }
  body.home main.cfr-home-concise .cfr-home-section-intro h2 {
    margin-bottom:0!important;
    text-wrap:wrap!important;
  }
  body.home main.cfr-home-concise .cfr-home-section-description {
    display:block!important;
    width:100%!important;
  }
  body.home main.cfr-home-concise .cfr-home-section-description > a {grid-column:1/-1!important;justify-self:start!important;}
  body.home main.cfr-home-concise .cfr-home-section-description > p {
    margin:0 0 12px!important;
    font-size:17px!important;
    line-height:1.65!important;
  }
  body.home main.cfr-home-concise .cfr-home-section-description > :last-child {margin-bottom:0!important;}
  body.home main.cfr-home-concise .cfr-v127-detail-solar .cfr-v127-detail-grid {
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)!important;
    grid-template-areas:"media copy" "energy energy"!important;
    align-items:center!important;
    gap:28px 44px!important;
  }
  body.home main.cfr-home-concise .cfr-v127-detail-solar .cfr-v127-detail-copy {grid-area:copy!important;}
  body.home main.cfr-home-concise .cfr-v127-detail-solar .cfr-v127-detail-media {grid-area:media!important;width:100%!important;max-width:none!important;}
  body.home main.cfr-home-concise .cfr-v127-detail-solar .cfr-v127-detail-media img {aspect-ratio:1/1!important;}
  body.home main.cfr-home-concise .cfr-v127-detail-solar .cfr-home-related-energy {
    grid-area:energy!important;
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px 28px!important;
    margin:0!important;
    padding:20px 0 0!important;
  }
  body.home main.cfr-home-concise .cfr-home-related-energy p {margin:0!important;flex:1 1 420px!important;}
  body.home main.cfr-home-concise .cfr-home-photo-links {justify-content:flex-start!important;gap:12px!important;}
  body.home main.cfr-home-concise .cfr-home-gallery-button {
    display:inline-flex!important;
    justify-content:center!important;
    align-items:center!important;
    gap:12px!important;
    min-height:48px!important;
    padding:12px 22px!important;
    border:1px solid #086daf!important;
    border-radius:10px!important;
    background:#086daf!important;
    color:#fff!important;
    text-decoration:none!important;
    font-size:16px!important;
    line-height:1.45!important;
    font-weight:700!important;
    box-shadow:none!important;
  }
  body.home main.cfr-home-concise .cfr-home-gallery-button.cfr-btn-outline {background:#fff!important;color:#075b96!important;}
  body.home main.cfr-home-concise .cfr-home-gallery-button:hover {background:#064d7c!important;color:#fff!important;}
  body.home main.cfr-home-concise .cfr-home-gallery-button:focus-visible {outline:3px solid #073855!important;outline-offset:3px!important;}
  body.home main.cfr-home-concise .cfr-home-faq-grid {grid-template-columns:minmax(0,.85fr) minmax(0,1.45fr)!important;gap:44px!important;align-items:start!important;}
  @media(max-width:960px) {
    body.home main.cfr-home-concise > section:not(.cfr-v121-hero) .cfr-home-section-intro {grid-template-columns:1fr!important;gap:16px!important;}
    body.home main.cfr-home-concise .cfr-v127-detail-solar .cfr-v127-detail-grid {grid-template-columns:1fr!important;grid-template-areas:"copy" "media" "energy"!important;gap:22px!important;}
    body.home main.cfr-home-concise .cfr-v127-detail-solar .cfr-v127-detail-media {max-width:600px!important;justify-self:start!important;}
    body.home main.cfr-home-concise .cfr-v127-detail-solar .cfr-v127-detail-media img {aspect-ratio:3/2!important;}
    body.home main.cfr-home-concise .cfr-home-faq-grid {grid-template-columns:1fr!important;gap:24px!important;}
  }
  @media(max-width:600px) {
    body.home main.cfr-home-concise > section:not(.cfr-v121-hero) h2 {
      width:100%!important;
      max-width:none!important;
      font-size:clamp(22px,6.1vw,26px)!important;
      line-height:1.2!important;
      text-wrap:wrap!important;
    }
    body.home main.cfr-home-concise > section:not(.cfr-v121-hero) .cfr-home-section-intro {gap:12px!important;}
    body.home main.cfr-home-concise .cfr-home-related-energy .cfr-v121-link {white-space:normal!important;max-width:100%!important;}
    body.home main.cfr-home-concise .cfr-home-section-description > p {font-size:16px!important;line-height:1.6!important;}
    body.home main.cfr-home-concise .cfr-home-gallery-button {flex:1 1 100%!important;width:100%!important;}
    body.home main.cfr-home-concise .cfr-home-audience-grid {grid-template-columns:1fr!important;}
    body.home main.cfr-home-concise .cfr-home-audience-grid article {padding:14px 16px!important;}
    body.home main.cfr-home-concise .cfr-v121-steps li {padding:16px!important;}
  }
}
body.home main.cfr-home-concise .cfr-home-audience-grid article {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:6px;
  padding:18px 20px!important;
  text-align:left;
  box-shadow:none;
}
body.home main.cfr-home-concise .cfr-home-audience-grid strong {line-height:1.35;}
body.home main.cfr-home-concise .cfr-home-audience-grid span {color:#50677b;}
body.home main.cfr-home-concise .cfr-v121-steps li > div {min-width:0;}
body.home main.cfr-home-concise .cfr-home-enquiry-guide {
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid #d9e6ef;
}
body.home main.cfr-home-concise .cfr-home-enquiry-guide h3 {font-size:20px;line-height:1.35;margin:0 0 10px;}
body.home main.cfr-home-concise .cfr-home-enquiry-guide p,
body.home main.cfr-home-concise .cfr-home-enquiry-guide li {font-size:16px;line-height:1.6;}
body.home main.cfr-home-concise .cfr-home-enquiry-guide ul {padding-left:20px;margin:12px 0 18px;}
body.home main.cfr-home-concise .cfr-home-enquiry-guide li + li {margin-top:10px;}

/* v1.6.70: one compact official Toronto cool-roof resource on the homepage. */
body.home main.cfr-home-concise .cfr-home-roof-grant {
  padding:0 0 36px;
  background:#fff;
}
body.home main.cfr-home-concise .cfr-home-roof-grant-inner {
  padding:20px 24px;
  border:1px solid #d9e6ef;
  border-left:4px solid #147ca8;
  border-radius:8px;
  background:#f4f9fc;
}
body.home main.cfr-home-concise .cfr-home-roof-grant h3 {
  margin:0 0 8px!important;
  font-size:clamp(18px,2vw,22px)!important;
  line-height:1.4!important;
  letter-spacing:normal!important;
  text-wrap:pretty;
}
body.home main.cfr-home-concise .cfr-home-roof-grant h3 a {
  color:#075b80!important;
  text-decoration:underline;
  text-underline-offset:3px;
  overflow-wrap:break-word;
}
body.home main.cfr-home-concise .cfr-home-roof-grant h3 a:hover,
body.home main.cfr-home-concise .cfr-home-roof-grant h3 a:focus-visible {
  color:#063c56!important;
}
body.home main.cfr-home-concise .cfr-home-roof-grant p {
  max-width:none!important;
  margin:0!important;
  font-size:16px!important;
  line-height:1.6!important;
}
@media(max-width:560px) {
  body.home main.cfr-home-concise .cfr-home-roof-grant-inner {padding:18px;}
}

/* v1.6.69: consistent gallery thumbnails and readable gallery heroes.
   Full-size sources and the existing viewer remain unchanged. */
@layer cfr-text-flow {
  body main.cfr-projects-page .cfr-projects-hero h1 {
    color:#fff!important;
  }
  body main.cfr-projects-page .cfr-project-gallery {
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    grid-auto-rows:auto!important;
    align-items:start!important;
    gap:clamp(14px,1.6vw,22px)!important;
  }
  body main.cfr-projects-page .cfr-project-gallery > .cfr-project-card {
    display:block!important;
    grid-column:auto!important;
    grid-row:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    align-self:start!important;
    justify-self:stretch!important;
  }
  body main.cfr-projects-page .cfr-project-gallery .cfr-project-open {
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:4/3!important;
    padding:0!important;
    overflow:hidden!important;
  }
  body main.cfr-projects-page .cfr-project-gallery .cfr-project-open img {
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center!important;
  }
  body main.cfr-projects-page .cfr-project-head-actions .cfr-v121-link {
    display:inline-flex!important;
    align-items:center!important;
    width:max-content!important;
    max-width:100%!important;
    font-size:16px!important;
    line-height:1.45!important;
    white-space:nowrap!important;
  }
  @media(max-width:1100px) {
    body main.cfr-projects-page .cfr-project-gallery {
      grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }
  }
  @media(max-width:820px) {
    body main.cfr-projects-page .cfr-project-gallery {
      grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
  }
  @media(max-width:760px) {
    body main.cfr-projects-page .cfr-project-filter-band {
      position:static!important;
      top:auto!important;
      z-index:auto!important;
    }
  }
  @media(max-width:560px) {
    body main.cfr-projects-page .cfr-project-gallery {
      grid-template-columns:minmax(0,1fr)!important;
    }
  }
}

/* v1.6.68: compact shared city/regional solar navigation.
   Preserve every existing label and destination; keep other solar grids intact. */
@layer cfr-text-flow {
  body main .cfr-solar-coverage {
    padding-block:44px!important;
  }
  body main .cfr-solar-coverage > .cfr-container {
    display:grid!important;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
    align-items:start!important;
    gap:clamp(32px,4vw,64px)!important;
  }
  body main .cfr-solar-coverage-intro {min-width:0!important;}
  body main .cfr-solar-coverage-intro h2 {
    margin:12px 0 16px!important;
    font-size:clamp(26px,2.35vw,32px)!important;
    line-height:1.23!important;
    letter-spacing:-.025em!important;
    text-align:left!important;
  }
  body main .cfr-solar-coverage-intro p {
    margin:0!important;
    font-size:16px!important;
    line-height:1.7!important;
    text-align:left!important;
  }
  body main .cfr-solar-coverage .cfr-solar-link-grid {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0 24px!important;
    margin:0!important;
    padding:0!important;
  }
  body main .cfr-solar-coverage .cfr-solar-link-grid > a {
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    min-width:0!important;
    min-height:54px!important;
    margin:0!important;
    padding:13px 0!important;
    border:0!important;
    border-bottom:1px solid rgba(205,235,251,.28)!important;
    border-radius:0!important;
    background:transparent!important;
    color:#fff!important;
    font-size:15px!important;
    font-weight:650!important;
    line-height:1.45!important;
    text-align:left!important;
    text-decoration:none!important;
    box-shadow:none!important;
    transform:none!important;
    transition:color .18s ease,border-color .18s ease!important;
  }
  body main .cfr-solar-coverage .cfr-solar-link-grid > a > span {
    min-width:0!important;
    overflow-wrap:break-word!important;
  }
  body main .cfr-solar-coverage .cfr-solar-link-grid > a > b {
    flex:0 0 auto!important;
    color:#8bd1fa!important;
    font-size:18px!important;
    line-height:1!important;
  }
  body main .cfr-solar-coverage .cfr-solar-link-grid > a:last-child:nth-child(odd) {
    grid-column:1/-1!important;
  }
  body main .cfr-solar-coverage .cfr-solar-link-grid > a:is(:hover,:focus-visible) {
    background:transparent!important;
    color:#b9e5ff!important;
    border-bottom-color:#8bd1fa!important;
    text-decoration:underline!important;
    text-underline-offset:4px!important;
  }
  body main .cfr-solar-coverage .cfr-solar-link-grid > a:focus-visible {
    outline:2px solid #8bd1fa!important;
    outline-offset:4px!important;
  }
  @media(max-width:1000px) {
    body main .cfr-solar-coverage > .cfr-container {
      grid-template-columns:1fr!important;
      gap:24px!important;
    }
  }
  @media(max-width:600px) {
    body main .cfr-solar-coverage {padding-block:32px!important;}
    body main .cfr-solar-coverage-intro h2 {
      font-size:24px!important;
      line-height:1.25!important;
    }
    body main .cfr-solar-coverage .cfr-solar-link-grid {
      grid-template-columns:1fr!important;
    }
    body main .cfr-solar-coverage .cfr-solar-link-grid > a {
      min-height:50px!important;
      padding-block:12px!important;
    }
  }
}

/* v1.6.67: reference-style floating mobile quote button. */
@layer cfr-text-flow {
  body .cfr-mobile-cta.cfr-mobile-quick-actions {display:none!important;}
  @media(max-width:760px) {
    body .cfr-mobile-cta.cfr-mobile-quick-actions:not([hidden]) {
      display:block!important;
      position:fixed!important;
      inset:auto 14px calc(12px + env(safe-area-inset-bottom,0px)) 14px!important;
      width:auto!important;
      max-width:480px!important;
      margin:0 auto!important;
      padding:0!important;
      background:transparent!important;
      border:0!important;
      border-radius:0!important;
      box-shadow:none!important;
      transform:none!important;
      opacity:1!important;
      visibility:visible!important;
      z-index:80!important;
    }
    body .cfr-mobile-quote-button {
      display:flex!important;
      align-items:center!important;
      justify-content:center!important;
      width:100%!important;
      min-width:0!important;
      min-height:58px!important;
      margin:0!important;
      padding:15px 20px!important;
      border:1px solid #0765a1!important;
      border-radius:19px!important;
      background:linear-gradient(110deg,#075b96,#0d86c9)!important;
      color:#fff!important;
      font-family:inherit!important;
      font-size:17px!important;
      font-weight:700!important;
      line-height:1.25!important;
      text-decoration:none!important;
      cursor:pointer!important;
      box-shadow:0 8px 24px rgba(5,58,93,.24)!important;
    }
    body .cfr-mobile-quote-button:is(:hover,:focus-visible) {background:#073855!important;color:#fff!important;}
    body .cfr-mobile-quote-button:focus-visible {outline:3px solid #075b96!important;outline-offset:3px!important;}
  }
}

/* Mobile drawer: keep the separate submenu buttons, remove duplicate label chevrons. */
@media(max-width:1100px){#cfr-primary-nav .cfr-nav-dropdown>a::after{content:none!important;display:none!important}}
