/* Local contrast corrections. Keep image subjects and existing motion intact. */
:root {
  --accent: #a33c1c;
  --muted: #5e6267;
}

/* Local bottom scrims follow captions through responsive crops and hover zoom. */
.tile::after,
.cfg-photo::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 120px;
  background: linear-gradient(to top, rgba(16, 19, 23, .76), rgba(16, 19, 23, .50) 48%, transparent);
  pointer-events: none;
}
.tile-cap,
.cfg-meta { z-index: 1; color: #fff; }
.tile-cap { text-shadow: 0 1px 3px rgba(0, 0, 0, .35); }

.slice-cap {
  background: linear-gradient(to top, rgba(16, 19, 23, .82), rgba(16, 19, 23, .58) 62%, transparent);
  color: #fff;
}
.slice-cap span { color: #fff; }
.person figcaption {
  padding-top: 48px;
  background: linear-gradient(to top, rgba(16, 19, 23, .88), rgba(16, 19, 23, .62) 68%, transparent);
  color: #fff;
}
.person span { color: #fff; }

/* The original universal child rule placed the photo above its scrim. */
.pack--feat { isolation: isolate; }
.pack--feat > img { position: absolute; z-index: -2; }
.pack--feat::after {
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(16, 19, 23, .78), rgba(16, 19, 23, .56) 64%, rgba(16, 19, 23, .12));
}
.pack--feat .from,
.pack--feat ul { color: #fff; }
.pack--feat h3,
.pack--feat .amt { color: #fff; }

/* Small labels need full normal-text contrast on dark surfaces. */
.cfg-block h3,
.cfg-price small,
.config .section-head p,
.range-row { color: #c5c7c9; }
.footer-col h4,
.footer-bottom,
.footer-about,
.mm-foot { color: #bfc1c3; }
.proc-row--wide .proc-k { color: #ffae8e; }
.proc-row--wide .proc-copy p { color: #f4f3ef; }
.field input::placeholder,
.field textarea::placeholder { color: #62666b; opacity: 1; }

@media (min-width: 761px) {
  .svc-box.is-on { background: #257b29; }
}
@media (max-width: 760px) {
  .pack--feat::after {
    background: linear-gradient(to top, rgba(16, 19, 23, .88), rgba(16, 19, 23, .65) 72%, rgba(16, 19, 23, .22));
  }
}
