/* HomeCostCanada V46 — targeted accessibility/legibility fixes.
   Loaded after the existing page-specific base CSS. Does not alter calculator math,
   city prices, site indexing, JavaScript or privacy behaviour. */

/* Small orange type needs AA contrast on white AND pale blue sections.
   Keep the brighter orange for borders / decorative accents. */
main :is(.eyebrow,.tool-kicker,.calc-kicker),
main .category-row > span,
main .guide-card > span:first-child,
main .home-guide-grid a > span:first-child,
main .home-guide-grid a .project-code,
main .home-guides .project-code,
main .calc-next-grid strong,
main .section-number {
  color: #873306 !important;
}
/* The primary hero is dark; preserve the designed light accent where required. */
main .hero:not(.solar-hero) :is(.eyebrow,.tool-kicker,.calc-kicker) {
  color: #ffe6ca !important;
}
/* Small numbered project labels and other compact metadata */
main .project-code, main .project-card .project-code,
main .data-chip, .site-header .data-chip {
  font-size: 12px !important;
}
main .home-guide-grid a > span:first-child,
main .guide-card > span:first-child,
main .category-row > span {
  font-size: 12.5px;
}

/* Calculator results and supporting explanations: legible without zooming. */
.calculator-shell .result-mini span,
.calculator-shell .formula-summary span,
.calculator-shell .current-inputs span,
.calculator-shell .data-freshness,
.calculator-shell .estimate-status,
.calculator-shell .result-note,
.calculator-shell .result-card small,
.calculator-shell .estimate-provenance,
.calculator-shell .mobile-estimate-bar small,
.calculator-shell .driver-chip,
.calculator-shell .result-label,
.calculator-shell .field-help,
.calculator-shell .field small {
  font-size: 12.5px !important;
  line-height: 1.4;
}
.calculator-shell .result-mini span,
.calculator-shell .formula-summary span,
.calculator-shell .current-inputs > span,
.calculator-shell .data-freshness,
.calculator-shell .result-card .result-note:not(.result-primary .result-note) {
  color: #455765 !important;
}
.calculator-shell .formula-summary span {color:#405363 !important;}
.calculator-shell .result-primary .result-note,
.calculator-shell .result-primary .estimate-provenance,
.calculator-shell .result-primary small,
.calculator-shell .result-primary .result-label {
  color:#e2edf4 !important;
}
.calculator-shell .data-freshness a,
.calculator-shell .formula-summary a,
.calculator-shell a[href="#project-details"] {
  font-size: 13px;
  min-height: 28px;
}
.calculator-shell .estimate-status a {font-size:12.5px;}
/* Solar labels appear on both white and green tinted result tiles. */
.solar-shell .solar-result-grid span,
.solar-shell .battery-result > span,
.solar-shell .result-note:not(.result-primary .result-note),
.solar-shell .field-help,
.solar-shell .solar-result-note,
.solar-shell .data-freshness span {
  color:#344e5b !important;
  font-size:12.5px !important;
  line-height:1.45;
}
.solar-shell .result-primary .result-note {color:#e3f1f6 !important;}

/* Contact form optional-field description and other non-essential helper type. */
.contact-form label span,
.contact-form .field small,
.contact-form .contact-privacy-note {
  color:#405466 !important;
  font-size:13px !important;
}

/* The optional city lookup must not interrupt the solar explanation or form. */
.solar-hero .solar-city-lookup {
  margin: 18px 0 2px;
  padding: 0 14px;
  max-width: 550px;
  border: 1px solid #cedde0;
  border-radius: 10px;
  background: #fff;
}
.solar-city-lookup summary {
  cursor: pointer;
  min-height: 44px;
  padding: 11px 4px;
  color:#27465a;
  font-weight: 750;
  font-size: 14px;
  line-height: 1.4;
}
.solar-city-lookup summary:focus-visible {
  outline: 3px solid #a64008;
  outline-offset: 3px;
}
.solar-city-lookup[open] {padding-bottom: 13px;}
.solar-city-lookup .family-city-search {
  margin: 4px 0 0;
  max-width: 100%;
}
@media(max-width:390px){
  .calculator-shell .result-mini {padding: 15px 6px;}
  .calculator-shell .result-mini span {font-size: 12px !important;}
  .solar-hero .solar-city-lookup {margin-top: 14px;}
}
/* Match short uppercase utility labels to the same readable minimum. */
main .tool-kicker {font-size:12.5px !important;}
/* The city-page call-to-action is navy, unlike the pale section headings. */
main .local-cta .eyebrow {color:#ffe5c9 !important;}
/* Secondary utility text uncovered in the deeper V46 contrast sweep. */
main .mobile-swipe-hint {color:#405466 !important;}
.calculator-shell .driver-summary > span {color:#405466 !important;font-size:12.5px !important;}
.solar-shell .battery-result p {color:#405466 !important;font-size:13px !important;}
.solar-callout > span,.solar-source-card > span {color:#34584b !important;font-size:12.5px !important;}
.solar-source-card small,.source-checked {color:#405b50 !important;font-size:12.5px !important;}
.contact-card p {color:#425667 !important;}
main .hero-badge {font-size:12.5px !important;}
/* Mobile fixed estimate strip lives outside .calculator-shell. */
.mobile-estimate-bar small {font-size:12px !important;line-height:1.35 !important;}
.quick-estimator > p {color:#455765 !important;}
.city-project-focus > div > span {font-size:12.5px !important;color:#48586a !important;}
.calculator-shell .driver-summary > span {font-size:12.5px !important;color:#405466 !important;}
