/* Solar solution detail pages extend the approved company-page design. */
.solution-detail-page {
  --solution-ink:#244b69;
  --solution-copy:#456277;
  --solution-sky:#e5eff8;
  --solution-sage:#edf3e4;
  --solution-peach:#f2dfd0;
  --solution-line:#cadce7;
}
.hero-art.interior-polished.solution-detail-page .company-hero {
  background-image:linear-gradient(115deg,#8fc7f252,#b8defa3d 55%,#84bfec33),linear-gradient(90deg,#fffffffa 0%,#fffffff0 30%,#ffffffb8 48%,#ffffff40 72%,#ffffff0d),var(--solution-photo);
  background-size:cover;
  background-position:center;
}
.solution-detail-page .solution-detail-jumps { grid-template-columns:repeat(4,minmax(0,1fr)); }
.solution-detail-page .solution-detail-lead { max-width:1000px; padding:0 20px; margin:30px auto 42px; }
.solution-detail-page .solution-detail-lead p { font-size:17px; line-height:1.85; color:var(--solution-copy); }
.solution-detail-page .solution-detail-feature { display:grid; grid-template-columns:.86fr 1.14fr; gap:42px; padding:36px; margin-bottom:34px; border-radius:30px; background:var(--solution-sage); border:1px solid #d2dfc8; align-items:start; }
.solution-detail-page .solution-feature-photo { position:sticky; top:126px; min-width:0; }
.solution-detail-page .solution-feature-photo figure { margin:0 0 16px; background:#fff; border-radius:22px; overflow:hidden; }
.solution-detail-page .solution-feature-photo img { display:block; width:100%; height:340px; object-fit:cover; }
.solution-detail-page .solution-feature-photo figcaption { padding:16px 20px; color:var(--solution-copy); font-size:13px; line-height:1.5; }
.solution-detail-page .solution-feature-photo .text-link { font-size:14px; min-height:44px; color:var(--solution-ink); }
.solution-detail-page .solution-detail-copy { min-width:0; }
.solution-detail-page .solution-detail-copy h2 { font-size:36px; line-height:1.18; letter-spacing:-.035em; margin:14px 0 20px; color:#2d503f; }
.solution-detail-page :is(.solution-detail-copy,.solution-detail-card) p { font-size:16px; line-height:1.8; color:var(--solution-copy); margin:0 0 18px; }
.solution-detail-page :is(.solution-detail-copy,.solution-detail-card) p:last-child { margin-bottom:0; }
.solution-detail-page .solution-checklist { display:grid; gap:12px; list-style:none; padding:0; margin:22px 0; }
.solution-detail-page .solution-checklist li { position:relative; padding-left:29px; font-size:15px; line-height:1.65; color:var(--solution-copy); }
.solution-detail-page .solution-checklist li::before { content:''; position:absolute; left:3px; top:6px; width:9px; height:14px; border:solid #387454; border-width:0 2px 2px 0; transform:rotate(45deg); }
.solution-detail-page .solution-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-bottom:42px; }
.solution-detail-page .solution-detail-card { min-width:0; position:relative; isolation:isolate; overflow:hidden; padding:32px; border:1px solid var(--solution-line); border-radius:28px; background:var(--solution-sky); }
.solution-detail-page .solution-detail-card::after { content:''; position:absolute; z-index:-1; width:260px; height:230px; right:-100px; bottom:-90px; background:url('/assets/home-visuals/energy-lines.svg') center/cover no-repeat; opacity:.14; pointer-events:none; }
.solution-detail-page .solution-detail-card:nth-child(4n+2) { background:var(--solution-peach); border-color:#e2cbb9; }
.solution-detail-page .solution-detail-card:nth-child(4n+3) { background:#ebe6f2; border-color:#d9d1e3; }
.solution-detail-page .solution-detail-card:nth-child(4n+4) { background:var(--solution-sage); border-color:#d2dfc8; }
.solution-detail-page .solution-detail-card:last-child:nth-child(odd) { grid-column:1/-1; }
.solution-detail-page .solution-detail-card:last-child:nth-child(odd) p { max-width:900px; }
.solution-detail-page .solution-card-marker { display:flex; justify-content:space-between; align-items:center; margin-bottom:25px; color:var(--solution-ink); }
.solution-detail-page .solution-card-marker .icon { width:48px; height:48px; padding:10px; border-radius:14px; background:#ffffffa8; }
.solution-detail-page .solution-card-marker span { font-size:13px; letter-spacing:.1em; }
.solution-detail-page .solution-detail-card h2 { font-size:29px; line-height:1.22; letter-spacing:-.025em; margin:0 0 22px; color:var(--solution-ink); }
.solution-detail-page .solution-detail-quote p { max-width:830px; }
.solution-detail-page .solution-detail-quote .button { flex-shrink:0; }
.solution-detail-page :is(#solution-details,#equipment,#quotation,#solution-faqs) { scroll-margin-top:125px; }
.solution-detail-page .solution-related { margin-top:42px; margin-bottom:64px; }
.solution-detail-page .solution-related h2 { font-size:32px; margin:14px 0 24px; }
.solution-detail-page .solution-related nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.solution-detail-page .solution-related a { display:flex; align-items:center; justify-content:space-between; min-height:56px; padding:16px 20px; border-radius:18px; border:1px solid var(--solution-line); background:var(--solution-sky); color:var(--solution-ink); font-size:14px; }
.solution-detail-page .solution-related a:nth-child(2n) { background:var(--solution-sage); }
.solution-detail-page .solution-related .icon { width:20px; height:20px; flex-shrink:0; }
.solution-detail-page .solution-related a:hover { background:#d3e4f2; }
.solution-detail-page .solution-checklist + p { margin-top:20px; }
/* Services share the same cards, hero, spacing and responsive treatment. */
.service-detail-page .service-directory { grid-template-columns:repeat(3,minmax(0,1fr)); }
.service-detail-page .solution-related nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
.service-detail-page :is(.solution-detail-copy,.solution-detail-card) > .text-link { min-height:44px; margin-top:6px; }
@media (max-width:1000px) {
  .hero-art.mobile-app.solution-detail-page .company-hero { background-image:linear-gradient(120deg,#eaf4fff5,#e3f0ffed),var(--solution-photo); }
  .mobile-app.solution-detail-page .company-hero .breadcrumbs a { display:inline-flex; align-items:center; min-height:44px; }
  .mobile-app.solution-detail-page .solution-detail-jumps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; width:calc(100% - 32px); padding:0; overflow:visible; }
  .mobile-app.solution-detail-page .solution-detail-jumps a { min-width:0; padding:12px; justify-content:space-between; min-height:54px; font-size:12px; }
  .mobile-app.solution-detail-page .solution-detail-lead { width:calc(100% - 32px); padding:0 4px; margin:24px auto; }
  .mobile-app.solution-detail-page .solution-detail-lead p { font-size:16px; line-height:1.75; }
  .mobile-app.solution-detail-page .solution-detail-feature { display:flex; flex-direction:column; gap:24px; width:calc(100% - 32px); padding:20px; border-radius:24px; margin-bottom:20px; }
  .mobile-app.solution-detail-page .solution-feature-photo { position:static; width:100%; }
  .mobile-app.solution-detail-page .solution-feature-photo img { height:auto; aspect-ratio:4/3; }
  .mobile-app.solution-detail-page .solution-detail-copy h2 { font-size:28px; }
  .mobile-app.solution-detail-page .solution-detail-grid { width:calc(100% - 32px); grid-template-columns:1fr; gap:16px; margin-bottom:24px; }
  .mobile-app.solution-detail-page .solution-detail-card { padding:24px 20px; border-radius:22px; }
  .mobile-app.solution-detail-page .solution-detail-card h2 { font-size:26px; line-height:1.25; }
  .mobile-app.solution-detail-page :is(.solution-detail-copy,.solution-detail-card) p { font-size:16px; line-height:1.75; }
  .mobile-app.solution-detail-page .solution-checklist li { font-size:15px; }
  .mobile-app.solution-detail-page .solution-related { width:calc(100% - 32px); margin:32px auto; }
  .mobile-app.solution-detail-page .solution-related h2 { font-size:28px; }
  .mobile-app.solution-detail-page .solution-related nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mobile-app.service-detail-page .service-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; width:calc(100% - 32px); overflow:visible; padding:0; }
  .mobile-app.service-detail-page .service-directory a { min-width:0; min-height:58px; padding:12px; font-size:12px; justify-content:space-between; }
  .mobile-app.solution-detail-page .solution-related a { font-size:13px; gap:8px; padding:12px; }
  .mobile-app.solution-detail-page :is(#solution-details,#equipment,#quotation,#solution-faqs) { scroll-margin-top:96px; }
}
@media (min-width:701px) and (max-width:1000px) {
  .mobile-app.solution-detail-page .solution-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mobile-app.solution-detail-page .solution-detail-feature { display:grid; grid-template-columns:.85fr 1.15fr; }
}
