/* Shared atmosphere, restrained motion and layout repairs across the site. */
body.foundation-v8 main > section.section-light {
  background-image: radial-gradient(ellipse 48% 62% at 96% 9%, rgba(178, 91, 70, .065), transparent 72%),
    radial-gradient(ellipse 38% 48% at 0 100%, rgba(40, 73, 96, .055), transparent 72%);
}
body.foundation-v8 main > section.section-cream {
  background-image: radial-gradient(ellipse 52% 70% at 3% 8%, rgba(169, 43, 37, .055), transparent 73%),
    linear-gradient(145deg, rgba(255, 255, 255, .26), transparent 50%);
}
body.foundation-v8 main > section.section-ink {
  background-image: radial-gradient(ellipse 55% 80% at 100% 12%, rgba(164, 49, 43, .13), transparent 68%),
    radial-gradient(ellipse 40% 60% at 0 100%, rgba(53, 99, 132, .13), transparent 70%);
}
body.foundation-v8 main section :is(.shell, .section-heading, article, aside, h1, h2, h3, p) { min-width: 0; }
body.foundation-v8 main :is(h1, h2, h3) { text-wrap: balance; overflow-wrap: break-word; }
body.foundation-v8 main h2 { line-height: 1.08; }
body.foundation-v8 main p { overflow-wrap: break-word; }
body.foundation-v8 main :is(.eyebrow, .home-kicker) { position: relative; }

/* The main response panels share a clear, layered finish. */
body.foundation-v8 main > :is(.home-cta,.about-next,.eh-close,.ai-next,.dh-close,.c09-close,.cloud-next,.vh-close,.data-next,.ds-cta,.fh-close,.pp8-cta,.pm-cta,.wf-next) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-image: radial-gradient(ellipse 50% 130% at 100% 0%, rgba(190, 61, 52, .17), transparent 70%),
    linear-gradient(125deg, rgba(255, 255, 255, .035), transparent 56%);
  background-size: 125% 125%, 100% 100%;
  animation: closingAtmosphere 18s ease-in-out infinite alternate;
}
@keyframes closingAtmosphere { from { background-position: 0 0, 0 0; } to { background-position: 100% 100%, 0 0; } }
body.foundation-v8 main > :is(.home-cta,.about-next,.eh-close,.ai-next,.dh-close,.c09-close,.cloud-next,.vh-close,.data-next,.ds-cta,.fh-close,.pp8-cta,.pm-cta,.wf-next) .btn-primary {
  min-height: 52px;
  width: fit-content;
  max-width: 100%;
  white-space: normal;
}
body.foundation-v8 main .btn-primary { transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease); }
body.foundation-v8 main .btn-primary:hover { transform: translateY(-3px); box-shadow: 0 17px 38px rgba(111,24,22,.26); }
body.foundation-v8 main .btn-primary:focus-visible,
body.foundation-v8 main a:focus-visible { outline: 2px solid var(--red-500); outline-offset: 4px; }
body.foundation-v8 main :is(.eh-close__grid,.vh-close__grid,.fh-close__grid,.dh-close__grid,.wf-next__grid) { row-gap: 24px; }

/* Complete provider grid and give agencies a compact, clearly labeled identity. */
.phase02-home .home-partners__logos { grid-template-columns: repeat(4,minmax(0,1fr)); }
.phase02-home .home-partner-logo:nth-child(n) { border-right: 1px solid rgba(16,31,45,.14); border-bottom: 1px solid rgba(16,31,45,.14); }
.phase02-home .home-partner-logo:nth-child(4n) { border-right: 0; }
.phase02-home .home-partner-logo:nth-last-child(-n+2) { border-bottom: 0; }
.phase02-home .home-partner-logo { min-height: 100px; }
.phase02-home .home-partner-logo img { max-height: 58px; object-fit: contain; }
.phase02-home .home-agencies { grid-template-columns: 1.25fr repeat(5,minmax(0,1fr)); }
.phase02-home .home-agencies > * { min-width: 0; padding: 18px 14px; }
.phase02-home .home-agencies span { font-size: .59rem; }
.phase02-home .home-agencies strong { display: flex; flex-direction: column; gap: 9px; font-size: .72rem; }
.phase02-home .home-agencies strong b,
.phase08-ecosystem .eh-agency__mark b {
  display: inline-grid; place-items: center; width: fit-content; min-width: 45px; min-height: 29px;
  padding: 5px 7px; border: 1px solid rgba(169,43,37,.25); color: var(--red-600);
  background: rgba(169,43,37,.055); font: 700 .62rem var(--font-mono); letter-spacing: .06em;
}
.phase08-ecosystem .eh-agency { transition: background .3s var(--ease), padding .3s var(--ease); }
.phase08-ecosystem .eh-agency:hover { background: rgba(255,255,255,.52); padding-inline: 12px; }
.phase08-ecosystem .eh-agency__mark b { min-width: 54px; min-height: 38px; }

/* Logos extracted from the supplied capability statement. */
.phase08-ecosystem .eh-rel__logos {
  min-height: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1px; padding: 1px; border: 1px solid var(--line-dark);
  background: rgba(10,21,34,.13);
}
.phase08-ecosystem .eh-rel__logos::before { content: none; }
.phase08-ecosystem .eh-rel__logo {
  min-width: 0; min-height: 150px; display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 15px; padding: 22px 14px; background: #fffdfa;
  transition: background .35s var(--ease), transform .35s var(--ease);
}
.phase08-ecosystem .eh-rel__logo:hover { background: #f7eee8; transform: translateY(-3px); }
.phase08-ecosystem .eh-rel__logo img { display: block; width: 100%; max-width: 155px; height: 60px; object-fit: contain; }
.phase08-ecosystem .eh-rel__logo:last-child img { max-width: 65px; }
.phase08-ecosystem .eh-rel__logo span { color: #4d5a66; font: 600 .59rem/1.35 var(--font-mono); letter-spacing: .055em; text-align: center; }
.phase08-ecosystem .eh-rel__invite { align-items: flex-start; background: #101e2d; color: #fff; text-decoration: none; }
.phase08-ecosystem .eh-rel__invite:hover { background: #182e42; }
.phase08-ecosystem .eh-rel__invite small { color: #cf837d; font: 600 .57rem var(--font-mono); letter-spacing: .13em; }
.phase08-ecosystem .eh-rel__invite strong { font-size: 1.15rem; line-height: 1.15; }
.phase08-ecosystem .eh-rel__invite span { color: #d6dee5; text-align: left; }

.closing-invite { max-width: 51ch; margin: 22px 0 22px; color: var(--text-muted); }
.policy-contact { margin-top: 38px; padding: 30px; border: 1px solid var(--line-dark); background: linear-gradient(135deg,#fffdfa,#f1e8df); }
.policy-contact p { margin: 14px 0 22px; }

@media (min-width: 1025px) {
  /* Performance chapters sit beside a rail; their shells must fit that column. */
  .pp8-dossier__chapters .shell { width: calc(100% - 96px); max-width: none; }
}
@media (min-width: 1101px) {
  .phase02-home .home-partners__logos { grid-template-columns: repeat(7,minmax(0,1fr)); }
  .phase02-home .home-partner-logo { min-height: 92px; padding: 12px; }
  .phase02-home .home-partner-logo:nth-child(n) { border-right: 1px solid rgba(16,31,45,.14); border-bottom: 1px solid rgba(16,31,45,.14); }
  .phase02-home .home-partner-logo:nth-child(7n) { border-right: 0; }
  .phase02-home .home-partner-logo:nth-last-child(-n+7) { border-bottom: 0; }
  .phase02-home .home-partner-logo img { max-height: 49px; }
}

@media (max-width: 1100px) {
  .phase02-home .home-agencies { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .phase02-home .home-agencies > *:nth-child(n) { border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
  .phase02-home .home-agencies > *:nth-child(3n) { border-right: 0; }
  .phase02-home .home-agencies > *:nth-last-child(-n+3) { border-bottom: 0; }
}
@media (max-width: 700px) {
  .phase02-home .home-partners__logos { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .phase02-home .home-partner-logo:nth-child(n) { border-right: 1px solid rgba(16,31,45,.14); border-bottom: 1px solid rgba(16,31,45,.14); }
  .phase02-home .home-partner-logo:nth-child(2n) { border-right: 0; }
  .phase02-home .home-partner-logo:nth-last-child(-n+2) { border-bottom: 0; }
  .phase02-home .home-agencies { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .phase02-home .home-agencies > *:nth-child(n) { border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
  .phase02-home .home-agencies > *:nth-child(2n) { border-right: 0; }
  .phase02-home .home-agencies > *:nth-last-child(-n+2) { border-bottom: 0; }
  .phase08-ecosystem .eh-rel__logos { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .phase08-ecosystem .eh-rel__logo { min-height: 132px; padding: 17px 11px; }
  .phase08-ecosystem .eh-rel__logo img { height: 53px; }
  .policy-contact { padding: 24px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  body.foundation-v8 main > :is(.home-cta,.about-next,.eh-close,.ai-next,.dh-close,.c09-close,.cloud-next,.vh-close,.data-next,.ds-cta,.fh-close,.pp8-cta,.pm-cta,.wf-next) { animation: none; }
  body.foundation-v8 main .btn-primary,
  .phase08-ecosystem .eh-rel__logo,
  .phase08-ecosystem .eh-agency { transition: none; }
}
