/**
 * About Page Styles
 * =============================================================================
 * Matches React About page styling from src/app/about/page.tsx
 * Uses DesignBase color variables and 1000px breakpoint.
 *
 * React styling reference:
 * - FeatureBlock title: 56px/64px desktop, 48px/56px mobile (default)
 * - Description: 20px/28px, max-width 640px
 * - Padding: 96px default vertical, 160px for extra sections
 * - FeatureBlockItem: icon 64px, label 20px/24px desktop, 16px/24px mobile
 */

/* =============================================================================
   PAGE WRAPPER
   ============================================================================= */

.about-page {
  margin: 0 auto;
  padding: 160px 120px 96px 120px;
}

.about-intro {
  padding-bottom: 96px;
  justify-content: center;
}

.about-join-us-wrapper {
  padding: 64px 120px;
}

.about-join-us__features {
  padding-top: 24px;
  padding-bottom: 24px;
}

@media (max-width: 1000px) {
  .about-page {
    padding: 140px 32px 64px 32px;
  }

  .about-intro {
    padding-bottom: 64px;
  }

  .about-join-us-wrapper {
    padding: 64px 32px;
  }
}

@media (max-width: 768px) {
  .about-page {
    padding: 140px 20px 48px 20px;
  }

  .about-intro {
    padding-bottom: 48px;
  }

  .about-join-us-wrapper {
    padding: 48px 20px;
  }

  .about-join-us__features {
    padding-top: 16px;
    padding-bottom: 16px;
  }
}

@media (max-width: 480px) {
  .about-page {
    padding: 130px 16px 40px 16px;
  }

  .about-intro {
    padding-bottom: 40px;
  }

  .about-join-us-wrapper {
    padding: 40px 16px;
  }
}

@media (max-width: 390px) {
  .about-page {
    padding: 120px 12px 32px 12px;
  }

  .about-intro {
    padding-bottom: 32px;
  }

  .about-join-us-wrapper {
    padding: 32px 12px;
  }
}

/* =============================================================================
   TITLE STYLES - Matches React FeatureBlock
   React: fontSize = titleSizeOverride || (breakpoint === 'desktop' ? 56 : 48)
   React: lineHeight = titleSizeOverride * 1.125 || (breakpoint === 'desktop' ? 64 : 56)
   ============================================================================= */

.about-title {
  width: 100%;
  font-weight: 900;
  text-align: center;
  max-width: 800px;
  margin: 0;
  color: var(--color-black);
}

/* Title sizes - Desktop */
.about-title--default {
  font-size: 56px;
  line-height: 64px;
}

.about-title--lg {
  font-size: 64px;
  line-height: 72px;
}

.about-title--xl {
  font-size: 96px;
  line-height: 108px;
}

.about-title--xxl {
  font-size: 128px;
  line-height: 144px;
}

/* Title colors */
.about-title--primary {
  color: var(--color-primary-600);
}

.about-title--white {
  color: var(--color-white);
}

.about-title--muted {
  color: color-mix(in srgb, var(--color-neutral-100) 50%, transparent 0%);
}

/* Mobile title sizes - React uses 48px/56px for default, scales others */
@media (max-width: 1000px) {
  .about-title--default {
    font-size: 48px;
    line-height: 56px;
  }

  .about-title--lg {
    font-size: 48px;
    line-height: 56px;
  }

  .about-title--xl {
    font-size: 56px;
    line-height: 64px;
  }

  .about-title--xxl {
    font-size: 64px;
    line-height: 72px;
  }
}

@media (max-width: 480px) {
  .about-title--default {
    font-size: 36px;
    line-height: 44px;
  }

  .about-title--lg {
    font-size: 40px;
    line-height: 48px;
  }

  .about-title--xl {
    font-size: 44px;
    line-height: 52px;
  }

  .about-title--xxl {
    font-size: 48px;
    line-height: 56px;
  }
}

/* =============================================================================
   DESCRIPTION STYLES
   ============================================================================= */

.about-description {
  line-height: 28px;
  font-weight: 400;
  font-size: 20px;
  max-width: 640px;
  text-align: center;
}

/* Description colors */
.about-description--default {
  color: var(--color-neutral-600);
}

.about-description--primary {
  color: var(--color-primary-600);
}

.about-description--white {
  color: var(--color-white);
}

@media (max-width: 1000px) {
  .about-description {
    font-size: 18px;
    line-height: 26px;
  }
}

/* =============================================================================
   GLITCH TEXT EFFECT
   ============================================================================= */

.about-glitch {
  position: relative;
}

.about-glitch__text {
  font-size: 72px;
  line-height: 72px;
  font-weight: 900;
  color: var(--color-black);
  margin: 0;
}

@media (max-width: 1000px) {
  .about-glitch__text {
    font-size: 48px;
    line-height: 48px;
  }
}

/* =============================================================================
   CURSOR DECORATIONS (Infobesity section)
   ============================================================================= */

.about-feature-section--cursors {
  position: relative;
}

.about-cursors {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  overflow: hidden;
}

.about-cursor {
  position: absolute;
  width: 48px;
  height: 48px;
  filter: drop-shadow(8px 12px 8px rgba(0, 0, 0, 0.25));
  animation: cursor-float 3s ease-in-out infinite;
}

.about-cursor--lg {
  width: 72px;
  height: 72px;
}

@keyframes cursor-float {
  0%, 100% {
    transform: translateY(0) rotate(-15deg);
  }
  50% {
    transform: translateY(-10px) rotate(-10deg);
  }
}

/* Stagger animation */
.about-cursor:nth-child(1) { animation-delay: 0s; }
.about-cursor:nth-child(2) { animation-delay: 0.5s; }
.about-cursor:nth-child(3) { animation-delay: 1s; }
.about-cursor:nth-child(4) { animation-delay: 1.5s; }
.about-cursor:nth-child(5) { animation-delay: 2s; }
.about-cursor:nth-child(6) { animation-delay: 2.5s; }

@media (max-width: 480px) {
  .about-cursor {
    width: 32px;
    height: 32px;
  }

  .about-cursor--lg {
    width: 48px;
    height: 48px;
  }
}

/* =============================================================================
   FEATURE ITEMS (Icon + Label) - Matches React FeatureBlockItem
   React: icon 64px, text 20px/24px desktop, 16px/24px mobile
   React: shrink=true on desktop, width=calc((100% - 64px) / 2) on mobile
   ============================================================================= */

.about-feature-item {
  text-align: center;
}

.about-feature-item__label {
  font-size: 20px;
  line-height: 24px;
  color: var(--color-neutral-600);
  text-align: center;
  white-space: nowrap;
}

/* Color variants for feature item labels */
.about-feature-item__label--white {
  color: var(--color-white);
}

.about-feature-item__label--primary-200 {
  color: var(--color-primary-200);
}

.about-feature-item__label--primary-500 {
  color: var(--color-primary-500);
}

.about-feature-item__description {
  font-size: 14px;
  line-height: 20px;
  color: var(--color-neutral-500);
  text-align: center;
  max-width: 280px;
  white-space: normal;
}

@media (max-width: 1000px) {
  .about-feature-item__label {
    font-size: 16px;
    line-height: 24px;
  }

  /* React: width: calc((100% - 64px) / 2) for 2x2 grid on mobile */
  .about-feature-item {
    width: calc((100% - 64px) / 2);
    flex-shrink: 0;
  }

  .about-feature-section {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}

@media (max-width: 480px) {
  .about-feature-section {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}

/* =============================================================================
   BLACK BOX SECTION - Matches React About page
   React: margin-top 160px, black background, border-radius calc(var(--size-unit) * 1)
   ============================================================================= */

.about-black-box-wrapper {
  padding: 0 48px;
}

.about-black-box {
  max-width: 900px;
  margin-top: 64px;
  padding: 48px;
}

@media (max-width: 1000px) {
  .about-black-box-wrapper {
    padding: 0 24px;
  }

  .about-black-box {
    width: 100% !important;
    margin-top: 48px;
    padding: 32px;
  }
}

@media (max-width: 480px) {
  .about-black-box-wrapper {
    padding: 0 16px;
  }

  .about-black-box {
    margin-top: 32px;
    padding: 24px;
  }
}

/* =============================================================================
   JOIN US SECTION
   ============================================================================= */

.about-join-us {
  max-width: 860px;
  margin: 0 auto;
}

.about-join-us__features {
  padding-top: 8px;
  padding-bottom: 16px;
  max-width: 800px;
}

.about-join-us .about-feature-item {
  flex: 1 1 0;
  min-width: 0;
  max-width: 240px;
}

.about-join-us .about-feature-item__label {
  font-size: 18px;
  line-height: 22px;
  font-weight: 700;
  color: var(--color-neutral-800);
  white-space: normal;
}

.about-join-us .about-feature-item__description {
  font-size: 14px;
  line-height: 20px;
  max-width: 220px;
}

.about-join-us .about-description {
  max-width: 580px;
  font-size: 18px;
  line-height: 28px;
}

@media (max-width: 1000px) {
  .about-join-us__features {
    flex-direction: column !important;
    max-width: 100%;
    gap: 24px !important;
  }

  .about-join-us .about-feature-item {
    max-width: 320px;
  }

  .about-join-us .about-description {
    font-size: 16px;
    line-height: 24px;
  }
}

@media (max-width: 480px) {
  .about-join-us .about-feature-item__label {
    font-size: 16px;
    line-height: 20px;
  }

  .about-join-us .about-feature-item__description {
    font-size: 13px;
    line-height: 18px;
  }

  .about-join-us .about-description {
    font-size: 15px;
    line-height: 22px;
  }
}

/* Hide the footer separator line on the about page */
.page-about op-website-footer {
  border-top: none !important;
}

.page-about op-website-footer::part(container) {
  border-top: none !important;
}

/* =============================================================================
   RICH TEXT CONTENT
   ============================================================================= */

.about-rich-text {
  max-width: 800px;
  font-size: 18px;
  line-height: 1.6;
  color: var(--color-neutral-700);
  text-align: center;
}

.about-rich-text p {
  margin: 0 0 16px;
}

.about-rich-text a {
  color: var(--color-primary-500);
  text-decoration: underline;
}

/* =============================================================================
   BOTTOM CTA SECTION - Matches React BottomCTA component
   React: title 56px/64px weight 900, description 20px/24px opacity 0.75
   ============================================================================= */

/* Bottom CTA title - React: 56px/64px weight 900 */
.bottom-cta__title {
  color: var(--color-white);
  font-size: 56px;
  font-weight: 900;
  line-height: 64px;
  text-align: center;
  margin: 0;
}

/* Bottom CTA title - light background (dark theme) */
.bottom-cta__title--light {
  color: var(--color-primary-900);
}

/* Bottom CTA description - React: 20px/24px opacity 0.75 */
.bottom-cta__description {
  line-height: 24px;
  color: var(--color-white);
  font-size: 20px;
  opacity: 0.75;
  text-align: center;
  max-width: 640px;
}

/* Bottom CTA description - light background */
.bottom-cta__description--light {
  color: var(--color-primary-900);
}

/* Mobile responsive */
@media (max-width: 1000px) {
  .bottom-cta__title {
    font-size: 36px;
    line-height: 44px;
  }

  .bottom-cta__description {
    font-size: 16px;
    line-height: 22px;
  }
}
