/* Auditstead's public-site finish: quiet depth, clear feedback, finite motion.
   Load after the page stylesheet. All content remains visible without JavaScript. */
:is(.marketing-page, .booking-page) {
  --polish-ease: cubic-bezier(.2, .7, .3, 1);
  --polish-shadow: 0 2px 5px #09234a04, 0 14px 34px -20px #09234a24;
  --polish-raised: 0 3px 6px #09234a06, 0 18px 35px -19px #09234a32;
}

/* Give illustration backdrops a light source, without moving the artwork. */
.marketing-page .stead-hero-visual {
  background: radial-gradient(ellipse at 52% 54%, #d8f5e488, transparent 68%);
}
.marketing-page :is(.suite-visual, .suite-story-art, .company-hero-art, .journal-feature-art),
.booking-page .booking-art {
  background-image: radial-gradient(ellipse at 18% 0%, #ffffffb3, transparent 67%);
  box-shadow: inset 0 1px 0 #ffffffb3, var(--polish-shadow);
}
.marketing-page .ai-orbit {
  box-shadow: inset 0 1px 0 #ffffffb3, var(--polish-shadow);
}
.marketing-page :is(.sample-workspace, .suite-visual-window) {
  border-color: #d8e5e2;
  box-shadow: 0 2px 3px #09234a04, 0 10px 22px -12px #09234a1c,
    0 28px 52px -28px #163b4240;
}
.marketing-page :is(.orbit-logo, .connect-map-row > span, .ai-orbit-item) {
  box-shadow: 0 1px 2px #09234a04, 0 10px 24px -14px #173d263b;
}
.marketing-page :is(.suite-feature-grid article, .framework-card, .ai-function-grid article,
  .journal-card, .company-explore-card, .suite-related-grid > a) {
  box-shadow: var(--polish-shadow);
}
.marketing-page :is(.stead-platform, .connect-feature, .pricing-benefits, .company-facts,
  .suite-close, .company-contact, .pricing-closing, .connect-closing, .stead-closing) {
  background-image: radial-gradient(ellipse at 8% 0%, #ffffff8c, transparent 65%);
  box-shadow: inset 0 1px 0 #ffffffa6;
}
.marketing-page :is(.suite-deep, .company-values, .journal-guides, .framework-help) {
  background-image: radial-gradient(ellipse at 100% 0%, #28625266, transparent 65%);
  box-shadow: 0 18px 42px -30px #09234a70;
}
.marketing-page .pricing-card {
  box-shadow: var(--polish-shadow);
}
.marketing-page .pricing-card:nth-child(2) {
  background-image: linear-gradient(145deg, #ffffff80, transparent 65%);
  box-shadow: inset 0 3px 0 #84cfa7, var(--polish-shadow);
}
.booking-page .calendar-card {
  /* Calendly stays stationary: no transforms on the widget or its ancestors. */
  box-shadow: 0 2px 5px #163b2705, 0 18px 45px -20px #163b272b;
}
.marketing-page .topbar {
  box-shadow: 0 1px 0 #09234a08;
}

/* Navigation communicates both the open menu and the current page. */
.marketing-page .nav-menu-panel {
  border-color: #dce7e2;
  box-shadow: 0 4px 8px #09234a04, 0 22px 50px -16px #09234a30;
}
.marketing-page .public-links > a,
.marketing-page .nav-menu > summary {
  text-decoration-color: transparent;
  text-underline-offset: 7px;
  text-decoration-thickness: 2px;
  transition: color 160ms ease, text-decoration-color 160ms ease;
}
.marketing-page .public-links > a[aria-current],
.marketing-page .nav-menu.is-current > summary {
  color: var(--green);
  text-decoration-line: underline;
  text-decoration-color: #6ac69b;
}
.marketing-page .nav-menu[open] > summary {
  color: var(--green);
}
.marketing-page .nav-menu-panel > a[aria-current] {
  color: #125b40;
  background: #e5f4eb;
  box-shadow: inset 3px 0 0 #409b73;
}
.marketing-page .nav-menu-panel > a {
  transition: background-color 150ms ease, color 150ms ease;
}
.marketing-page .nav-menu > summary:focus-visible,
.marketing-page .faq-list summary:focus-visible {
  outline: 3px solid #168567;
  outline-offset: 5px;
  border-radius: 4px;
}
.marketing-page .faq-list summary {
  min-height: 44px;
  transition: color 150ms ease;
}
.marketing-page .faq-list details[open] > summary {
  color: var(--green);
}
.marketing-page .faq-list summary > .icon {
  transition: transform 180ms var(--polish-ease);
}

/* Only real interactive elements lift; informational cards remain still. */
.marketing-page :is(a.company-explore-card, .suite-related-grid > a,
  .journal-guides > a, .framework-ribbon > a) {
  transition: transform 220ms var(--polish-ease), box-shadow 220ms var(--polish-ease),
    background-color 180ms ease, border-color 180ms ease;
}
.marketing-page :is(a.button, button.button) {
  transition: transform 180ms var(--polish-ease), box-shadow 180ms var(--polish-ease),
    background-color 160ms ease, border-color 160ms ease;
}
.marketing-page :is(a.button, button.button):focus-visible {
  box-shadow: 0 7px 16px -10px #167b5470;
}
.marketing-page :is(.button, .suite-text-link, .suite-related-grid > a) > .icon[src*="arrow-"],
.marketing-page :is(.connect-link, .pricing-text-link) > span[aria-hidden],
.booking-page :is(.back-link, .booking-footer a) > span[aria-hidden] {
  transition: transform 180ms var(--polish-ease);
}
.marketing-page :is(.connect-search input, .pricing-billing span, .journal-filters button,
  .connect-filters button) {
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}
.marketing-page :is(.company-explore-card, .suite-related-grid > a,
  .journal-guides > a, .framework-ribbon > a):focus-visible {
  outline: 3px solid #168567;
  outline-offset: 5px;
}
@media (hover: hover) and (pointer: fine) {
  .marketing-page :is(a.company-explore-card, .suite-related-grid > a,
    .journal-guides > a, .framework-ribbon > a):hover {
    transform: translateY(-3px);
    box-shadow: var(--polish-raised);
  }
  .marketing-page :is(a.button, button.button):hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 17px -10px #167b5480;
  }
  .marketing-page :is(.button, .suite-text-link, .suite-related-grid > a):hover > .icon[src*="arrow-"],
  .marketing-page :is(.connect-link, .pricing-text-link):hover > span[aria-hidden],
  .booking-page :is(.back-link, .booking-footer a):hover > span[aria-hidden] {
    transform: translateX(3px);
  }
  .marketing-page .faq-list summary:hover {
    color: var(--green);
  }
}
.marketing-page :is(a.button, button.button):active {
  transform: translateY(0);
  box-shadow: none;
}

@media (pointer: coarse) {
  .marketing-page :is(.nav-menu-panel > a, .public-links > a,
    .nav-menu > summary, .journal-filters button, .connect-filters button,
    .topbar .button, .sign-in-link),
  .booking-page :is(.back-link, .booking-footer a) {
    min-height: 44px;
  }
  .marketing-page :is(.nav-menu-panel > a, .sign-in-link) {
    display: flex;
    align-items: center;
  }
  .marketing-page :is(a.button, button.button):hover {
    transform: none;
  }
}

/* Progressive motion. Nothing is hidden pending a script or observer callback.
   The individual translate property preserves existing layout transforms. */
@media (prefers-reduced-motion: no-preference) {
  .marketing-page .polish-enter {
    animation: auditstead-settle 460ms var(--polish-ease) both;
  }
  .marketing-page .nav-menu[open] > .nav-menu-panel {
    animation: auditstead-menu-enter 160ms var(--polish-ease) both;
  }
  .marketing-page .faq-list details[open] > p {
    animation: auditstead-answer-enter 180ms ease-out both;
  }
}
@keyframes auditstead-settle {
  from { translate: 0 10px; }
  to { translate: 0 0; }
}
@keyframes auditstead-menu-enter {
  from { translate: 0 -4px; }
  to { translate: 0 0; }
}
@keyframes auditstead-answer-enter {
  from { translate: 0 3px; }
  to { translate: 0 0; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(> body:is(.marketing-page, .booking-page)),
  :is(.marketing-page, .booking-page) {
    scroll-behavior: auto !important;
  }
  :is(.marketing-page, .booking-page) *,
  :is(.marketing-page, .booking-page) *::before,
  :is(.marketing-page, .booking-page) *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .marketing-page :is(a.button, button.button, a.company-explore-card,
    .suite-related-grid > a, .journal-guides > a, .framework-ribbon > a):is(:hover, :active),
  .marketing-page :is(.button, .suite-text-link, .suite-related-grid > a):hover > .icon[src*="arrow-"],
  .marketing-page :is(.connect-link, .pricing-text-link):hover > span[aria-hidden],
  .booking-page :is(.back-link, .booking-footer a):hover > span[aria-hidden] {
    transform: none !important;
  }
  .marketing-page .polish-enter {
    translate: none !important;
  }
}
