/* ==========================================================
   GENX IMPACT — page-specific styles only
   Global shell remains owned by styles.css / service-pages.css
   ========================================================== */
.impact-page {
  background:
    radial-gradient(circle at 88% 7%, rgba(22,184,173,.13), transparent 26%),
    linear-gradient(180deg, #fbfefe 0%, #ffffff 32%, #f6f9fa 100%);
}

.impact-hero {
  padding: 142px 0 82px;
  border-bottom: 1px solid var(--line);
}

.impact-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
  gap: 68px;
  align-items: center;
}

.impact-eyebrow,
.impact-label {
  color: var(--brand-dark);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.impact-hero h1 {
  max-width: 850px;
  margin: 18px 0 24px;
  font-size: clamp(3.25rem, 6vw, 6.2rem);
  line-height: .94;
  letter-spacing: -.07em;
}

.impact-hero h1 em {
  color: var(--brand);
  font-style: normal;
}

.impact-lede {
  max-width: 750px;
  margin: 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.72;
}

.impact-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.impact-assurance {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 23px;
  color: #506172;
  font-size: .8rem;
  font-weight: 750;
}

.impact-assurance span::before {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  margin-right: 7px;
  border-radius: 999px;
  background: var(--brand-soft);
  color: var(--brand-dark);
  font-size: .7rem;
  font-weight: 900;
}

.impact-commitment {
  position: relative;
  overflow: hidden;
  padding: 32px;
  border-radius: 26px;
  background: var(--ink);
  color: #fff;
  box-shadow: 0 30px 90px rgba(13,23,39,.20);
}

.impact-commitment::after {
  content: "";
  position: absolute;
  width: 270px;
  height: 270px;
  right: -105px;
  top: -105px;
  border: 44px solid rgba(22,184,173,.14);
  border-radius: 50%;
}

.impact-commitment > * { position: relative; z-index: 1; }

.impact-commitment .impact-label { color: #80e5de; }

.impact-hours {
  margin: 18px 0 5px;
  font-size: clamp(4rem, 7vw, 6.8rem);
  line-height: .88;
  font-weight: 900;
  letter-spacing: -.075em;
}

.impact-hours span {
  display: block;
  margin-top: 10px;
  font-size: .82rem;
  line-height: 1.4;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #9af0ea;
}

.impact-commitment > p {
  max-width: 38ch;
  margin: 20px 0 26px;
  color: rgba(255,255,255,.72);
  line-height: 1.62;
}

.impact-commitment-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.impact-commitment-list li {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,.12);
}

.impact-commitment-list b {
  color: #80e5de;
  font-size: .72rem;
}

.impact-commitment-list strong {
  display: block;
  margin-bottom: 3px;
  font-size: .9rem;
}

.impact-commitment-list small {
  display: block;
  color: rgba(255,255,255,.6);
  line-height: 1.45;
}

.impact-section {
  padding: 90px 0;
}

.impact-section.alt {
  background: var(--soft);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.impact-section.dark {
  background: var(--ink);
  color: #fff;
}

.impact-section-head {
  display: grid;
  grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr);
  gap: 60px;
  align-items: start;
  margin-bottom: 38px;
}

.impact-section-head h2,
.impact-copy h2 {
  max-width: 780px;
  margin: 10px 0 0;
  font-size: clamp(2.35rem, 4.5vw, 4.7rem);
  line-height: .98;
  letter-spacing: -.06em;
}

.impact-section-head p,
.impact-copy > p {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.72;
}

.impact-section.dark .impact-section-head p,
.impact-section.dark .impact-copy > p {
  color: rgba(255,255,255,.68);
}

.impact-two-track,
.impact-grid-3,
.impact-grid-4,
.impact-service-grid {
  display: grid;
  gap: 18px;
}

.impact-two-track { grid-template-columns: repeat(2, minmax(0,1fr)); }
.impact-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.impact-grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.impact-service-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }

.impact-card {
  position: relative;
  overflow: hidden;
  min-width: 0;
  padding: 27px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(14,35,50,.055);
}

.impact-card.featured {
  border-color: rgba(22,184,173,.5);
  background: linear-gradient(145deg, #ffffff, #eefbf9);
}

.impact-card .impact-label { display: block; margin-bottom: 24px; }

.impact-card h3 {
  margin: 0 0 12px;
  font-size: 1.45rem;
  line-height: 1.08;
  letter-spacing: -.04em;
}

.impact-card p {
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.65;
}

.impact-card ul {
  display: grid;
  gap: 10px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.impact-card li {
  position: relative;
  padding-left: 22px;
  color: #445368;
  font-size: .84rem;
  line-height: 1.5;
}

.impact-card li::before {
  content: "↗";
  position: absolute;
  left: 0;
  color: var(--brand-dark);
  font-weight: 900;
}

.impact-service-card {
  display: flex;
  min-height: 245px;
  flex-direction: column;
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
}

.impact-service-card .num {
  color: var(--brand-dark);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .12em;
}

.impact-service-card h3 {
  margin: 22px 0 10px;
  font-size: 1.3rem;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.impact-service-card p {
  margin: 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.6;
}

.impact-service-card a {
  margin-top: auto;
  padding-top: 22px;
  color: var(--ink);
  font-size: .8rem;
  font-weight: 900;
  text-decoration: none;
}

.impact-scope {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
}

.impact-scope > div { padding: 34px; }
.impact-scope > div + div { border-left: 1px solid var(--line); background: #f8fafb; }
.impact-scope h3 { margin: 12px 0 16px; font-size: 1.55rem; letter-spacing: -.04em; }
.impact-scope p { color: var(--muted); line-height: 1.65; }
.impact-scope ul { display: grid; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }
.impact-scope li { position: relative; padding-left: 22px; color: #455468; font-size: .87rem; line-height: 1.5; }
.impact-scope li::before { content: "✓"; position: absolute; left: 0; color: var(--brand-dark); font-weight: 900; }
.impact-scope .not-covered li::before { content: "—"; color: #7b8796; }

.impact-framework {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 62px;
  align-items: start;
}

.impact-framework-list {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  background: rgba(255,255,255,.11);
}

.impact-framework-item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 18px;
  padding: 20px 22px;
  background: #102034;
}

.impact-framework-item b {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(22,184,173,.14);
  color: #80e5de;
  font-size: .75rem;
}

.impact-framework-item strong { display: block; margin: 2px 0 5px; }
.impact-framework-item p { margin: 0; color: rgba(255,255,255,.6); font-size: .84rem; line-height: 1.5; }

.impact-process {
  counter-reset: impact-step;
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 0;
  margin-top: 34px;
  border-top: 1px solid var(--line);
}

.impact-step {
  counter-increment: impact-step;
  min-width: 0;
  padding: 24px 22px 0 0;
}

.impact-step::before {
  content: "0" counter(impact-step);
  display: block;
  margin-bottom: 22px;
  color: var(--brand-dark);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .12em;
}

.impact-step h3 { margin: 0 0 9px; font-size: 1.05rem; }
.impact-step p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }

.impact-principle {
  padding: 26px 0;
  border-top: 1px solid var(--line);
}

.impact-principle h3 { margin: 0 0 8px; font-size: 1.15rem; }
.impact-principle p { max-width: 60ch; margin: 0; color: var(--muted); line-height: 1.62; }

.impact-faq {
  max-width: 920px;
  margin-left: auto;
}

.impact-faq details {
  border-top: 1px solid var(--line);
}

.impact-faq details:last-child { border-bottom: 1px solid var(--line); }

.impact-faq summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 0;
  cursor: pointer;
  color: var(--ink);
  font-size: .94rem;
  font-weight: 850;
  list-style: none;
}

.impact-faq summary::-webkit-details-marker { display: none; }
.impact-faq summary::after { content: "+"; color: var(--brand-dark); font-size: 1.15rem; }
.impact-faq details[open] summary::after { content: "−"; }
.impact-faq details p { max-width: 760px; margin: -4px 0 22px; color: var(--muted); line-height: 1.68; }

.impact-apply {
  padding: 88px 0;
  background: linear-gradient(135deg, #0e8681, #0d586b 72%, #0d1727);
  color: #fff;
}

.impact-apply-grid {
  display: grid;
  grid-template-columns: 1fr .85fr;
  gap: 60px;
  align-items: center;
}

.impact-apply h2 {
  max-width: 760px;
  margin: 12px 0 18px;
  font-size: clamp(2.5rem, 5vw, 4.7rem);
  line-height: .97;
  letter-spacing: -.06em;
}

.impact-apply p { max-width: 700px; margin: 0; color: rgba(255,255,255,.72); line-height: 1.7; }

.impact-apply-card {
  padding: 27px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  background: rgba(5,29,42,.34);
  backdrop-filter: blur(10px);
}

.impact-apply-card strong { display: block; margin-bottom: 15px; font-size: 1.05rem; }
.impact-apply-card ul { display: grid; gap: 9px; margin: 0 0 22px; padding: 0; list-style: none; }
.impact-apply-card li { position: relative; padding-left: 20px; color: rgba(255,255,255,.72); font-size: .84rem; line-height: 1.45; }
.impact-apply-card li::before { content: "↗"; position: absolute; left: 0; color: #8bece5; }
.impact-apply-card .btn { width: 100%; justify-content: center; background: #fff; color: var(--ink); }

.impact-disclaimer {
  margin-top: 22px;
  color: #738092;
  font-size: .76rem;
  line-height: 1.55;
}

.home-impact-program {
  padding: 72px 0;
  border-top: 1px solid var(--line);
  background: linear-gradient(135deg, #eefaf8 0%, #fff 58%);
}

.home-impact-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 44px;
  align-items: center;
  padding: 32px 34px;
  border: 1px solid #cfe7e4;
  border-radius: 24px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 20px 60px rgba(17,58,62,.07);
}

.home-impact-card h2 {
  max-width: 740px;
  margin: 9px 0 10px;
  font-size: clamp(2rem, 3.7vw, 3.5rem);
  line-height: 1;
  letter-spacing: -.055em;
}

.home-impact-card p { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.65; }
.home-impact-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }

@media (max-width: 1180px) and (min-width: 821px) {
  .impact-hero { padding: 124px 0 68px; }
  .impact-hero-grid { grid-template-columns: minmax(0,1.08fr) minmax(330px,.92fr); gap: 38px; }
  .impact-commitment { padding: 27px; }
  .impact-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .impact-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .impact-process { grid-template-columns: repeat(3,minmax(0,1fr)); row-gap: 30px; }
}

@media (max-height: 800px) and (min-width: 821px) {
  .impact-hero { padding-top: 112px; padding-bottom: 58px; }
  .impact-hours { font-size: 4.9rem; }
  .impact-section { padding-top: 72px; padding-bottom: 72px; }
}

@media (max-width: 1040px) {
  .impact-hero-grid,
  .impact-section-head,
  .impact-framework,
  .impact-apply-grid,
  .home-impact-card { grid-template-columns: 1fr; }
  .impact-two-track,
  .impact-scope { grid-template-columns: 1fr; }
  .impact-scope > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .impact-grid-3 { grid-template-columns: 1fr; }
  .home-impact-actions { justify-content: flex-start; }
}

@media (max-width: 820px) {
  .impact-hero { padding: 108px 0 58px; }
  .impact-hero-grid { gap: 34px; }
  .impact-commitment { border-radius: 20px; }
  .impact-section, .impact-apply, .home-impact-program { padding-top: 62px; padding-bottom: 62px; }
  .impact-service-grid, .impact-grid-4 { grid-template-columns: 1fr; }
  .impact-process { grid-template-columns: 1fr; gap: 0; border-top: 0; }
  .impact-step { padding: 20px 0; border-top: 1px solid var(--line); }
  .impact-step::before { margin-bottom: 10px; }
  .home-impact-card { padding: 26px; gap: 24px; border-radius: 18px; }
}


/* ==========================================================
   GENX IMPACT — PALETTE NORMALIZATION
   Explicitly follows the existing GenX service-page rhythm:
   white / soft / white / soft / dark / white / soft / white / dark.
   Teal is an accent, not the dominant section background.
   ========================================================== */

.impact-page {
  background: #ffffff;
}

/* Hero — same light editorial canvas used across core pages */
.impact-page .impact-hero {
  background:
    radial-gradient(circle at 88% 8%, rgba(22,184,173,.09), transparent 27%),
    linear-gradient(180deg, #fbfdfd 0%, #ffffff 100%);
  color: var(--ink);
}

.impact-page .impact-hero h1 { color: var(--ink); }
.impact-page .impact-hero h1 em { color: var(--brand); }
.impact-page .impact-hero .impact-lede { color: var(--muted); }

/* Default section = white */
.impact-page .impact-section {
  background: #ffffff;
  color: var(--ink);
  border-color: var(--line);
}

.impact-page .impact-section .impact-section-head h2,
.impact-page .impact-section .impact-copy h2,
.impact-page .impact-section h3 {
  color: var(--ink);
}

.impact-page .impact-section .impact-section-head p,
.impact-page .impact-section .impact-copy > p,
.impact-page .impact-section p {
  color: var(--muted);
}

/* Secondary explanatory sections = very light neutral grey */
.impact-page .impact-section.alt {
  background: #f5f8f9;
  color: var(--ink);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.impact-page .impact-section.alt .impact-section-head h2,
.impact-page .impact-section.alt h3 {
  color: var(--ink);
}

.impact-page .impact-section.alt .impact-section-head p,
.impact-page .impact-section.alt p {
  color: var(--muted);
}

/* Only the selection framework uses the strong dark treatment */
.impact-page .impact-section.dark {
  background:
    radial-gradient(circle at 90% 12%, rgba(22,184,173,.12), transparent 31%),
    #0d1727;
  color: #ffffff;
  border-color: rgba(255,255,255,.08);
}

.impact-page .impact-section.dark .impact-section-head h2,
.impact-page .impact-section.dark .impact-copy h2,
.impact-page .impact-section.dark h3,
.impact-page .impact-section.dark strong {
  color: #ffffff;
}

.impact-page .impact-section.dark .impact-section-head p,
.impact-page .impact-section.dark .impact-copy > p,
.impact-page .impact-section.dark p {
  color: rgba(255,255,255,.68);
}

.impact-page .impact-section.dark .impact-label {
  color: #80e5de;
}

/* Cards stay light regardless of surrounding neutral section */
.impact-page .impact-card,
.impact-page .impact-service-card,
.impact-page .impact-scope,
.impact-page .impact-faq details {
  background: #ffffff;
  color: var(--ink);
  border-color: var(--line);
}

.impact-page .impact-card h3,
.impact-page .impact-service-card h3,
.impact-page .impact-scope h3,
.impact-page .impact-faq summary {
  color: var(--ink);
}

.impact-page .impact-card p,
.impact-page .impact-service-card p,
.impact-page .impact-scope p,
.impact-page .impact-faq details p {
  color: var(--muted);
}

/* Featured pro-bono track gets a restrained brand tint only */
.impact-page .impact-card.featured {
  background: linear-gradient(145deg, #ffffff 0%, #eefaf8 100%);
  border-color: rgba(22,184,173,.38);
}

/* Scope split remains neutral, not teal */
.impact-page .impact-scope > div:first-child { background: #ffffff; }
.impact-page .impact-scope > div + div { background: #f8fafb; }

/* Process and FAQ stay on the light canvas */
.impact-page #how-it-works,
.impact-page .impact-section:has(.impact-faq) {
  background: #ffffff;
}

/* Program principles remain soft-grey */
.impact-page .impact-section.alt .impact-principle {
  border-color: var(--line);
}

/* Final CTA — dark GenX panel, not a full teal gradient */
.impact-page .impact-apply {
  background:
    radial-gradient(circle at 82% 20%, rgba(22,184,173,.16), transparent 35%),
    linear-gradient(135deg, #0d1727 0%, #10243a 100%);
  color: #ffffff;
}

.impact-page .impact-apply h2 { color: #ffffff; }
.impact-page .impact-apply p { color: rgba(255,255,255,.72); }
.impact-page .impact-apply .impact-label { color: #80e5de !important; }

.impact-page .impact-apply-card {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.14);
  box-shadow: 0 20px 55px rgba(0,0,0,.15);
}

.impact-page .impact-apply-card strong { color: #ffffff; }
.impact-page .impact-apply-card li { color: rgba(255,255,255,.72); }
.impact-page .impact-apply-card .btn {
  background: #ffffff;
  color: var(--ink);
  border-color: #ffffff;
}

/* Homepage Impact teaser remains subtle */
.home-impact-program {
  background: #f5f8f9;
}

.home-impact-card {
  background: #ffffff;
  border-color: var(--line);
  box-shadow: 0 18px 45px rgba(14,35,50,.055);
}

/* Prevent accidental low-contrast white headings on light sections */
.impact-page .impact-section:not(.dark) h2,
.impact-page .impact-section:not(.dark) h3,
.impact-page .impact-section:not(.dark) strong {
  color: var(--ink);
}

/* Compact laptops: keep the refined service-page density */
@media (max-width: 1366px) and (min-width: 1041px) {
  .impact-page .impact-hero { padding-top: 118px; padding-bottom: 64px; }
  .impact-page .impact-section { padding-top: 74px; padding-bottom: 74px; }
  .impact-page .impact-apply { padding-top: 74px; padding-bottom: 74px; }
}
