/* Solar EPC typography calibration.
   Uses the EXACT homepage font stack and its 790 / 770 / 740 heading weights.
   No content, columns, section order, illustration or image changes. */
body.page-solar {
  font-family: var(--cf-site-font);
  font-weight: 400;
  line-height: 1.6;
  /* The shared header is fixed, not Solar's previous in-flow sticky header. */
  padding-top: var(--header-height);
}
body.page-solar :is(button,input,textarea,select) { font-family: var(--cf-site-font); }
body.page-solar :is(main,dialog,.mobile-cta,.site-footer) { font-family: var(--cf-site-font); }
body.page-solar :is(main,dialog) strong { font-weight: 740; }
body.page-solar .hero-copy h1 {
  font-weight: 790;
  font-size: clamp(34px, 4.3vw, 62px);
  letter-spacing: -.035em;
  line-height: 1.14;
}
body.page-solar main h2 {
  font-weight: 770;
  letter-spacing: -.035em;
  line-height: 1.2;
}
body.page-solar main h3 { font-weight: 740; line-height: 1.3; }
body.page-solar .hero-description { font-size: 18px; line-height: 1.75; }
body.page-solar :is(.feature-copy,.setup-copy)>p { font-size: 17px!important; line-height: 1.8; }
body.page-solar .feature-copy>p.quiet-line { font-size: 14px!important; line-height: 1.7; }
body.page-solar .feature-copy>p.portal-note { font-size: 15px!important; line-height: 1.7; }
body.page-solar .section-kicker { font-size: 13px!important; font-weight: 780; letter-spacing: .055em; }
body.page-solar .hero-eyebrow { font-size: 14px; font-weight: 700; line-height: 1.55; }
body.page-solar .button { font-size: 15px; font-weight: 760; line-height: 1.4; }

/* Diagram labels must still be readable while scrolling. */
body.page-solar .micro-label { font-size: 13px; font-weight: 700; line-height: 1.5; }
body.page-solar .input-doc span { font-size: 14px; font-weight: 740; line-height: 1.4; }
body.page-solar .ai-flow strong { font-size: 16px; font-weight: 740; line-height: 1.5; }
body.page-solar .ai-flow div>span { font-size: 14px; line-height: 1.5; }
body.page-solar .output-docs span { font-size: 14px; font-weight: 650; line-height: 1.4; }
body.page-solar .task-flow { font-size: 14px; line-height: 1.5; }
body.page-solar .task-flow strong { font-size: 15px; font-weight: 740; }
body.page-solar .hero-art figcaption { font-size: 13px; line-height: 1.6; }
body.page-solar .credibility-strip h2 { font-size: 22px; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; }
body.page-solar .credibility-strip h2 span { font-weight: 770; }
body.page-solar .credibility-strip p { font-size: 14px; line-height: 1.6; }
body.page-solar .screen-caption { font-size: 14px; font-weight: 700; }
body.page-solar .phone-label { font-size: 13px; font-weight: 700; }
body.page-solar .document-note { font-size: 13px; line-height: 1.6; }
body.page-solar .document-note strong { font-weight: 740; }
body.page-solar .tracking-caption { font-size: 13px; line-height: 1.6; }
body.page-solar .tracking-labels span { font-size: 15px; font-weight: 600; line-height: 1.5; }
body.page-solar .handoff-node small { font-size: 14px; line-height: 1.5; font-weight: 600; }
body.page-solar .handoff-node strong { font-size: 18px; font-weight: 740; line-height: 1.4; }
body.page-solar .handoff-label { font-size: 14px; line-height: 1.5; }
body.page-solar .example-note { font-size: 13px; line-height: 1.6; }
body.page-solar .setup-steps strong { font-size: 16px; font-weight: 740; line-height: 1.5; }
body.page-solar .setup-steps li>span { font-size: 13px; font-weight: 600; }
body.page-solar .faq-items summary { font-size: 17px; font-weight: 700; line-height: 1.5; }
body.page-solar .faq-items details p { font-size: 16px; line-height: 1.75; }
body.page-solar .demo-copy>p { font-size: 17px; line-height: 1.75; }
body.page-solar .demo-contact>a { font-size: 15px; font-weight: 600; }
body.page-solar .field label { font-size: 14px; font-weight: 740; line-height: 1.5; }
body.page-solar .field label span { font-size: 13px; font-weight: 400; }
body.page-solar .field input { font-size: 16px!important; font-weight: 400; }
body.page-solar .form-note { font-size: 13px; line-height: 1.65; }
body.page-solar .privacy-dialog h2 { font-size: 20px; font-weight: 770; }
body.page-solar .privacy-body p { font-size: 16px; line-height: 1.75; }

@media(min-width:1051px) {
  body.page-solar .feature-copy h2 { font-size: clamp(38px,3.2vw,48px); }
  body.page-solar .teamwork-card h2 { font-size: 40px; }
  body.page-solar .setup-copy h2 { font-size: 38px; }
  body.page-solar .faq-grid h2 { font-size: 36px; }
  body.page-solar .demo-copy h2 { font-size: 50px; }
}
@media(max-width:1250px) {
  body.page-solar .hero-copy h1 { font-size: clamp(34px,4vw,51px); }
}
@media(min-width:881px) and (max-width:1050px) {
  body.page-solar .hero-copy h1 { font-size: clamp(30px,3.65vw,38px); }
  body.page-solar .hero-description { font-size: 17px; }
  body.page-solar .ai-flow strong { font-size: 15px; }
  body.page-solar .ai-flow div>span { font-size: 13px; }
  body.page-solar .task-flow, body.page-solar .task-flow strong { font-size: 13px; }
  body.page-solar .handoff-node strong { font-size: 16px; }
  body.page-solar .handoff-node small { font-size: 13px; }
  body.page-solar .handoff-label { font-size: 13px; }
}
@media(max-width:880px) {
  body.page-solar .hero-copy h1 { font-size: clamp(32px,6.5vw,55px); }
  body.page-solar .hero-description { font-size: 17px; }
  body.page-solar :is(.feature-copy,.setup-copy)>p { font-size: 16px!important; }
  body.page-solar .demo-copy>p { font-size: 16px; }
}
@media(max-width:640px) {
  body.page-solar .hero-copy h1 { font-size: clamp(28px,8vw,44px); line-height: 1.18; }
  body.page-solar .hero-description { font-size: 16px; }
  body.page-solar .hero-eyebrow { font-size: 13px; }
  body.page-solar .button { font-size: 14px; }
  body.page-solar .credibility-strip h2 { font-size: 20px; }
  body.page-solar .input-doc span { font-size: 13px; }
  body.page-solar .ai-flow strong { font-size: 15px; }
  body.page-solar .ai-flow div>span { font-size: 13px; }
  body.page-solar .output-docs span { font-size: 13px; }
  body.page-solar .task-flow { font-size: 13px; }
  body.page-solar .task-flow strong { font-size: 14px; }
  body.page-solar .handoff-node small { font-size: 13px; }
  body.page-solar .handoff-node strong { font-size: 16px; }
  body.page-solar .handoff-label { font-size: 13px; }
  body.page-solar .setup-steps strong { font-size: 15px; }
  body.page-solar .faq-items summary { font-size: 16px; }
  body.page-solar .tracking-labels span { font-size: 14px; }
  body.page-solar .phone-label { font-size: 12px; }
  body.page-solar .demo-contact>a { font-size: 14px; }
}
@media(max-width:370px) {
  body.page-solar .hero-copy h1 { font-size: clamp(25px,7.8vw,29px); }
  body.page-solar .hero-eyebrow { font-size: 12px; }
  body.page-solar .button { font-size: 13px; }
  body.page-solar .input-doc span { font-size: 12.5px; }
  body.page-solar .ai-flow strong { font-size: 14px; }
  body.page-solar .ai-flow div>span { font-size: 12.5px; }
  body.page-solar .task-flow,body.page-solar .task-flow strong { font-size: 12px; }
  body.page-solar .handoff-node strong { font-size: 15px; }
  body.page-solar .setup-steps strong { font-size: 14px; }
}
@media print { body.page-solar { padding-top: 0; } }
/* Keep the approved two-action hero row at the existing mobile widths. */
@media (max-width:640px) {
  body.page-solar .button-row .button { font-size:clamp(12px,3.25vw,13px); }
}
