/* Approved typography direction A. Layout, colours and branding stay local. */
@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap");
@import url("/readability.css");

:root {
  --font-ui: "DM Sans", sans-serif;
  --fs-h1: 2rem;
  --fs-h2: 1.5625rem;
  --fs-h3: 1.1875rem;
  --fs-body: 1rem;
  --fs-small: 0.875rem;
  --fs-caption: 0.875rem;
  --fs-control: 1rem;
}
@media (min-width: 1000px) {
  :root {
    --fs-h1: 2.75rem;
    --fs-h2: 2rem;
    --fs-h3: 1.375rem;
    --fs-body: 1.0625rem;
  }
}
html { -webkit-text-size-adjust: 100%; }
body :is(strong,b) { font-weight: 700; }
body {
  font-family: var(--font-ui) !important;
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
html body :is(h1,h2,h3,h4,h5,h6,.section-title,.headline) {
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-wrap: balance;
}
html body :is(h1) { font-size: var(--fs-h1) !important; max-width: 20ch; letter-spacing: -.02em !important; }
html body :is(h2,.section-title,.headline) { font-size: var(--fs-h2) !important; letter-spacing: -.02em !important; }
html body :is(h3,h4,h5,h6) { font-size: var(--fs-h3) !important; }
html body :is(h1,h2,h3) :is(span,em,strong,b,a,small) {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}
html body :is(p,li,dd,blockquote,.hero-sub,.section-sub,.step-body,.value-body,.faq-answer) {
  font-family: var(--font-ui) !important;
  font-size: var(--fs-body) !important;
  line-height: 1.6 !important;
}
p { max-width: 65ch; }
html body :is(button,input,select,textarea,nav a,.nav-links a,
  .btn,.btn-primary,.btn-secondary,.btn-hero,.btn-ghost-hero,.hero-cta-btn,.hero-demo-btn,
  .hero-btns a,.hero-cta a,.hero-cta-row a,[role="button"]) {
  font-family: var(--font-ui) !important;
  font-size: var(--fs-control) !important;
}
html body :is(.sbar-num,.stat-num,.hstat-n,.big-num,.savings-amount) {
  font-family: var(--font-ui) !important;
  font-size: var(--fs-h2) !important;
  font-weight: 700 !important;
  line-height: 1.2;
}
html body :is(.sbar-label,.footer-text,.ft,.cec-installer-trust) {
  font-family: var(--font-ui) !important;
  font-size: var(--fs-small) !important;
  line-height: 1.5;
}
/* Keep intentionally hidden callback wording hidden; its visible label is 16px. */
@media (max-width: 480px) {
  html body nav [onclick*="openCallback"] { font-size: 0 !important; }
  html body nav [onclick*="openCallback"]::before { font-size: var(--fs-control) !important; }
}
/* Logo dimensions, aspect ratio, colours and clear space remain unchanged. */
html body .cec-logo-card { line-height: 0 !important; }

/* Secondary copy remains comfortably readable without changing heading/body scale. */
html body :is(.hint,.field-hint,.field-help,.form-hint,.muted,.muted-text,
  .footer-text,.footer-links a,.ft,.quote-note,.billing-note,.modal-note,
  .pc-desc,.pc-period,.pc-feat,.plan-feature,.payg-note,.sc-help,.sc-fault-since) {
  font-size:max(14px, var(--fs-small)) !important;
  line-height:1.5 !important;
}
