/* Homepage v3 page shell — tokens from aifo_new_portal_web globals.css */

/* Beat theme.css body.aifo-bg-primary { overflow-x: hidden } so nav sticky works. */
body.aifo-bg-primary.home-v3 {
  overflow-x: clip;
}

html:has(body.aifo-bg-primary.home-v3) {
  overflow-x: clip;
}

body.home-v3 {
  --bg: #070400;
  --bg-card: #1a1717;
  --bg-elevated: #231f20;
  --brand: #f98715;
  --brand-hover: #f9a215;
  --text: #ffffff;
  --text-muted: #999999;
  --text-dim: #666666;
  --text-soft: #cccccc;
  --header-h: 54px;
  --container: 1200px;
  --page-pad: 16px;
  min-height: 100%;
  color: var(--text);
  background: var(--bg);
  font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

/* Match Next globals.css: scrolling element is often <html>, so clip there too */
html:has(body.home-v3) {
  overflow-x: clip;
}

@media (min-width: 1024px) {
  body.home-v3 {
    --header-h: 80px;
    --page-pad: 40px;
  }
}

@media (min-width: 1440px) {
  body.home-v3 {
    --header-h: 102px;
    --page-pad: 120px;
  }
}

body.home-v3 .floor {
  width: 100%;
  max-width: calc(var(--container) + 2 * var(--page-pad));
  margin-inline: auto;
  padding-inline: var(--page-pad);
}

body.home-v3 .gradient-text {
  background: linear-gradient(180deg, #fff 21.82%, var(--brand) 73.08%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

body.home-v3 .fade-in {
  opacity: 0;
  transform: translateY(0.75rem);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

body.home-v3 .fade-in.show {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  body.home-v3 .fade-in {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.hv3-main {
  position: relative;
  z-index: 0;
  flex: 1;
}

.hv3-glow {
  display: none;
}

@media (min-width: 1024px) {
  .hv3-main::before {
    content: "";
    position: absolute;
    top: calc(-1 * var(--header-h));
    left: 0;
    right: 0;
    height: 640px;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(
      ellipse 78% 58% at 22% 12%,
      rgba(249, 135, 21, 0.2) 0%,
      rgba(249, 135, 21, 0.07) 38%,
      transparent 72%
    );
  }

  .hv3-glow {
    display: block;
    position: absolute;
    top: calc(-1 * var(--header-h) - 318px);
    left: calc(50% - 1180px);
    z-index: -1;
    width: 1228px;
    height: 670px;
    pointer-events: none;
  }

  .hv3-glow img {
    display: block;
    width: 1228px;
    height: 670px;
    max-width: none;
  }
}

.hv3-btn--md {
  min-height: 42px;
  padding: 12px 24px;
  font-size: 16px;
  line-height: 20px;
}

.hv3-btn--lg {
  min-height: 56px;
  padding: 16px 24px;
  font-size: 20px;
  line-height: 24px;
}

.hv3-main a {
  text-decoration: none;
}

.hv3-btn svg {
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.hv3-btn--primary:hover svg,
.hv3-btn--primary:focus-visible svg {
  transform: translateX(3px);
}

.hv3faq-header .hv3faq-icon-minus[hidden],
.hv3faq-header .hv3faq-icon-plus[hidden] {
  display: none;
}
