.zombie-hub {
  overflow: clip;
}

.zombie-hub .section {
  position: relative;
}

.zombie-hub .section + .section::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: min(100% - (var(--container-padding) * 2), var(--container));
  height: 1px;
  transform: translateX(-50%);
  background: var(--color-steel-line);
  content: "";
}

.zombie-hero {
  padding-top: var(--space-7);
}

.zombie-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  column-gap: calc(var(--space-6) + var(--space-4));
  align-items: center;
  min-height: 27rem;
}

.zombie-hero__content,
.zombie-hero__media,
.zombie-kit__copy,
.zombie-kit__media,
.zombie-group__media,
.zombie-steps,
.zombie-shelter__base,
.zombie-shelter__routine,
.zombie-bosses__panel > article,
.zombie-final__content {
  min-width: 0;
}

.zombie-hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.zombie-hero__content > :is(h1, p, nav, aside, div, span) {
  margin: 0;
}

.zombie-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  color: var(--color-muted-beige);
  font-size: var(--text-sm);
}

.zombie-hero h1 {
  max-width: 11ch;
  text-transform: uppercase;
}

.zombie-hero__lead {
  max-width: 36rem;
  color: var(--color-sand-beige);
  font-size: var(--text-lead);
  line-height: 1.55;
}

.zombie-crater {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
  width: min(100%, 27.5rem);
  padding: var(--space-4);
  border: 1px solid #526166;
  border-radius: var(--radius-card);
  background: #252e2e;
}

.zombie-crater h2 {
  margin: 0;
  font-size: 1.35rem;
}

.zombie-crater p {
  margin: 0;
  color: #c1cbc4;
  font-size: var(--text-sm);
  line-height: 1.55;
}

.zombie-hero__actions {
  width: 100%;
}

.zombie-hero__media {
  width: 100%;
  margin: 0;
  align-self: stretch;
}

.zombie-hero__media img {
  width: 100%;
  height: 100%;
  min-height: 27rem;
  object-fit: cover;
  object-position: 72% center;
}

.zombie-hero__media figcaption {
  padding: 0 var(--space-3) var(--space-3);
}

.zombie-section-head {
  max-width: 40rem;
  margin-bottom: var(--space-6);
}

.zombie-section-head > :last-child {
  margin-bottom: 0;
}

.zombie-section-head--approach { max-width: 37.5rem; }
.zombie-section-head--group { max-width: 35rem; }
.zombie-section-head--shelter { max-width: 38.75rem; }
.zombie-section-head--caution { max-width: 40rem; }
.zombie-section-head--bosses { max-width: 38.75rem; }
.zombie-section-head--learning { max-width: 37.5rem; }

.zombie-checklist__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.zombie-checklist__grid > * {
  min-width: 0;
  width: 100%;
}

.zombie-check-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.zombie-check-card > :is(h3, p, div, button) {
  margin: 0;
}

.zombie-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
}

.zombie-card__number,
.zombie-learning-card__number {
  color: var(--color-rust-orange);
  font-family: var(--font-technical);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.08em;
}

.zombie-check-card--document {
  border: 1px solid #a89770;
  border-radius: var(--radius-document);
  padding: var(--space-5);
}

.zombie-check-card--document .technical-label {
  margin: 0;
}

.zombie-tasks {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
}

.zombie-tasks label {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  min-height: 2.75rem;
  margin: 0;
  padding: var(--space-2) 0;
  color: inherit;
  font-size: var(--text-sm);
  font-weight: 400;
}

.zombie-tasks input {
  margin-top: 0.22rem;
}

.zombie-check-status {
  min-height: 1.5rem;
  color: var(--color-patina-green);
  font-size: var(--text-sm);
}

.zombie-document-links {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
}

.zombie-document-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: 2.75rem;
  color: var(--color-ash-graphite);
  font-weight: 600;
}

.zombie-document-links a:hover {
  color: var(--color-military-green);
}

.zombie-verify-button {
  align-self: flex-start;
  min-height: 2.25rem;
  padding: var(--space-2) var(--space-3);
  border-color: var(--color-patina-green);
  background: transparent;
  color: var(--color-sand-beige);
  font-family: var(--font-technical);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
}

.zombie-disclosure {
  padding: var(--space-3);
  border-left: 2px solid var(--color-patina-green);
  background: rgb(137 148 119 / 10%);
}

.zombie-disclosure p {
  margin: 0;
  color: var(--color-muted-beige);
  font-size: var(--text-sm);
}

.zombie-approach__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.zombie-approach__grid > * {
  min-width: 0;
  width: 100%;
}

.zombie-approach-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.zombie-approach-card > :is(h3, p, div, span, button) {
  margin: 0;
}

.zombie-range-mark {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  min-height: 2.75rem;
}

.zombie-range-mark span {
  display: block;
  height: 1px;
  flex: 1 1 0;
  min-width: 0;
  background: var(--color-patina-green);
}

.zombie-range-mark span:nth-child(2) {
  height: 0.55rem;
  flex: 0 0 0.55rem;
  border: 1px solid var(--color-rust-orange);
  background: var(--color-rust-orange);
}

.zombie-choice-rule {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: var(--space-5);
  margin-top: var(--space-5);
}

.zombie-choice-rule > * {
  min-width: 0;
  margin: 0;
}

.zombie-choice-rule ul {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  padding: 0;
  list-style: none;
}

.zombie-choice-rule li {
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  border-left: 1px solid var(--color-steel-line);
  color: var(--color-patina-green);
  font-family: var(--font-technical);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.zombie-kit__top {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-6);
  align-items: start;
}

.zombie-kit__copy {
  max-width: 40.625rem;
}

.zombie-kit__blocks {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
}

.zombie-kit__blocks > div {
  min-width: 0;
}

.zombie-kit__blocks > div > :last-child {
  margin-bottom: 0;
}

.zombie-kit__blocks .technical-label {
  margin-bottom: var(--space-2);
}

.zombie-kit__media {
  width: 100%;
  margin: 0;
}

.zombie-kit__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.zombie-kit__media figcaption {
  padding: 0 var(--space-3) var(--space-3);
}

.zombie-kit__principles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-6);
}

.zombie-kit__principles > div {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-steel-line);
}

.zombie-kit__principles span {
  color: var(--color-rust-orange);
  font-family: var(--font-technical);
  font-size: var(--text-sm);
}

.zombie-kit__principles p {
  margin: 0;
}

.zombie-group__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-6);
  align-items: start;
}

.zombie-group__media {
  width: 100%;
  margin: 0;
}

.zombie-group__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.zombie-group__media figcaption {
  padding: 0 var(--space-3) var(--space-3);
}

.zombie-steps {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}

.zombie-step {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-4);
  border: var(--border-default);
  background: var(--color-dark-steel);
}

.zombie-step > span {
  color: var(--color-rust-orange);
  font-family: var(--font-technical);
  font-size: 1.125rem;
  font-weight: 600;
}

.zombie-step > div {
  min-width: 0;
}

.zombie-step h3 {
  margin-bottom: var(--space-2);
}

.zombie-step p {
  margin: 0;
}

.zombie-step--document {
  border-color: #a89770;
  background: var(--color-map-paper);
  color: var(--color-ash-graphite);
}

.zombie-step--document :is(h3, strong) {
  color: var(--color-ash-graphite);
}

.zombie-step--document p {
  color: #3c4138;
}

.zombie-shelter__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.zombie-shelter__grid > * {
  min-width: 0;
  width: 100%;
}

.zombie-shelter__base,
.zombie-shelter__routine {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
}

.zombie-shelter__base {
  border: var(--border-default);
  background: var(--color-military-green);
}

.zombie-shelter__base > :is(h3, p, a),
.zombie-shelter__routine > :is(h3, p, ol) {
  margin: 0;
}

.zombie-shelter__base p {
  color: var(--color-bone-white);
}

.zombie-shelter__base a:not(.button) {
  color: var(--color-bone-white);
}

.zombie-shelter__base .button {
  border-color: var(--color-bone-white);
  color: var(--color-bone-white);
}

.zombie-shelter__routine {
  border: 1px solid #a89770;
}

.zombie-shelter__routine ol {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
  padding-left: 1.35em;
}

.zombie-shelter__warning {
  width: min(100%, 45rem);
  margin-top: var(--space-5);
}

.zombie-caution__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.zombie-caution__grid > * {
  min-width: 0;
  width: 100%;
}

.zombie-caution-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.zombie-caution-card > :is(h3, p, div) {
  margin: 0;
}

.zombie-status-note {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  width: min(100%, 38.75rem);
  margin-top: var(--space-5);
  padding: var(--space-5);
}

.zombie-status-note > :is(span, h3, p) {
  margin: 0;
}

.zombie-bosses__panel {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border: 3px double var(--color-steel-line);
  background: var(--color-concrete-graphite);
}

.zombie-bosses__panel > article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-5);
  border-right: 1px solid var(--color-steel-line);
}

.zombie-bosses__panel > article:last-child {
  border-right: 0;
}

.zombie-bosses__panel > article > :is(span, h3, p) {
  margin: 0;
}

.zombie-learning__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-5);
}

.zombie-learning__grid > * {
  min-width: 0;
  width: 100%;
}

.zombie-learning-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  min-height: 100%;
  padding: var(--space-5);
  border: var(--border-default);
  border-radius: var(--radius-card);
  background: var(--color-dark-steel);
  color: var(--color-sand-beige);
  text-decoration: none;
  transition: border-color var(--transition-base), transform var(--transition-base);
}

.zombie-learning-card > :is(h3, p, span) {
  margin: 0;
}

.zombie-learning-card h3 {
  margin-top: var(--space-2);
}

.zombie-learning-card p {
  color: var(--color-muted-beige);
}

.zombie-learning-card__more {
  margin-top: auto !important;
  color: var(--color-patina-green);
  font-family: var(--font-technical);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
}

.zombie-learning-card:hover {
  border-color: var(--color-patina-green);
  color: var(--color-bone-white);
  transform: translateY(-2px);
}

.zombie-final__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding: var(--space-6);
  border: 3px double var(--color-patina-green);
  background: var(--color-military-green);
}

.zombie-final__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  width: min(100%, 38.75rem);
  margin-inline: auto;
  text-align: center;
}

.zombie-final__content > :is(span, h2, p, div) {
  margin: 0;
}

.zombie-final__content p {
  color: var(--color-bone-white);
}

.zombie-final__content .technical-label {
  color: var(--color-bone-white);
}

.zombie-final__actions {
  justify-content: center;
}

.zombie-final__actions .button {
  border-color: var(--color-bone-white);
}

.zombie-final__actions .button--secondary {
  color: var(--color-bone-white);
}

@media (max-width: 61.25rem) {
  .zombie-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }

  .zombie-hero__content {
    max-width: 40rem;
  }

  .zombie-hero__media img {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 62.5rem) {
  .zombie-learning__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 60rem) {
  .zombie-approach__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .zombie-approach__grid > :last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 56.25rem) {
  .zombie-checklist__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .zombie-checklist__grid > :last-child {
    grid-column: 1 / -1;
  }

  .zombie-group__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .zombie-group__media {
    max-width: 100%;
  }

  .zombie-bosses__panel {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
    padding: var(--space-3);
  }

  .zombie-bosses__panel > article {
    border-right: 0;
    border-bottom: 1px solid var(--color-steel-line);
  }

  .zombie-bosses__panel > article:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 57.5rem) {
  .zombie-kit__top {
    grid-template-columns: minmax(0, 1fr);
  }

  .zombie-kit__copy {
    max-width: 40rem;
  }
}

@media (max-width: 51.25rem) {
  .zombie-shelter__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 48.75rem) {
  .zombie-kit__principles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .zombie-kit__principles > :last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 47.5rem) {
  .zombie-hero {
    padding-top: var(--space-6);
  }

  .zombie-hero__actions,
  .zombie-final__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .zombie-hero__actions > *,
  .zombie-final__actions > * {
    width: 100%;
  }

  .zombie-choice-rule {
    grid-template-columns: minmax(0, 1fr);
  }

  .zombie-choice-rule ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2);
  }

  .zombie-choice-rule li {
    border: 1px solid var(--color-steel-line);
  }
}

@media (max-width: 42.5rem) {
  .zombie-approach__grid,
  .zombie-checklist__grid,
  .zombie-caution__grid,
  .zombie-learning__grid,
  .zombie-kit__principles {
    grid-template-columns: minmax(0, 1fr);
  }

  .zombie-approach__grid > :last-child,
  .zombie-checklist__grid > :last-child,
  .zombie-kit__principles > :last-child {
    grid-column: auto;
  }
}

@media (max-width: 38.75rem) {
  .zombie-step {
    grid-template-columns: minmax(0, 1fr);
  }

  .zombie-step > span {
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--color-steel-line);
  }

  .zombie-final__panel {
    padding: var(--space-5) var(--space-4);
  }
}

@media (prefers-reduced-motion: reduce) {
  .zombie-learning-card:hover {
    transform: none;
  }
}
