/* Landing Page Styles */

.landing-page {
  min-block-size: 100vh;
}

/* Override scroll lock for landing page */
html:has(.landing-page),
body:has(.landing-page) {
  overflow: auto;
  height: auto;
}

.page-wrapper:has(.landing-page) {
  height: auto;
  overflow: visible;
}

/* Landing Header */
.landing-header {
  padding-block: var(--wa-space-s);
  padding-inline: var(--wa-space-m);
}
@media (min-width: 768px) {
  .landing-header {
    padding-block: var(--wa-space-m);
    padding-inline: var(--wa-space-l);
  }
}

.landing-header__logo-mark {
  height: clamp(24px, calc(1.4286vw + 18.86px), 36px);
  width: auto;
}

/* Hero Section */
.hero-section {
  padding-block: var(--wa-space-3xl);
  padding-inline: var(--wa-space-l);
  text-align: center;
  background: linear-gradient(
    180deg,
    var(--wa-color-brand-fill-quiet) 0%,
    transparent 100%
  );
}

.hero-content {
  max-inline-size: 800px;
  margin-inline: auto;
  align-items: center;
}

.hero-title {
  font-size: var(--wa-font-size-3xl);
  font-weight: var(--wa-font-weight-bold);
  line-height: 1.2;
  margin: 0;
}

.hero-subtitle {
  font-size: var(--wa-font-size-l);
  color: var(--wa-color-neutral-text-quiet);
  margin: 0;
}

.hero-cta {
  justify-content: center;
}

/* Plaid Sync Section */
.plaid-sync-section {
  padding-block: var(--wa-space-3xl);
  padding-inline: var(--wa-space-l);
  background-color: var(--wa-color-neutral-fill);
}

.plaid-sync-container {
  max-inline-size: 800px;
  margin-inline: auto;
}

.plaid-sync-subtitle {
  font-size: var(--wa-font-size-l);
  color: var(--wa-color-neutral-text-quiet);
  text-align: center;
  margin-block-start: 0;
  margin-block-end: var(--wa-space-xl);
}

/* Dashboard Demo Section */
.demo-section {
  padding-block: var(--wa-space-3xl);
  padding-inline: var(--wa-space-l);
  background-color: var(--wa-color-neutral-fill);
}

.demo-container {
  max-inline-size: 1200px;
  margin-inline: auto;
}

.demo-subtitle {
  font-size: var(--wa-font-size-l);
  color: var(--wa-color-neutral-text-quiet);
  text-align: center;
  margin-block-start: 0;
  margin-block-end: var(--wa-space-2xl);
}

.demo-dashboard {
  max-inline-size: 900px;
  margin-inline: auto;
}

.plaid-trust-callout {
  max-inline-size: 700px;
  margin-inline: auto;
  margin-block-start: var(--wa-space-xl);
}

.plaid-trust-callout p {
  margin: 0;
}

/* Net Worth Chart Demo Section */
.net-worth-chart-section {
  padding-block: var(--wa-space-3xl);
  padding-inline: var(--wa-space-l);
}

.net-worth-chart-container {
  max-inline-size: 1200px;
  margin-inline: auto;
}

.net-worth-chart-subtitle {
  font-size: var(--wa-font-size-l);
  color: var(--wa-color-neutral-text-quiet);
  text-align: center;
  margin-block-start: 0;
  margin-block-end: var(--wa-space-2xl);
}

.net-worth-chart-demo {
  max-inline-size: 1000px;
  margin-inline: auto;
}

/* Investment Projection Demo Section */
.projection-section {
  padding-block: var(--wa-space-3xl);
  padding-inline: var(--wa-space-l);
  background-color: var(--wa-color-neutral-fill);
}

.projection-container {
  max-inline-size: 1200px;
  margin-inline: auto;
}

.projection-subtitle {
  font-size: var(--wa-font-size-l);
  color: var(--wa-color-neutral-text-quiet);
  text-align: center;
  margin-block-start: 0;
  margin-block-end: var(--wa-space-2xl);
}

.projection-demo {
  max-inline-size: 1000px;
  margin-inline: auto;
}

/* Features Section */
.features-section {
  padding-block: var(--wa-space-3xl);
  padding-inline: var(--wa-space-l);
  background-color: var(--wa-color-neutral-fill);
}

.features-container {
  max-inline-size: 1200px;
  margin-inline: auto;
}

.section-title {
  font-size: var(--wa-font-size-2xl);
  font-weight: var(--wa-font-weight-bold);
  text-align: center;
  margin-block-end: var(--wa-space-2xl);
  margin-block-start: 0;
}

.feature-card {
  text-align: center;
  padding: var(--wa-space-l);
}

.feature-icon {
  margin-block-end: var(--wa-space-m);
}

.feature-card h3 {
  font-size: var(--wa-font-size-l);
  font-weight: var(--wa-font-weight-semibold);
  margin-block: var(--wa-space-s);
}

.feature-card p {
  color: var(--wa-color-neutral-text-quiet);
  margin: 0;
}

/* Pricing Section */
.pricing-section {
  padding-block: var(--wa-space-3xl);
  padding-inline: var(--wa-space-l);
}

.pricing-container {
  max-inline-size: 1000px;
  margin-inline: auto;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .hero-title {
    font-size: var(--wa-font-size-2xl);
  }

  .hero-subtitle {
    font-size: var(--wa-font-size-m);
  }

  .section-title {
    font-size: var(--wa-font-size-xl);
  }

  .demo-subtitle,
  .net-worth-chart-subtitle,
  .projection-subtitle,
  .plaid-sync-subtitle {
    font-size: var(--wa-font-size-m);
  }

  .plaid-sync-section {
    padding-inline: var(--wa-space-s);
  }

  .demo-dashboard,
  .net-worth-chart-demo,
  .projection-demo {
    max-inline-size: 100%;
  }

  .plaid-trust-callout {
    max-inline-size: 100%;
  }

  .demo-section,
  .net-worth-chart-section,
  .projection-section {
    padding-inline: var(--wa-space-s);
  }

  /* Force single column on mobile for demo grids */
  .demo-dashboard .wa-grid,
  .net-worth-chart-demo .wa-grid,
  .projection-demo .wa-grid {
    --min-column-size: 100% !important;
  }

  /* Ensure charts don't overflow */
  .net-worth-chart-demo canvas,
  .projection-demo canvas {
    max-inline-size: 100%;
  }
}

/* Prevent horizontal overflow on all demo sections */
.demo-section,
.net-worth-chart-section,
.projection-section {
  overflow-x: hidden;
}

.demo-dashboard,
.net-worth-chart-demo,
.projection-demo {
  overflow-x: hidden;
}

/* Ensure wa-card contents don't overflow */
.demo-dashboard wa-card,
.net-worth-chart-demo wa-card,
.projection-demo wa-card {
  max-inline-size: 100%;
  overflow: hidden;
}
