/* Shared dark sections: broad, static washes instead of animated light blobs. */
main :is(.journey, .compare-section, .evidence, .faq-2, .cta-2, .team-vision),
.contact-page .faq-2,
.blog-page .cta-2 {
  background-color: #101628;
  background-image:
    radial-gradient(ellipse at 100% 0, rgba(139, 47, 201, .13), transparent 68%),
    radial-gradient(ellipse at 0 100%, rgba(244, 123, 32, .08), transparent 65%);
}

main :is(.journey, .faq-2, .cta-2, .team-vision) > .aurora-layer {
  display: none;
}

.cta-2::before {
  background: none;
}

/* Paint through transparent borders without repeating the purple edge. */
.faq-2-full-link,
.faq-2-list details[open] summary .icon,
.cta-2-primary {
  background-origin: border-box;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.faq-2-full-link {
  min-height: 44px;
  justify-content: center;
  letter-spacing: 0;
}

.faq-2-full-link:is(:hover, :focus-visible) {
  gap: 8px;
}

.faq-2-full-link:focus-visible {
  outline: 2px solid #f5a623;
  outline-offset: 4px;
}

.programs-more {
  align-self: end;
  justify-self: end;
}

.comparison-table [role="rowheader"] .ml-tip-bubble {
  left: 0;
  right: auto;
  transform: translateY(4px);
}

.comparison-table [role="rowheader"] .ml-tip:is(:hover, :focus, :focus-within) .ml-tip-bubble {
  transform: translateY(0);
}

.comparison-table [role="rowheader"] .ml-tip-bubble::after {
  left: 20px;
  transform: none;
}

/* Short landscape screens cannot expose the content of stacked sticky plans. */
@media (max-width: 1050px) and (max-height: 600px) {
  .plan-grid > .plan-card {
    position: relative;
    top: auto;
    transform: none;
    will-change: auto;
  }
}

@media (max-width: 1024px) {
  .programs-head {
    gap: 24px;
    margin-bottom: 28px;
  }

  .programs-head .programs-more {
    align-self: start;
    justify-self: center;
  }

  .programs-head .full-link {
    min-height: 48px;
    justify-content: center;
    text-align: center;
  }
}

@media (max-width: 820px) {
  .contact-page .faq-2-head {
    text-align: center;
    margin-bottom: 0;
  }

  .contact-page .faq-2-head p {
    margin-inline: auto;
  }
}

@media (max-width: 760px) {
  .team {
    padding-top: 52px;
  }

  .team-head {
    gap: 28px;
    margin-bottom: 28px;
  }

  .programs {
    padding-top: 52px;
  }

  .programs-head {
    gap: 22px;
    margin-bottom: 24px;
  }

  .programs .plan-card-left {
    min-width: 0;
  }

  .programs .plan-card-btn {
    align-self: center;
    width: min(100%, 340px);
    min-height: 48px;
    justify-content: center;
    text-align: center;
    line-height: 1.45;
    letter-spacing: 0;
    white-space: normal;
  }

  .programs .plan-card-btn svg {
    flex-shrink: 0;
  }

  .mini-blog {
    padding-block: 52px;
  }

  .mini-blog-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
    margin-bottom: 24px;
  }

  .mini-blog-head .all-link {
    align-self: center;
    min-height: 44px;
    justify-content: center;
  }

  .extras {
    padding-bottom: 44px;
  }

  .photo-break {
    padding-bottom: 44px;
  }

  .swim-card .extra-bottom {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .swim-card .text-button {
    margin-inline: 0;
    min-height: 44px;
    text-align: center;
  }

  .faq-2 {
    padding: 48px 0;
  }

  .faq-2-grid {
    gap: 28px;
  }

  .faq-2-head {
    margin-bottom: 0;
  }

  .faq-2-head p {
    margin-bottom: 18px;
  }

  .cta-2,
  .team-next {
    padding: 56px 0 60px;
  }

  .cta-2-actions {
    width: min(100%, 360px);
    max-width: none;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .cta-2-primary,
  .cta-2-secondary {
    min-height: 48px;
    padding: 14px 18px;
    justify-content: center;
    text-align: center;
    line-height: 1.45;
    letter-spacing: 0;
  }

  .cta-2-actions svg {
    flex-shrink: 0;
  }
}
