/*
 * Responsive hardening for the public ArrowSpade site.
 * Deliberately loaded only by non-concept, non-legal routes so concept demos
 * and the Privacy/Terms page layouts remain isolated.
 */

.as-experience {
  overflow-x: clip;
}

.as-experience :where(
  .x-container,
  .x-hero__inner,
  .x-hero__copy,
  .x-hero__visual,
  .x-section__head,
  .as-container,
  .as-page-hero__inner,
  .as-section-head,
  .as-split > *,
  .as-card,
  .as-form-card,
  .as-contact-layout > *,
  .as-footer__top > *
) {
  min-width: 0;
}

.as-experience .x-text-link {
  min-height: 2.75rem;
}

.as-experience .as-header {
  top: max(1rem, env(safe-area-inset-top, 0px));
  padding-inline:
    env(safe-area-inset-left, 0px)
    env(safe-area-inset-right, 0px);
}

.as-experience .as-footer {
  padding-bottom: max(2rem, calc(1rem + env(safe-area-inset-bottom, 0px)));
}

@media (max-width: 1080px) {
  .as-experience .as-header {
    top: max(0.65rem, env(safe-area-inset-top, 0px));
  }

  .as-experience .as-nav {
    right: 0;
    left: auto;
    width: min(28rem, 100%);
    max-height: calc(100vh - 6rem);
    max-height: calc(
      100dvh - 6rem - env(safe-area-inset-top, 0px) -
        env(safe-area-inset-bottom, 0px)
    );
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    scrollbar-gutter: stable;
  }

  .as-experience .as-page-hero {
    min-height: min(48rem, max(36rem, 86svh));
    padding:
      calc(clamp(7rem, 16vw, 10rem) + env(safe-area-inset-top, 0px))
      0
      clamp(3.5rem, 7vw, 6rem);
  }

  .as-experience .as-page-hero h1 {
    font-size: clamp(3.2rem, 8.8vw, 6.2rem);
    line-height: 0.9;
  }

  .as-experience .x-section {
    padding-block: clamp(4rem, 7vw, 5.75rem);
  }

  .as-experience .as-section {
    padding-block: clamp(4rem, 7vw, 5.5rem);
  }

  .as-experience .as-section.as-section--roomy {
    padding-block: clamp(4.5rem, 7.5vw, 6.5rem);
  }

  .as-experience .as-section.as-section--tight {
    padding-block: clamp(2.75rem, 4.5vw, 4rem);
  }

  .as-experience .as-section.as-section--flush-top {
    padding-block-start: 0;
  }

  .as-experience .as-section.as-section--flush-bottom {
    padding-block-end: 0;
  }
}

@media (max-width: 900px) {
  .as-experience .as-page-hero {
    min-height: min(42rem, 72svh);
  }

  .as-experience .x-hero--home .x-hero__title {
    font-size: clamp(3.4rem, 7vw, 4.5rem);
  }

  .as-experience .x-section__head h2 {
    font-size: clamp(2.8rem, 7vw, 5rem);
    line-height: 0.94;
  }

  .as-experience .as-section-head h2 {
    font-size: clamp(2.55rem, 6vw, 4.5rem);
    line-height: 0.96;
  }

  .as-experience .x-hero__visual {
    height: clamp(18rem, 50vw, 27rem);
  }
}

@media (max-width: 620px) {
  .as-experience .as-nav {
    border-radius: 1.25rem;
  }

  .as-experience .x-hero--home {
    padding-top: calc(6.7rem + env(safe-area-inset-top, 0px));
  }

  .as-experience .as-page-hero {
    min-height: auto;
    padding:
      calc(7.25rem + env(safe-area-inset-top, 0px))
      0
      4rem;
  }

  .as-experience .x-section {
    padding-block: 4rem;
  }

  .as-experience .x-section--tight {
    padding-block: 3.25rem;
  }

  .as-experience .as-section {
    padding-block: 3.75rem;
  }

  .as-experience .as-section.as-section--roomy {
    padding-block: 4.5rem;
  }

  .as-experience .as-section.as-section--tight {
    padding-block: 2.5rem;
  }

  .as-experience .as-section.as-section--flush-top {
    padding-block-start: 0;
  }

  .as-experience .as-section.as-section--flush-bottom {
    padding-block-end: 0;
  }

  .as-experience .x-section__head {
    margin-bottom: 2.5rem;
  }

  .as-experience .x-capability {
    min-height: 18rem;
  }

  .as-experience .x-capability__icon {
    width: 3.75rem;
    height: 3.75rem;
    font-size: 1.5rem;
  }

  .as-experience .x-capability h3 {
    margin-top: 4.5rem;
  }

  .as-experience .as-card {
    min-height: 0;
  }

  .as-experience .as-form {
    gap: 1.1rem;
  }

  .as-experience .as-form-card {
    padding: 1.2rem;
    border-radius: 1.35rem;
  }

  .as-experience .as-contact-direct {
    padding: 1.35rem;
  }

  .as-experience .as-form__footer .as-btn {
    width: 100%;
  }

  .as-experience .as-capindex .as-chips {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    margin-inline: calc(var(--gutter) * -1);
    padding: 0 var(--gutter) 0.35rem;
    scroll-padding-inline: var(--gutter);
    scroll-snap-type: inline proximity;
    scrollbar-width: none;
  }

  .as-experience .as-capindex .as-chips::-webkit-scrollbar {
    display: none;
  }

  .as-experience .as-capindex .as-chips > li {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .as-experience .as-capindex .as-chip {
    white-space: nowrap;
  }

  .as-experience .ap-step {
    padding-left: 1.15rem;
  }

  .as-experience .as-notfound {
    min-height: 100svh;
    padding-top: calc(7rem + env(safe-area-inset-top, 0px));
  }

  .as-experience .as-notfound__grid {
    gap: 2rem;
  }
}

@media (max-width: 420px) {
  .as-experience .as-header__inner {
    gap: 0.75rem;
    padding-right: 0.5rem;
    padding-left: 0.8rem;
  }

  .as-experience .x-kicker,
  .as-experience .as-eyebrow {
    max-width: 100%;
    flex-wrap: wrap;
    line-height: 1.35;
  }

  .as-experience .x-hero--home .x-hero__copy {
    padding-top: 1rem;
  }

  .as-experience .x-hero__visual {
    height: 18rem;
  }

  .as-experience .x-hero--home .x-hero__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: none;
  }

  .as-experience :is(
    .x-hero__actions,
    .x-work__actions,
    .as-cta__actions,
    .as-notfound__actions,
    .ex-hero-actions
  ) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    gap: 0.65rem;
  }

  .as-experience :is(
    .x-hero__actions,
    .x-work__actions,
    .as-cta__actions,
    .as-notfound__actions,
    .ex-hero-actions
  ) > :is(.x-button, .as-btn) {
    width: 100%;
  }

  .as-experience .x-manifesto .x-button {
    width: 100%;
  }

  .as-experience .aw-status {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: start;
    width: 100%;
  }

  .as-experience .aw-status .as-btn {
    width: 100%;
  }

  .as-experience .as-numitem--lg {
    grid-template-columns: minmax(2.65rem, max-content) minmax(0, 1fr);
    column-gap: 0.75rem;
  }

  .as-experience .as-numitem--lg .as-numitem__num {
    font-size: 2.2rem;
  }

  .as-experience .as-form-card {
    padding: 1rem;
  }

  .as-experience .as-field--consent {
    padding: 0.85rem;
  }

  .as-experience .as-consent {
    gap: 0.65rem;
  }

  .as-experience .as-callout {
    padding: 1rem;
  }

  .as-experience .as-notfound__actions {
    justify-content: stretch;
  }
}

@media (max-width: 1080px) and (max-height: 42rem) {
  .as-experience .as-nav {
    max-height: calc(100dvh - 5.25rem - env(safe-area-inset-top, 0px));
  }
}
