/* Approved client content: strong section boundaries, existing JTA colours. */
.solar-feature, .solar-partner-section { padding-block: clamp(40px, 5vw, 76px); border-top: 1px solid #d6d6d6; background: #f3f3f3; }
.solar-feature-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 4vw, 70px); align-items: center; }
.solar-feature-photo { position: relative; align-self: stretch; min-height: 380px; overflow: hidden; border-bottom: 5px solid var(--red); }
.solar-feature-photo img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.solar-feature-photo > span { position: absolute; left: 0; bottom: 0; padding: 12px 18px; color: #fff; background: #171717; font-size: .8rem; font-weight: 700; letter-spacing: .04em; }
.solar-feature-copy h2, .solar-partner-intro h2 { max-width: 21ch; font-size: clamp(1.9rem, 2.65vw, 3rem); line-height: 1.1; margin-bottom: 20px; }
.solar-feature-copy > p:not(.eyebrow), .solar-partner-intro > p:not(.eyebrow) { max-width: 60ch; line-height: 1.7; color: #4b4b4b; }
.solar-partner-label { display: flex; align-items: center; gap: 10px; color: var(--red); font-size: .9rem; font-weight: 750; margin-top: 20px; }
.solar-partner-label svg { width: 24px; height: 24px; }
.solar-feature-copy .solar-feature-offer { margin-block: 20px; padding-left: 15px; border-left: 3px solid var(--red); color: var(--ink); font-weight: 750; }
.solar-feature-offer small { display: block; color: #585858; font-size: .78rem; font-weight: 400; margin-top: 3px; }
.solar-feature .button, .solar-partner-section .button { white-space: normal; text-align: left; }
.solar-partner-top { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: clamp(28px, 6vw, 90px); align-items: center; max-width: 1120px; margin-inline: auto; }
.solar-partner-intro .button { margin-top: 24px; }
.solar-partner-intro .solar-link-note { margin-top: 12px; font-size: .78rem; line-height: 1.6; max-width: 58ch; }
.solar-qr { margin: 0; background: #fff; border: 1px solid #d5d5d5; padding: 12px; text-align: center; }
.solar-qr img { width: 100%; height: auto; display: block; }
.solar-qr-link { display: block; color: #94192d; }
.solar-qr-link:hover { outline: 2px solid #94192d; outline-offset: 3px; }
.solar-qr-link:focus-visible { outline: 3px solid #94192d; outline-offset: 3px; }
.solar-qr figcaption { color: #171717; font-size: .9rem; font-weight: 750; line-height: 1.5; padding-bottom: 10px; }
.solar-qr figcaption span { font-size: .74rem; font-weight: 400; color: #555; }
.solar-rebate { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; margin-top: 36px; padding: clamp(22px, 3vw, 40px); background: #fff; border: 1px solid #d2d2d2; border-top: 3px solid var(--red); }
.solar-offer-kicker { color: var(--red); font-size: .7rem; letter-spacing: .1em; font-weight: 800; }
.solar-rebate h3 { font-size: clamp(1.35rem, 2vw, 2rem); margin-block: 10px; }
.solar-rebate p { color: #4d4d4d; font-size: .9rem; line-height: 1.7; max-width: 60ch; }
.solar-rebate .solar-code { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin-block: 18px; }
.solar-code strong { color: #171717; border: 1px dashed #777; padding: 6px 14px; letter-spacing: .1em; font-size: 1.1rem; }
.solar-voucher { display: block; width: 100%; height: auto; }
.solar-rebate .text-link { min-height: 44px; align-items: center; }

/* A shared offer keeps the rebate and its usable quote link visible beyond the detail page. */
.solar-rebate-promo { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 24px; align-items: center; padding: 28px; margin-top: 28px; background: #fff; color: #171717; border: 1px solid #d0d0d0; border-top: 3px solid var(--red); }
.solar-rebate-promo h3 { font-size: clamp(1.35rem, 1.8vw, 1.9rem); line-height: 1.2; margin-block: 9px 12px; color: #171717; }
.solar-rebate-promo-terms { max-width: 72ch; font-size: .88rem; line-height: 1.65; color: #505050; }
.solar-rebate-promo-code { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; font-size: .8rem; margin-top: 13px; color: #555; }
.solar-rebate-promo-code strong { padding: 4px 9px; border: 1px dashed #888; color: #171717; font-size: .94rem; letter-spacing: .08em; }
.solar-rebate-promo-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 22px; margin-top: 17px; }
.solar-rebate-promo-actions .button { padding: 13px 18px; min-height: 46px; gap: 18px; font-size: .84rem; white-space: normal; }
.solar-rebate-promo-actions .text-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .82rem; }
.solar-rebate-promo-note { margin-top: 10px; max-width: 72ch; color: #606060; font-size: .73rem; line-height: 1.6; }
.solar-rebate-promo-qr { margin: 0; padding: 6px; background: #fff; text-align: center; }
.solar-rebate-promo-qr img { display: block; width: 100%; height: auto; }
.solar-rebate-promo-qr figcaption { color: #171717; font-size: .73rem; font-weight: 700; line-height: 1.5; margin-top: 6px; }
.solar-feature-copy .solar-rebate-promo { grid-template-columns: minmax(0, 1fr) 165px; padding: 20px; gap: 18px; margin-top: 22px; }
.solar-feature-copy .solar-rebate-promo h3 { font-size: 1.35rem; }
.solar-feature-copy .solar-rebate-promo-note { font-size: .71rem; }
.contact-solar-promo { padding-block: 32px; }
.contact-solar-promo .solar-rebate-promo { margin-top: 0; background: #f5f5f5; }
@media (min-width: 761px) and (max-width: 1150px) {
  .solar-feature-grid { grid-template-columns: .75fr 1.25fr; gap: 26px; }
  .solar-feature-copy .solar-rebate-promo { grid-template-columns: minmax(0, 1fr) 145px; padding: 16px; gap: 12px; }
}
@media (max-width: 600px) {
  .solar-rebate-promo, .solar-feature-copy .solar-rebate-promo { grid-template-columns: 1fr; padding: 20px; gap: 16px; }
  .solar-rebate-promo-qr { width: 200px; max-width: 100%; justify-self: center; }
  .solar-rebate-promo h3 { font-size: 1.4rem; }
  .solar-rebate-promo-actions { gap: 4px 20px; }
}

.team-photo { margin: 0 0 26px; border-bottom: 4px solid var(--red); background: #171717; }
.team-photo-frame { overflow: hidden; }
.team-photo img { display: block; width: 100%; max-height: 510px; aspect-ratio: 2.5 / 1; object-fit: cover; object-position: center bottom; }
.team-photo figcaption { padding: 13px 20px; color: #fff; font-size: .85rem; letter-spacing: .025em; }
.business-hours { margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid #ccc; }
.business-hours h3 { margin-bottom: 9px; font-size: 1.1rem; }
.business-hours p { font-size: .84rem; line-height: 1.65; color: #555; margin: 0 0 8px; }
.business-hours .business-hours-time { color: #171717; font-weight: 750; font-size: .92rem; }
.emergency-call { margin-top: 19px; padding: 16px; background: #fff; border-left: 3px solid var(--red); }
.emergency-call h4 { font-size: .87rem; color: var(--red); margin-bottom: 8px; }
.emergency-call a { display: inline-flex; gap: 9px; align-items: center; min-height: 44px; color: #171717; font-size: 1.1rem; font-weight: 750; }
.emergency-call .ui-icon { width: 20px; height: 20px; color: var(--red); }
.service-help .business-hours { border: 0; margin: 0; padding: 0; }
.footer-hours { padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid #454545; }
.footer-hours a { display: inline-block; min-height: 44px; line-height: 1.65; color: #fff; }
.footer-hours p { font-size: .8rem; }
.enquiry-response-time { color: #505050; font-size: .85rem; line-height: 1.6; padding-bottom: 14px; margin-bottom: 15px; border-bottom: 1px solid #d4d4d4; }
.enquiry-response-time a { color: var(--red); font-weight: 650; text-decoration: underline; }

.community-area { color: #fff; background: #161616; border-top: 4px solid var(--red); padding-block: clamp(38px, 5vw, 70px); }
.community-area-grid { display: grid; grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr); grid-template-areas: 'intro map' 'list map'; gap: 25px clamp(30px, 5vw, 90px); }
.community-area-intro { grid-area: intro; }
.community-area .eyebrow { color: #fff; }
.community-area .eyebrow::before { background-color: #fff; }
.community-area h2 { font-size: clamp(1.9rem, 2.8vw, 3.1rem); line-height: 1.1; max-width: 17ch; margin-bottom: 20px; color: #fff; }
.community-area-intro > p:last-child { color: #ccc; max-width: 60ch; line-height: 1.7; font-size: .93rem; }
.community-map { grid-area: map; align-self: center; margin: 0; min-width: 0; }
.community-fallback > svg { display: block; width: 100%; max-height: 570px; overflow: visible; stroke: none; }
.community-rings { fill: none; stroke: #3a3a3a; stroke-width: 1; }
.community-compass { fill: #aaa; font-size: 13px; font-weight: 700; text-anchor: middle; }
.community-point path { stroke: #82414d; stroke-width: 1.5; }
.community-ray { stroke: #82414d; stroke-width: 1.5; }
.community-ray.is-active { stroke: #fff; stroke-width: 2; }
.community-point circle { fill: #94192d; stroke: #d57989; stroke-width: 1.2; }
.community-point text { fill: #fff; font-size: 12px; text-anchor: middle; font-weight: 700; }
.community-point.is-active path { stroke: #fff; stroke-width: 2; }
.community-point.is-active circle { fill: #fff; stroke: #fff; stroke-width: 3; }
.community-point.is-active text { fill: #94192d; }
.community-base circle { fill: #94192d; stroke: #e29ba7; stroke-width: 1; }
.community-base path { fill: #fff; }
.community-base text { fill: #fff; font-size: 20px; text-anchor: middle; font-weight: 800; letter-spacing: .035em; }
.community-base .community-base-sub { fill: #bdbdbd; font-size: 12px; font-weight: 400; }
.community-map figcaption { border-top: 1px solid #454545; border-bottom: 1px solid #454545; margin-top: 16px; padding: 16px; text-align: center; }
.community-map figcaption strong { display: block; font-size: 1.18rem; color: #fff; }
.community-map figcaption span { display: block; font-size: .8rem; color: #ccc; margin-top: 6px; }
.community-area-list { grid-area: list; min-width: 0; }
.community-list-label { display: flex; justify-content: space-between; color: #bfbfbf; font-size: .7rem; text-transform: uppercase; letter-spacing: .075em; padding-bottom: 10px; }
.community-area-list ol { list-style: none; padding: 0; margin: 0; }
.community-area-list li { border-top: 1px solid #393939; }
.community-area-list button { width: 100%; display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; align-items: center; padding: 13px 8px; min-height: 48px; text-align: left; color: #eee; background: transparent; border: 0; font: inherit; font-size: .9rem; cursor: pointer; }
.community-area-list button:hover, .community-area-list button[aria-pressed="true"] { background: #302025; color: #fff; }
.community-area-list button:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.community-number { font-size: .67rem; font-weight: 800; color: #ecaab6; }
.community-area-list strong { font-size: .9rem; white-space: nowrap; }
.community-area-list strong small { font-size: .72rem; color: #bfbfbf; font-weight: 400; }
.community-method { color: #bdbdbd; font-size: .72rem; line-height: 1.6; margin-block: 15px 10px; }
.community-method a { color: #eee; text-decoration: underline; }
.community-area .text-link { color: #fff; font-size: .84rem; min-height: 44px; align-items: center; }

/* Five service groups remain legible without a lone narrow card. */
@media (min-width: 1400px) {
  .home-service-groups { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
  .home-service-group { --service-card-inset: 17px; }
}
@media (min-width: 901px) and (max-width: 1399px) {
  .home-service-groups { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .home-service-group { grid-column: span 2; }
  .home-service-group:nth-last-child(-n+2) { grid-column: span 3; }
}
@media (min-width: 601px) and (max-width: 900px) {
  .home-service-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-service-group:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 901px) {
  .service-directory-grid .directory-category:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .directory-category#safety { display: grid; grid-template-columns: 1fr 1fr; }
  .directory-category#safety .directory-category-intro { border-bottom: 0; border-right: 3px solid var(--red); }
  .directory-shortcuts .service-shortcuts-inner { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 1280px) {
  .nav-services-panel { width: min(100%, 1220px); }
  .nav-services-groups { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
}
@media (min-width: 960px) and (max-width: 1279px) {
  .nav-services-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .community-area-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: 'intro intro' 'list map'; gap: 25px; }
  .community-area h2 { max-width: none; }
}
@media (max-width: 760px) {
  .solar-feature-grid { grid-template-columns: 1fr; gap: 26px; }
  .solar-feature-photo { min-height: 0; aspect-ratio: 4 / 3; }
  .solar-feature-copy h2 { max-width: 25ch; }
  .solar-partner-top { grid-template-columns: 1fr; gap: 24px; }
  .solar-qr { width: min(260px, 100%); justify-self: center; }
  .solar-rebate { grid-template-columns: 1fr; }
  .team-photo img { aspect-ratio: 1.4 / 1; max-height: 430px; transform: scale(1.5); transform-origin: 60% 100%; }
  .community-area-grid { grid-template-columns: 1fr; grid-template-areas: 'intro' 'map' 'list'; }
  .community-fallback > svg { max-height: 380px; }
  .community-map figcaption { margin-top: 0; }
}
@media print {
  .community-area { background: #fff; color: #000; }
  .community-map { display: none; }
  .community-area-grid { display: block; }
  .community-area :is(h2, p, a, button, strong, span, small) { color: #000; }
}
@media (forced-colors: active) {
  .community-rings, .community-point path, .community-point circle { stroke: CanvasText; }
  .community-area-list button[aria-pressed="true"] { outline: 2px solid Highlight; }
}
