/* One closing invitation shared by every page. */
.closing-cta {
  align-items: end;
  background: #1b2223;
  color: #f3f6f3;
  display: grid;
  gap: clamp(2rem, 8vw, 9rem);
  grid-template-columns: minmax(140px, .5fr) minmax(0, 1.5fr);
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(5rem, 9vw, 9rem);
  position: relative;
}
.closing-cta__ambient { inset: 0; overflow: hidden; pointer-events: none; position: absolute; z-index: -1; }
.closing-cta__ambient::before,
.closing-cta__ambient::after { content: ""; position: absolute; pointer-events: none; }
.closing-cta__ambient::before {
  inset: -35%;
  background: radial-gradient(ellipse at 23% 65%, #41a37140, transparent 33%), radial-gradient(ellipse at 78% 28%, #78c67b30, transparent 35%);
  animation: closing-aurora 14s ease-in-out infinite alternate;
}
.closing-cta__ambient::after {
  inset: -10%;
  background-image: radial-gradient(circle, #a7efb9aa 0 1px, transparent 2px), radial-gradient(circle, #7bcc9866 0 1.5px, transparent 3px);
  background-size: 193px 137px, 337px 229px;
  background-position: 17px 33px, 91px 73px;
  opacity: .45;
  animation: closing-dust 18s ease-in-out infinite alternate;
}
.closing-cta__flow { width: 100%; height: 100%; position: absolute; inset: 0; opacity: .65; }
.closing-cta__flow path { fill: none; vector-effect: non-scaling-stroke; }
.closing-cta__track { stroke: #9ee4b4; stroke-opacity: .13; stroke-width: 1; filter: drop-shadow(0 0 3px #8de8a455); }
.closing-cta__pulse {
  stroke: #a1f1ad;
  stroke-opacity: .75;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-dasharray: 3 97;
  filter: drop-shadow(0 0 3px #9effb9cc) drop-shadow(0 0 8px #68dc9677);
  animation: closing-flow 12s linear var(--flow-delay) infinite;
}
.closing-cta > .section-index { color: #a8bcb1; margin-bottom: 0; }
.closing-cta__content { align-items: end; display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr) auto; }
.closing-cta h2 { font-size: clamp(3rem, 5.5vw, 6rem); font-weight: 400; letter-spacing: -.07em; line-height: .96; margin: 0; max-width: 14ch; text-wrap: balance; }
.closing-cta .button { background: var(--green); color: var(--ink); min-width: 210px; }
.closing-cta .button:hover,
.closing-cta .button:focus-visible { background: #f3f6f3; }
.closing-cta .button:focus-visible { outline: 2px solid #f3f6f3; outline-offset: 5px; }
.blog-page > .closing-cta,
.blog-article-page > .closing-cta { margin-inline: calc(-1 * var(--pad)); margin-bottom: calc(-1 * clamp(4rem, 7vw, 7rem)); margin-top: clamp(4rem, 7vw, 7rem); }
@keyframes closing-flow { to { stroke-dashoffset: -100; } }
@keyframes closing-aurora { from { transform: translate3d(-4%, 3%, 0) rotate(-8deg) scale(.95); } to { transform: translate3d(5%, -4%, 0) rotate(8deg) scale(1.12); } }
@keyframes closing-dust { to { transform: translate3d(32px, -38px, 0); opacity: .7; } }
@media (max-width: 1100px) { .closing-cta { grid-template-columns: 1fr; gap: 2.5rem; } }
@media (max-width: 700px) {
  .closing-cta__content { grid-template-columns: 1fr; align-items: start; }
  .closing-cta h2 { font-size: clamp(2.6rem, 10vw, 4rem); }
  .closing-cta .button { justify-self: start; min-width: min(100%, 260px); }
  .closing-cta__flow { opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
  .closing-cta__ambient::before, .closing-cta__ambient::after, .closing-cta__pulse { animation: none; }
}
