/* Sunscape page — styles specific to sunscape.html.
   Shared nav/footer/section/hero/cta chrome lives in components.css. */

body { margin: 0; background: var(--white-pure); }
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); }

/* ---- Hero brand lockup + badges ---- */
.page-hero-grid > div {
  min-width: 0;
}
.sun-hero-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.sun-hero-logo {
  height: 34px;
  width: auto;
  object-fit: contain;
}
.sun-hero-brand-label {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--text-secondary);
}
.sun-hero-brand-label strong {
  color: var(--color-primary);
  font-weight: 700;
}

.sun-hero-badges {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  margin: clamp(20px,3vw,28px) 0 0;
  overflow-x: auto;
  scrollbar-width: none;
  min-width: 0;
}
.sun-hero-badges::-webkit-scrollbar {
  display: none;
}
.sun-hero-badge {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--deco-mint);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-primary);
  white-space: nowrap;
}

.sun-hero-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: clamp(24px,3vw,32px);
}

/* ---- Dashboard showcase (dark split section) ---- */
.sun-dashboard {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--green-forest);
  padding: clamp(64px,9vw,112px) var(--gutter-x);
  overflow: hidden;
}
.sun-dashboard-grid {
  grid-template-columns: minmax(240px,360px) minmax(320px,1fr);
  gap: clamp(32px,6vw,64px);
  align-items: center;
}
.sun-dashboard-eyebrow {
  color: var(--green-leaf);
}
.sun-dashboard-title {
  margin: 0 0 20px;
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(28px,3.4vw,42px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #fff;
}
.sun-dashboard-text {
  margin: 0 0 24px;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(255,255,255,0.72);
}
.sun-dashboard-points {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.sun-dashboard-points li {
  position: relative;
  padding-left: 26px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255,255,255,0.88);
}
.sun-dashboard-points li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 7px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gold-solar);
}

/* Greenlight & Bedrock reuse the dark dashboard section but swap Sunscape's
   two-column split (text column vs. screenshot) for the centered layout
   from plansets.html's "Project Greenlight" section (.sp-compat): eyebrow
   + heading + subtext on top, the three points as a row of numbered cards
   (.value-card, reused as-is), and the screenshot centered below in place
   of that section's stats table. Keeps the text column from running far
   taller than the image, since the heading/subtext now use the section's
   full width instead of a ~360px column. */
.sun-dashboard-inner {
  box-sizing: border-box;
  max-width: 1040px;
  margin: 0 auto;
  text-align: center;
}
.sun-dashboard-inner .sun-dashboard-text {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}
.sun-dashboard-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(240px,1fr));
  gap: 20px;
  margin: clamp(32px,4vw,40px) 0 clamp(40px,5vw,56px);
  text-align: left;
}

.sun-dashboard-visual {
  position: relative;
  display: flex;
  justify-content: center;
}
.sun-dashboard-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
}

/* ---- Stats strip (layout matches home page stats) ---- */
.sun-stats {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--white-pure);
  padding: clamp(88px,12vw,168px) var(--gutter-x);
}
.sun-stats-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(64px,9vw,120px);
}
.sun-stats-header {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(32px,6vw,88px);
  align-items: end;
}
.sun-stats-title {
  margin: 0;
  max-width: 15ch;
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(32px,4.4vw,60px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  color: #163F37;
  text-wrap: pretty;
}
.sun-stats-side {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: flex-start;
}
.sun-stats-text {
  margin: 0;
  max-width: 42ch;
  font-family: 'Inter', sans-serif;
  font-size: clamp(15px,1.3vw,17px);
  line-height: 1.65;
  color: var(--text-secondary);
}
.sun-stats-bar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: clamp(24px,4vw,64px);
  row-gap: clamp(56px,7vw,88px);
}
.sun-stats-item {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sun-stats-bar > .sun-stats-item:nth-child(3n+2),
.sun-stats-bar > .sun-stats-item:nth-child(3n) {
  padding-left: clamp(24px,4vw,64px);
  border-left: 1px solid var(--surface-border);
}
.sun-stats-value {
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(44px,5.4vw,76px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--color-accent);
}
.sun-stats-label {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
  color: var(--text-secondary);
  max-width: 24ch;
}

/* ---- Process (pinned scroll stack-of-cards; layout matches PTO & Interconnection) ---- */
.sun-process {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--green-forest);
  padding: clamp(64px,9vw,112px) var(--gutter-x) clamp(96px,12vw,160px);
}
.sun-process-grid {
  grid-template-columns: minmax(240px,1fr) minmax(0,1.4fr);
  gap: clamp(32px,6vw,80px);
  align-items: stretch;
}
.sun-process-sticky {
  align-self: start;
}
.sun-process-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--green-leaf);
}
.sun-process-eyebrow-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green-leaf);
}
.sun-process-title {
  margin: 0 0 20px;
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(36px,4.2vw,56px);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: #fff;
}
.sun-process-text {
  margin: 0;
  max-width: 380px;
  font-family: 'Inter', sans-serif;
  font-size: clamp(15px,1.2vw,17px);
  line-height: 1.65;
  color: rgba(255,255,255,0.72);
}
.sun-process-count {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: clamp(28px,4vw,48px);
  font-family: 'Geist', sans-serif;
}
.sun-process-count-num {
  font-size: clamp(28px,2.6vw,36px);
  font-weight: 600;
  color: var(--gold-solar);
}
.sun-process-count-label {
  font-size: 14px;
  color: rgba(255,255,255,0.55);
}

.sun-stack-outer {
  box-sizing: border-box;
  position: relative;
  width: 100%;
}
.sun-stack-pin {
  box-sizing: border-box;
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sun-stack-frame {
  position: relative;
  width: 100%;
  height: clamp(360px,28vw,420px);
}
.sun-stack-card {
  box-sizing: border-box;
  position: absolute;
  inset: 0;
  background: var(--surface-card);
  border: 1px solid var(--surface-card-border);
  border-radius: 32px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  transition: box-shadow 300ms ease;
  will-change: transform, opacity;
}
.sun-stack-card--1 { z-index: 5; }
.sun-stack-card--2 { z-index: 4; }
.sun-stack-card--3 { z-index: 3; }
.sun-stack-card--4 { z-index: 2; }
.sun-stack-card--5 { z-index: 1; }
.sun-stack-card-inner {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  padding: clamp(40px,5vw,64px);
}
.sun-stack-card-content {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  z-index: 1;
}
.sun-stack-card-num {
  position: absolute;
  top: -22px;
  right: -18px;
  left: auto;
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  font-size: clamp(120px,12vw,175px);
  line-height: 1;
  color: rgba(31,91,79,0.06);
  z-index: 0;
  user-select: none;
  pointer-events: none;
}
.sun-stack-card-body {
  position: relative;
  z-index: 1;
}
.sun-stack-step-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}
.sun-stack-step-bar {
  display: inline-block;
  width: 3px;
  height: 16px;
  border-radius: 2px;
  background: var(--color-primary);
}
.sun-stack-step-label {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-primary);
}
.sun-stack-step-title {
  margin: 0 0 28px;
  font-family: 'Geist', sans-serif;
  font-weight: 700;
  font-size: clamp(34px,4.6vw,60px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--text-charcoal);
}
.sun-stack-step-text {
  margin: 0;
  max-width: 640px;
  font-family: 'Inter', sans-serif;
  font-size: 17px;
  line-height: 1.7;
  color: var(--text-secondary);
}

/* ---- Ecosystem cards (layout matches About "What We Stand For") ---- */
.sun-ecosystem {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--surface-section-alt);
  padding: clamp(64px,9vw,112px) var(--gutter-x);
}
.sun-ecosystem-inner {
  max-width: 1440px;
  margin: 0 auto;
}
.sun-ecosystem-title {
  margin: 0 0 16px;
  max-width: 640px;
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(28px,3vw,40px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-ecosystem-intro {
  margin: 0 0 40px;
  max-width: 640px;
  font-family: 'Inter', sans-serif;
  font-size: clamp(15px,1.2vw,17px);
  line-height: 1.65;
  color: var(--text-secondary);
}
.sun-ecosystem-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(260px,1fr));
  gap: 20px;
}
.sun-ecosystem-grid .value-card {
  display: flex;
  flex-direction: column;
}
.sun-ecosystem-grid .value-card {
  position: relative;
}
.sun-ecosystem-logo {
  position: absolute;
  top: 28px;
  right: 28px;
  display: block;
  height: 56px;
  width: 56px;
  object-fit: contain;
}
.sun-ecosystem-role {
  margin: 0 0 12px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-primary);
}
.sun-ecosystem-grid .value-card-text {
  flex: 1;
}
.sun-ecosystem-link {
  align-self: flex-start;
  margin-top: 20px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary);
}
.sun-ecosystem-link:hover {
  text-decoration: underline;
}

/* ---- Comparison table (layout matches site survey provider comparison) ---- */
.sun-compare {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--white-pure);
  padding: clamp(64px,9vw,112px) var(--gutter-x);
}
.sun-compare-inner {
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}
.sun-compare-title {
  margin: 0 0 clamp(40px,6vw,56px);
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(28px,3.4vw,42px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-compare-table {
  border: 1px solid var(--surface-card-border);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.sun-compare-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.sun-compare-row + .sun-compare-row {
  border-top: 1px solid var(--surface-border);
}
.sun-compare-cell {
  box-sizing: border-box;
  padding: 18px clamp(16px,3vw,32px);
  font-family: 'Inter', sans-serif;
  font-size: clamp(13px,1.4vw,15px);
  line-height: 1.5;
  text-align: center;
}
.sun-compare-cell--left {
  color: var(--text-secondary);
}
.sun-compare-cell--right {
  font-weight: 600;
  color: var(--color-primary);
}
.sun-compare-row--header .sun-compare-cell {
  padding: clamp(18px,2.4vw,24px) clamp(16px,3vw,32px);
  font-family: 'Geist', sans-serif;
  font-weight: 600;
}
.sun-compare-row--header .sun-compare-cell--left {
  background: var(--text-charcoal);
  color: #fff;
}
.sun-compare-row--header .sun-compare-cell--right {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--deco-cream);
}
.sun-compare-logo {
  display: block;
  height: clamp(32px,4vw,48px);
  width: auto;
}

/* ---- Homeowner dashboard milestone flow (layout matches PTO & Interconnection
   "Two Phases" milestone track; Geist + Inter only) ---- */
.sun-flow-section {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--green-forest);
  padding: clamp(64px,9vw,112px) var(--gutter-x);
}
.sun-flow-inner {
  box-sizing: border-box;
  max-width: 1100px;
  margin: 0 auto;
}
.sun-flow-section .section-eyebrow {
  color: var(--green-leaf);
}
.sun-flow-content-grid {
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px,6vw,64px);
  align-items: center;
  margin-bottom: clamp(48px,6vw,72px);
}
.sun-flow-heading {
  margin: 0 0 20px;
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(28px,3vw,40px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #fff;
}
.sun-flow-text {
  margin: 0 0 28px;
  max-width: 640px;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(255,255,255,0.72);
}
.sun-flow-points {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.sun-flow-points li {
  position: relative;
  padding-left: 22px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255,255,255,0.88);
}
.sun-flow-points li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gold-solar);
}

.sun-flow-visual {
  box-sizing: border-box;
  background: var(--surface-card);
  border: 1px solid var(--surface-card-border);
  border-radius: 20px;
  padding: clamp(28px,3vw,40px);
}
.sun-flow-label {
  display: block;
  margin-bottom: 28px;
  text-align: center;
  font-family: 'Geist', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--gold-solar);
}
.sun-flow-track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--steps,6),minmax(0,1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.sun-flow-track::before,
.sun-flow-track::after {
  content: '';
  position: absolute;
  top: 21px;
  left: calc(100% / (2 * var(--steps,6)));
  height: 2px;
  border-radius: 2px;
}
.sun-flow-track::before {
  right: calc(100% / (2 * var(--steps,6)));
  background: var(--surface-border);
}
.sun-flow-track::after {
  width: var(--flow-progress, 0%);
  background: var(--color-primary);
}
.sun-flow-step {
  position: relative;
}
.sun-flow-node {
  position: relative;
  justify-self: center;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--surface-section-alt);
  border: 1.5px solid var(--surface-border);
  color: var(--text-secondary);
  transition: background 300ms ease, border-color 300ms ease, color 300ms ease;
}
.sun-flow-node svg {
  width: 20px;
  height: 20px;
}
.sun-flow-content {
  margin-top: 18px;
  text-align: center;
}
.sun-flow-step--done .sun-flow-node {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}
.sun-flow-step--current .sun-flow-node {
  background: var(--gold-solar);
  border-color: var(--gold-solar);
  color: #fff;
  box-shadow: 0 0 0 6px rgba(199,163,74,0.16);
  animation: sun-flow-pulse 2.4s ease-in-out infinite;
}
@keyframes sun-flow-pulse {
  0%, 100% { box-shadow: 0 0 0 6px rgba(199,163,74,0.16); }
  50% { box-shadow: 0 0 0 10px rgba(199,163,74,0.06); }
}
.sun-flow-title {
  margin: 0 0 6px;
  font-family: 'Geist', sans-serif;
  font-weight: 600;
  font-size: clamp(15px,1.3vw,17px);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-flow-status {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
}
.sun-flow-status--done {
  color: var(--color-primary);
  font-weight: 600;
}
.sun-flow-status--current {
  color: var(--gold-solar);
  font-weight: 600;
}

/* ---- "What's inside" masonry grid (layout matches engineering reviews masonry) ---- */
.sun-masonry {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--surface-section-alt);
  padding: clamp(64px,9vw,112px) var(--gutter-x);
}
.sun-masonry-grid {
  box-sizing: border-box;
  max-width: 1440px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.sun-masonry-intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.sun-masonry-title {
  margin: 0;
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(28px,3vw,40px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-masonry-card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  background: var(--surface-card);
  border: 1px solid var(--surface-card-border);
  border-radius: 20px;
  padding: clamp(24px,2.6vw,32px);
}
.sun-masonry-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.sun-masonry-card-number {
  font-family: 'Geist', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-accent);
}
.sun-masonry-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--deco-mint);
  color: var(--color-primary);
}
.sun-masonry-card-icon svg {
  width: 22px;
  height: 22px;
}
.sun-masonry-card-title {
  margin: 0 0 10px;
  font-family: 'Geist', sans-serif;
  font-weight: 500;
  font-size: 19px;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-masonry-card-rule {
  display: block;
  width: 28px;
  height: 2px;
  margin-bottom: 16px;
  background: var(--surface-border);
}
.sun-masonry-card-text {
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: var(--text-secondary);
}
.sun-masonry-card--dark {
  background: var(--green-forest);
  border-color: var(--green-forest);
}
.sun-masonry-card--dark .sun-masonry-card-icon {
  background: rgba(255,255,255,0.14);
  color: #fff;
}
.sun-masonry-card--dark .sun-masonry-card-title {
  color: #fff;
}
.sun-masonry-card--dark .sun-masonry-card-text {
  color: rgba(255,255,255,0.75);
}
.sun-masonry-photo {
  position: relative;
  min-height: clamp(240px,22vw,320px);
  border-radius: 20px;
  overflow: hidden;
}
.sun-masonry-photo-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 1024px) {
  .sun-masonry-grid {
    grid-template-columns: repeat(2,1fr);
  }
  .sun-masonry-grid > *:last-child {
    grid-column: 1 / -1;
  }
}
@media (max-width: 640px) {
  .sun-masonry-grid {
    grid-template-columns: 1fr;
  }
}

/* ---- Closing CTA banner (reuses global cta-* classes from components.css) ---- */
.sun-cta-banner {
  box-sizing: border-box;
  position: relative;
  width: min(100% - 2 * clamp(16px,2.5vw,32px), 1100px);
  margin: clamp(64px,8vw,120px) auto;
  min-height: clamp(300px,32vw,380px);
  border-radius: 24px;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.sun-cta-banner-img {
  position: absolute;
  top: -16%;
  left: 0;
  width: 100%;
  height: 132%;
  object-fit: cover;
  display: block;
  will-change: transform;
}

/* ---- FAQ (accordion list + "still have a question" card; layout matches
   the service pages' FAQ section) ---- */
.sun-faq {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--white-pure);
  padding: clamp(28px,3.5vw,48px) var(--gutter-x) clamp(120px,16vw,220px);
}
.sun-faq-inner {
  box-sizing: border-box;
  max-width: 1200px;
  margin: 0 auto;
}
.sun-faq-grid {
  grid-template-columns: minmax(280px,400px) 1fr;
  gap: clamp(40px,6vw,72px);
}
@media (min-width: 1025px) {
  .sun-faq-grid > :first-child {
    position: sticky;
    top: clamp(96px,12vh,140px);
  }
}
.sun-faq-head {
  margin-bottom: clamp(28px,4vw,40px);
}
.sun-faq-card {
  box-sizing: border-box;
  background: var(--deco-mint);
  border: 1px solid var(--surface-card-border);
  border-radius: 20px;
  padding: clamp(28px,3.2vw,40px);
}
.sun-faq-card-title {
  margin: 0 0 12px;
  font-family: 'Geist', sans-serif;
  font-weight: 500;
  font-size: clamp(19px,2vw,24px);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-faq-card-text {
  margin: 0 0 24px;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-secondary);
}
.sun-faq-list {
  border-top: 1px solid var(--surface-border);
}
.sun-faq-item {
  border-bottom: 1px solid var(--surface-border);
}
.sun-faq-question {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: clamp(20px,2.6vw,26px) 2px;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  font-family: 'Geist', sans-serif;
  font-weight: 500;
  font-size: clamp(16px,1.6vw,19px);
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-faq-icon {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--surface-border);
  color: var(--text-charcoal);
  transition: background 240ms ease, border-color 240ms ease, color 240ms ease, transform 240ms ease;
}
.sun-faq-item.is-open .sun-faq-icon {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
  transform: rotate(180deg);
}
.sun-faq-answer-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 380ms cubic-bezier(0.4,0,0.2,1);
}
.sun-faq-item.is-open .sun-faq-answer-wrap {
  grid-template-rows: 1fr;
}
.sun-faq-answer {
  overflow: hidden;
  min-height: 0;
  padding-right: clamp(0px,4vw,54px);
  opacity: 0;
  transition: opacity 220ms ease;
}
.sun-faq-item.is-open .sun-faq-answer {
  opacity: 1;
  transition: opacity 280ms ease 100ms;
}
.sun-faq-answer p {
  margin: 0;
  padding-bottom: 22px;
  max-width: 62ch;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-secondary);
}

/* ---- "Why this CRM is different" (content + screenshot carousel) ---- */
.sun-crm-section {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  background: var(--surface-section-alt);
  padding: clamp(64px,9vw,112px) var(--gutter-x);
}
.sun-crm-grid {
  grid-template-columns: minmax(320px,1fr) minmax(360px,1.1fr);
  gap: clamp(40px,6vw,80px);
  align-items: center;
}
.sun-crm-title {
  margin: 0 0 20px;
  font-family: 'Geist', sans-serif;
  font-weight: 250;
  font-size: clamp(28px,3.2vw,42px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-crm-text {
  margin: 0 0 32px;
  max-width: 520px;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.7;
  color: var(--text-secondary);
}
.sun-crm-features {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.sun-crm-feature {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.sun-crm-feature-number {
  flex-shrink: 0;
  width: 24px;
  padding-top: 2px;
  font-family: 'Geist', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-accent);
}
.sun-crm-feature-title {
  margin: 0 0 6px;
  font-family: 'Geist', sans-serif;
  font-weight: 600;
  font-size: 17px;
  letter-spacing: -0.01em;
  color: var(--text-charcoal);
}
.sun-crm-feature-text {
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-secondary);
}

.sun-crm-carousel-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 20px;
  overflow: hidden;
  background: var(--surface-card);
  border: 1px solid var(--surface-card-border);
  box-shadow: var(--shadow-lg);
}
.sun-crm-carousel-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 500ms ease;
}
.sun-crm-carousel-slide.is-active {
  opacity: 1;
  z-index: 1;
}
.sun-crm-carousel-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}
.sun-crm-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 24px;
}
.sun-crm-carousel-arrow {
  box-sizing: border-box;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--surface-border);
  background: none;
  color: var(--text-charcoal);
  cursor: pointer;
  transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}
.sun-crm-carousel-arrow:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}
.sun-crm-carousel-dots {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sun-crm-carousel-dot {
  box-sizing: border-box;
  width: 8px;
  height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--surface-border);
  cursor: pointer;
  transition: background 200ms ease, width 200ms ease;
}
.sun-crm-carousel-dot.is-active {
  width: 22px;
  border-radius: 4px;
  background: var(--color-primary);
}
.sun-crm-carousel-caption {
  margin: 16px 0 0;
  min-height: 44px;
  text-align: center;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-secondary);
}

/* ---- Responsive ---- */
@media (min-width: 768px) and (max-width: 1024px) {
  .sun-process-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .sun-process-sticky {
    position: static;
    top: auto;
  }
  .sun-stack-frame {
    height: min(62vh,460px);
  }
}
@media (max-width: 767px) {
  .sun-stats-header {
    grid-template-columns: 1fr;
  }
  .sun-stats-bar {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 40px;
  }
  .sun-stats-bar > .sun-stats-item:nth-child(3n+2),
  .sun-stats-bar > .sun-stats-item:nth-child(3n) {
    padding-left: 0;
    border-left: none;
  }
  .sun-stats-bar > .sun-stats-item:nth-child(even) {
    padding-left: 20px;
    border-left: 1px solid var(--surface-border);
  }
  .sun-stats-value {
    font-size: 36px;
  }
  .sun-stats-label {
    font-size: 12px;
  }
  .sun-flow-track {
    grid-template-columns: 1fr !important;
  }
  .sun-flow-track::before,
  .sun-flow-track::after {
    top: 22px;
    left: 21px;
    width: 2px;
    height: auto;
    right: auto;
  }
  .sun-flow-track::before {
    bottom: 22px;
  }
  .sun-flow-track::after {
    width: 2px;
    height: var(--flow-progress, 0%);
  }
  .sun-flow-step {
    padding: 0 0 32px 64px;
  }
  .sun-flow-step:last-child {
    padding-bottom: 0;
  }
  .sun-flow-node {
    position: absolute;
    top: 0;
    left: 0;
  }
  .sun-flow-content {
    margin-top: 0;
    text-align: left;
  }
  .sun-process-grid {
    gap: 24px !important;
  }
  .sun-stack-frame {
    height: min(80vh,600px) !important;
  }
  .sun-compare-cell {
    padding: 14px 10px;
  }
  .sun-faq-grid {
    gap: 32px !important;
  }
  .sun-faq {
    position: static !important;
    padding-bottom: clamp(56px,10vw,88px) !important;
  }
  .sun-hero-badges {
    margin-left: -20px;
    margin-right: -20px;
    padding: 0 20px;
    mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 20px), transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 20px), transparent 100%);
  }
  .sun-hero-badge {
    padding: 7px 14px;
    font-size: 12px;
  }
  .sun-dashboard-grid {
    grid-template-columns: 1fr !important;
  }
  .sun-dashboard-visual {
    order: -1;
  }
}
