/* Public inner pages */
.public-page { padding-top: 118px; background: #fff; }
.public-page-header { padding: 34px 0 28px; background: linear-gradient(180deg, #f7fbfe 0%, #fff 100%); border-bottom: 1px solid var(--sp-line); }
.public-page-header .breadcrumb { margin: 0 0 16px; font-size: .78rem; }
.public-page-header .breadcrumb a { color: #314a78; font-weight: 700; }
.public-page-title { margin: 0 0 8px; color: var(--sp-ink); font-size: clamp(2.5rem, 4.6vw, 4.2rem); font-weight: 800; line-height: 1; letter-spacing: -.055em; }
.public-page-title .accent { color: #15952f; }
.public-page-lead { max-width: 720px; margin: 0; color: #304a79; font-size: 1.02rem; line-height: 1.6; }
.public-header-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: 36px; align-items: center; }
.public-header-visual { display: grid; grid-template-columns: minmax(0, 1fr) 155px; gap: 12px; min-width: 0; }
.public-header-visual img { width: 100%; height: 205px; object-fit: cover; border-radius: 18px; box-shadow: 0 18px 40px rgba(5,38,67,.12); }
.public-hand-note { display: flex; flex-direction: column; justify-content: center; min-height: 205px; padding: 18px; color: #10214f; border-radius: 16px; background: #f0f6fb; font-family: "Caveat", cursive; font-size: 1.55rem; line-height: 1.05; }
.public-hand-note small { margin-top: 22px; color: #3f5680; font-family: "Manrope", sans-serif; font-size: .78rem; line-height: 1.45; }
.public-benefits { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 22px; }
.public-benefit { display: flex; align-items: center; gap: 10px; min-width: 170px; }
.public-benefit i { display: grid; place-items: center; width: 36px; height: 36px; color: #179831; border-radius: var(--r-md); background: #eaf9ea; font-size: 1rem; }
.public-benefit strong { display: block; font-size: .78rem; }
.public-benefit small { display: block; color: var(--sp-muted); font-size: .66rem; }
.public-section { padding: 42px 0; background: #fff; }
.public-section.alt { background: #f7fafc; }
.public-section-head { margin-bottom: 20px; }
.public-section-head h2 { margin: 0; color: var(--sp-ink); font-size: 1.65rem; font-weight: 800; letter-spacing: -.035em; }
.public-section-head p { margin: 4px 0 0; color: var(--sp-muted); font-size: .9rem; }
.major-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.major-card { min-width: 0; border: 1px solid var(--sp-line); border-radius: 18px; background: #fff; box-shadow: 0 12px 34px rgba(5,38,67,.06); overflow: hidden; }
.major-card-body { padding: 22px; }
.major-card h3 { margin: 0 0 8px; font-size: 1.15rem; font-weight: 800; }
.major-card p { color: #53657d; font-size: .82rem; line-height: 1.6; }
.major-card-image { width: 100%; aspect-ratio: 2.1/1; object-fit: cover; }
.feature-list { display: grid; gap: 8px; margin: 15px 0; padding: 0; list-style: none; }
.feature-list li { display: flex; align-items: flex-start; gap: 8px; color: #43546c; font-size: .77rem; }
.feature-list i { margin-top: 1px; color: #18a038; }
.card-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 10px 14px; color: #147f2a; border: 1px solid #cceccd; border-radius: 10px; background: #effbef; font-size: .78rem; font-weight: 800; }
.icon-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.icon-heading i { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; color: #168e2f; border-radius: var(--r-md); background: #eaf9ea; font-size: 1.2rem; }
.compact-card { padding: 22px; border: 1px solid var(--sp-line); border-radius: 16px; background: #fff; }
.compact-card h3 { margin: 0 0 8px; font-size: 1.05rem; font-weight: 800; }
.public-cta { padding: 26px 0; color: #fff; background: radial-gradient(circle at 70% 0%, rgba(126,245,63,.18), transparent 28%), linear-gradient(100deg,#031b2f,#082b46); }
.public-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.public-cta h2 { margin: 0 0 4px; color: #fff; font-size: 1.3rem; }
.public-cta p { margin: 0; color: rgba(255,255,255,.72); font-size: .8rem; }
.public-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.public-cta .btn { white-space: nowrap; }
.public-dropdown { margin-top: 6px; padding: 8px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: #082b46; box-shadow: 0 18px 45px rgba(0,0,0,.22); }
.public-dropdown .dropdown-item { padding: .65rem .85rem; color: rgba(255,255,255,.82); border-radius: 8px; font-size: .78rem; font-weight: 700; }
.public-dropdown .dropdown-item:hover, .public-dropdown .dropdown-item:focus { color: #071536; background: var(--sp-lime); }

/* How it works */
.journey-steps { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 14px; }
.journey-step { position: relative; padding: 18px 12px; text-align: center; border-radius: 14px; background: #fff; }
.journey-step .num { display: grid; place-items: center; width: 34px; height: 34px; margin: 0 auto 10px; color: #fff; border-radius: 50%; background: linear-gradient(135deg,#1ca939,#5ac743); font-size: .7rem; font-weight: 800; }
.journey-step i { display: block; margin-bottom: 7px; color: #092754; font-size: 1.25rem; }
.journey-step strong { display: block; font-size: .78rem; }
.journey-step small { display: block; color: var(--sp-muted); font-size: .64rem; }
.stage-list { display: grid; gap: 10px; }
.stage-row { display: grid; grid-template-columns: 42px 95px 1fr 24px; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--sp-line); border-radius: 11px; }
.stage-row .num { display: grid; place-items: center; width: 34px; height: 34px; color: #fff; border-radius: 50%; background: #1f7a2e; font-size: .68rem; font-weight: 800; }
.stage-row strong { font-size: .8rem; }
.stage-row span { color: #53657d; font-size: .72rem; }

/* Financing */
.finance-option { padding: 24px; }
.finance-option .option-icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 14px; color: #168e2f; border-radius: 50%; background: #eaf9ea; font-size: 1.45rem; }
.finance-callout { margin-top: 20px; padding: 18px 22px; border: 1px solid #cfead1; border-radius: 16px; background: linear-gradient(90deg,#f7fff7,#eefbf1); }
.finance-calculator-demo { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.demo-field { display: grid; gap: 6px; }
.demo-field label { font-size: .72rem; font-weight: 800; }
.payment-estimate { padding: 18px; border-radius: 14px; background: #edfaee; }
.payment-estimate strong { display: block; color: #118d2a; font-size: 1.75rem; }
.process-mini { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.process-mini div { text-align: center; }
.process-mini .num { display: grid; place-items: center; width: 32px; height: 32px; margin: 0 auto 8px; color: #fff; border-radius: 50%; background: #1f7a2e; font-size: .66rem; font-weight: 800; }
.process-mini strong { display: block; font-size: .72rem; }
.process-mini small { color: var(--sp-muted); font-size: .62rem; }

/* Projects */
.project-filter { display: grid; grid-template-columns: 1fr 1fr auto; gap: 14px; padding: 16px; border: 1px solid var(--sp-line); border-radius: 14px; background: #f7fafc; }
.project-filter label { display: grid; gap: 5px; font-size: .68rem; font-weight: 800; }
.featured-project { display: grid; grid-template-columns: 1.1fr 1.35fr .8fr; gap: 18px; align-items: stretch; padding: 12px; border: 1px solid var(--sp-line); border-radius: 18px; background: #fff; }
.featured-project img { width: 100%; height: 100%; min-height: 235px; object-fit: cover; border-radius: 14px; }
.project-metrics { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.project-metric { flex: 1 1 115px; padding: 10px; border: 1px solid var(--sp-line); border-radius: 10px; background: #fbfdff; }
.project-metric strong { display: block; font-size: .82rem; }
.project-metric small { color: var(--sp-muted); font-size: .63rem; }
.project-quote { display: flex; flex-direction: column; justify-content: center; padding: 20px; border-radius: 14px; background: #eef9ef; }
.project-quote i { color: #27a53a; font-size: 2rem; }
.project-quote blockquote { margin: 8px 0; color: #243b66; font-size: .78rem; line-height: 1.55; }

/* About */
.epcf-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.epcf-item { padding: 16px; text-align: center; border: 1px solid var(--sp-line); border-radius: 12px; }
.epcf-item i { display: block; margin-bottom: 8px; color: #15952f; font-size: 1.25rem; }
.epcf-item strong { display: block; font-size: .75rem; }
.epcf-item small { color: var(--sp-muted); font-size: .63rem; }
.value-grid, .impact-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.value-item, .impact-item-public { padding: 16px; border-radius: 12px; background: #f8fbfd; }
.value-item strong, .impact-item-public strong { display: block; font-size: .82rem; }
.value-item small, .impact-item-public small { color: var(--sp-muted); font-size: .68rem; }

/* Contact */
.contact-form { display: grid; gap: 14px; }
.form-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.contact-form label { margin-bottom: 5px; color: #152a53; font-size: .72rem; font-weight: 800; }
.contact-form textarea { min-height: 130px; resize: vertical; }
.contact-direct { display: grid; gap: 10px; }
.contact-line { display: grid; grid-template-columns: 42px 1fr; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--sp-line); }
.contact-line i { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; color: #158f2e; border-radius: var(--r-md); background: #eaf9ea; font-size: 1.2rem; }
.contact-line strong { display: block; font-size: .76rem; }
.contact-line span { color: #2e4775; font-size: .75rem; }
.form-notice { padding: 12px 14px; color: #315a38; border: 1px solid #bfe2c3; border-radius: 10px; background: #effaf0; font-size: .76rem; }

/* FAQ accordion — SolarPass-aligned active state */
.accordion { --bs-accordion-active-bg: #eefbef; --bs-accordion-active-color: #126b27; --bs-accordion-border-color: var(--sp-line); --bs-accordion-btn-focus-box-shadow: 0 0 0 3px rgba(56, 185, 52, .22); --bs-accordion-btn-color: var(--sp-ink); --bs-accordion-border-radius: var(--r-md); }
.accordion-button { font-weight: 800; }
.accordion-button:not(.collapsed) { background-color: #eefbef; color: #126b27; box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 3px rgba(56, 185, 52, .22); }

/* Filter chips */
.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; min-height: 36px; padding: .4rem .9rem; border: 1px solid var(--sp-line); border-radius: var(--r-pill); background: #fff; color: var(--sp-muted); font-size: .78rem; font-weight: 800; }
.chip:hover { border-color: #bfe2c3; color: #126b27; }
.chip.is-active { background: var(--sp-lime); border-color: var(--sp-lime); color: #071536; }

@media (max-width: 991.98px) {
  .public-header-grid, .featured-project { grid-template-columns: 1fr; }
  .public-header-visual { max-width: 680px; }
  .journey-steps { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .epcf-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-filter { grid-template-columns: 1fr 1fr; }
  .project-filter .btn { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) {
  .public-page { padding-top: 82px; }
  .public-page-header { padding-top: 24px; }
  .public-page-title { font-size: 2.5rem; }
  .public-header-visual { grid-template-columns: 1fr; }
  .public-hand-note { min-height: auto; }
  .public-header-visual img { height: 220px; }
  .major-grid, .finance-calculator-demo, .form-two, .value-grid, .impact-grid { grid-template-columns: 1fr; }
  .journey-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stage-row { grid-template-columns: 38px 80px 1fr; }
  .stage-row > i:last-child { display: none; }
  .process-mini { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-filter { grid-template-columns: 1fr; }
  .project-filter .btn { grid-column: auto; }
  .epcf-grid { grid-template-columns: 1fr 1fr; }
  .public-cta-inner { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 479.98px) {
  .journey-steps, .epcf-grid, .process-mini { grid-template-columns: 1fr; }
}

@media (min-width: 992px) {
  .public-solutions-nav:hover > .dropdown-menu, .public-solutions-nav:focus-within > .dropdown-menu { display: block; }
}
