/* ==========================================================================
   APD Product Page — Scoped overrides and new components
   Loaded only on /all-purpose-directory/. Does NOT affect LDS or other pages.
   ========================================================================== */

/* ---------- Tab panel fix (JS uses hidden attr, CSS needs display override) ---------- */

.page-apd .tab-panel:not([hidden]) {
  display: block;
}

/* ---------- Brighter Color Palette ---------- */

.page-apd {
  --color-accent: #4f46e5;
  --color-accent-hover: #6366f1;
}

/* ---------- Split Hero ---------- */

.apd-hero {
  padding-top: calc(64px + var(--space-5xl));
  padding-bottom: var(--space-5xl);
  position: relative;
  overflow: hidden;
}

.apd-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(79, 70, 229, 0.08), transparent),
    radial-gradient(ellipse 60% 40% at 80% 100%, rgba(20, 184, 166, 0.05), transparent);
  pointer-events: none;
}

.apd-hero .container {
  position: relative;
}

.apd-hero__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3xl);
  align-items: center;
}

.apd-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  padding: 0.25rem 0.75rem;
  font-size: var(--text-xs);
  font-weight: 500;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-accent);
  color: var(--color-accent);
  margin-bottom: var(--space-lg);
}

.apd-hero__title {
  max-width: 540px;
  margin-bottom: var(--space-lg);
}

.apd-hero__title span {
  color: var(--color-accent);
}

.apd-hero__subtitle {
  font-size: var(--text-xl);
  color: var(--color-text-secondary);
  max-width: 480px;
  margin-bottom: var(--space-2xl);
}

.apd-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
}

/* ---------- Browser Mockup (Hero) ---------- */

.apd-mockup {
  background-color: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  transform: perspective(1200px) rotateY(-4deg) rotateX(2deg);
  transition: transform var(--transition-slow);
}

.apd-mockup:hover {
  transform: perspective(1200px) rotateY(-2deg) rotateX(1deg);
}

.apd-mockup__bar {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-sm) var(--space-lg);
  background-color: var(--color-bg-subtle);
  border-bottom: 1px solid var(--color-border);
}

.apd-mockup__dots {
  display: flex;
  gap: 6px;
}

.apd-mockup__dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--color-border);
}

.apd-mockup__dots span:first-child { background-color: #ef4444; }
.apd-mockup__dots span:nth-child(2) { background-color: #eab308; }
.apd-mockup__dots span:nth-child(3) { background-color: #22c55e; }

.apd-mockup__url {
  flex: 1;
  padding: 0.25rem 0.75rem;
  background-color: var(--color-bg-primary);
  border-radius: var(--radius-sm);
  font-size: var(--text-xs);
  color: var(--color-text-secondary);
  font-family: var(--font-code);
}

.apd-mockup__body {
  display: grid;
  grid-template-columns: 140px 1fr;
  min-height: 260px;
}

.apd-mockup__sidebar {
  padding: var(--space-md);
  border-right: 1px solid var(--color-border);
  background-color: var(--color-bg-primary);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.apd-mockup__sidebar-item {
  padding: var(--space-xs) var(--space-sm);
  font-size: 0.6875rem;
  color: var(--color-text-secondary);
  border-radius: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.apd-mockup__sidebar-item--active {
  background-color: var(--color-accent);
  color: #fff;
}

.apd-mockup__content {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.apd-mockup__content-header {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--color-text-primary);
  padding-bottom: var(--space-xs);
  border-bottom: 1px solid var(--color-border);
  margin-bottom: var(--space-xs);
}

.apd-mockup__field-row {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  background-color: var(--color-bg-subtle);
  border: 1px solid var(--color-border);
  border-radius: 4px;
  font-size: 0.625rem;
  color: var(--color-text-secondary);
}

.apd-mockup__field-icon {
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.5rem;
  font-weight: 700;
  color: var(--color-accent);
  background-color: var(--color-bg-primary);
  border-radius: 3px;
  flex-shrink: 0;
}

.apd-mockup__field-name {
  flex: 1;
  font-weight: 500;
  color: var(--color-text-primary);
}

.apd-mockup__field-type {
  font-family: var(--font-code);
  font-size: 0.5625rem;
  color: var(--color-accent);
}

.apd-mockup__field-drag {
  color: var(--color-border);
  font-size: 0.625rem;
  cursor: grab;
}

/* ---------- Stats Bar (enhanced) ---------- */

.apd-stats {
  background: linear-gradient(180deg, var(--color-bg-elevated), var(--color-bg-primary));
  position: relative;
}

.apd-stats::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--color-accent), var(--color-accent-secondary));
}

/* ---------- Zigzag Feature Sections ---------- */

.apd-zigzag {
  padding-block: var(--space-4xl);
}

.apd-zigzag--alt {
  background-color: var(--color-bg-elevated);
}

.apd-zigzag__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3xl);
  align-items: center;
}

.apd-zigzag__grid--reverse {
  direction: rtl;
}

.apd-zigzag__grid--reverse > * {
  direction: ltr;
}

.apd-zigzag__text h2 {
  font-size: var(--text-3xl);
  margin-bottom: var(--space-md);
}

.apd-zigzag__text p {
  color: var(--color-text-secondary);
  font-size: var(--text-lg);
  margin-bottom: var(--space-xl);
}

.apd-zigzag__bullets {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.apd-zigzag__bullets li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
}

.apd-zigzag__bullets li::before {
  content: '';
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  background-color: var(--color-success);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z' clip-rule='evenodd'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z' clip-rule='evenodd'/%3E%3C/svg%3E");
  mask-size: contain;
  -webkit-mask-size: contain;
}

/* ---------- Field Palette Grid (Zigzag A visual) ---------- */

.apd-palette {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-sm);
}

.apd-palette__tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  padding: var(--space-md) var(--space-sm);
  background-color: var(--color-bg-subtle);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.apd-palette__tile:hover {
  border-color: var(--color-accent);
  transform: translateY(-2px);
}

.apd-palette__tile-icon {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1;
}

.apd-palette__tile-label {
  font-size: 0.625rem;
  color: var(--color-text-secondary);
  text-align: center;
}

/* ---------- Search Mockup (Zigzag B visual) ---------- */

.apd-search-mock {
  background-color: var(--color-bg-primary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

.apd-search-mock__bar {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md);
  border-bottom: 1px solid var(--color-border);
}

.apd-search-mock__input {
  flex: 1;
  padding: var(--space-xs) var(--space-sm);
  background-color: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: 4px;
  font-size: var(--text-xs);
  color: var(--color-text-secondary);
}

.apd-search-mock__btn {
  padding: var(--space-xs) var(--space-md);
  background-color: var(--color-accent);
  color: #fff;
  border-radius: 4px;
  font-size: var(--text-xs);
  font-weight: 600;
}

.apd-search-mock__filters {
  display: flex;
  gap: var(--space-md);
  padding: var(--space-sm) var(--space-md);
  border-bottom: 1px solid var(--color-border);
  font-size: 0.625rem;
  color: var(--color-text-secondary);
}

.apd-search-mock__filter {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.apd-search-mock__check {
  width: 10px;
  height: 10px;
  border: 1px solid var(--color-border);
  border-radius: 2px;
}

.apd-search-mock__check--on {
  background-color: var(--color-accent);
  border-color: var(--color-accent);
}

.apd-search-mock__results {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.apd-search-mock__card {
  display: flex;
  gap: var(--space-md);
  padding: var(--space-sm);
  background-color: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
}

.apd-search-mock__thumb {
  width: 48px;
  height: 48px;
  background-color: var(--color-bg-subtle);
  border-radius: 4px;
  flex-shrink: 0;
}

.apd-search-mock__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.apd-search-mock__title-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.apd-search-mock__name {
  height: 8px;
  width: 80px;
  background-color: var(--color-text-primary);
  border-radius: 2px;
  opacity: 0.3;
}

.apd-search-mock__stars {
  display: flex;
  gap: 2px;
  color: #eab308;
  font-size: 0.5rem;
}

.apd-search-mock__desc {
  height: 6px;
  width: 100%;
  background-color: var(--color-text-secondary);
  border-radius: 2px;
  opacity: 0.2;
}

.apd-search-mock__desc--short {
  width: 60%;
}

.apd-search-mock__meta-bar {
  display: flex;
  gap: var(--space-sm);
  margin-top: 0.125rem;
}

.apd-search-mock__tag {
  padding: 1px 6px;
  font-size: 0.5rem;
  background-color: var(--color-bg-subtle);
  border-radius: var(--radius-full);
  color: var(--color-accent);
}

/* ---------- Module Ecosystem (enhanced tab panels) ---------- */

.apd-tab-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2xl);
  align-items: start;
}

.apd-tab-content__text {
  display: flex;
  flex-direction: column;
}

/* Listing card mockups (module tabs) */

.apd-listing-mock {
  background-color: var(--color-bg-primary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.apd-listing-mock__image {
  height: 100px;
  background: linear-gradient(135deg, var(--color-bg-subtle), var(--color-bg-elevated));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: var(--color-accent);
  opacity: 0.6;
}

.apd-listing-mock__body {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.apd-listing-mock__line {
  height: 8px;
  background-color: var(--color-text-primary);
  border-radius: 2px;
  opacity: 0.15;
}

.apd-listing-mock__line--title {
  width: 70%;
  opacity: 0.3;
}

.apd-listing-mock__line--short {
  width: 50%;
}

.apd-listing-mock__badge {
  display: inline-block;
  width: fit-content;
  padding: 2px 8px;
  font-size: 0.5rem;
  font-weight: 600;
  border-radius: var(--radius-full);
  margin-top: var(--space-xs);
}

.apd-listing-mock__badge--url {
  background-color: rgba(117, 119, 245, 0.15);
  color: var(--color-accent);
}

.apd-listing-mock__badge--business {
  background-color: rgba(20, 184, 166, 0.15);
  color: var(--color-accent-secondary);
}

.apd-listing-mock__badge--classifieds {
  background-color: rgba(234, 179, 8, 0.15);
  color: #eab308;
}

.apd-listing-mock__badge--jobs {
  background-color: rgba(59, 130, 246, 0.15);
  color: #3b82f6;
}

.apd-listing-mock__badge--realestate {
  background-color: rgba(16, 185, 129, 0.15);
  color: var(--color-success);
}

.apd-listing-mock__stars {
  display: flex;
  gap: 2px;
  color: #eab308;
  font-size: 0.625rem;
  margin-top: var(--space-xs);
}

.apd-listing-mock__map {
  height: 40px;
  background: linear-gradient(135deg, var(--color-bg-subtle) 40%, rgba(20, 184, 166, 0.1));
  border-radius: 4px;
  margin-top: var(--space-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  color: var(--color-accent-secondary);
  opacity: 0.6;
}

.apd-listing-mock__price {
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-text-primary);
  margin-top: var(--space-xs);
}

.apd-listing-mock__meta-row {
  display: flex;
  gap: var(--space-md);
  font-size: 0.5625rem;
  color: var(--color-text-secondary);
  margin-top: var(--space-xs);
}

/* ---------- Developer Experience (enhanced with 2nd code block) ---------- */

.apd-dev-blocks {
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
}

/* ---------- Social Proof Section ---------- */

.apd-proof {
  padding-block: var(--space-4xl);
  background-color: var(--color-bg-elevated);
}

.apd-proof__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-xl);
}

.apd-proof__item {
  text-align: center;
}

.apd-proof__number {
  font-size: var(--text-4xl);
  font-weight: 800;
  line-height: 1;
  background: linear-gradient(135deg, var(--color-accent), var(--color-accent-secondary));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: var(--space-sm);
}

.apd-proof__label {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
}

/* ---------- CTA (brighter gradient) ---------- */

.page-apd .product-cta {
  background: linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end));
}

/* ==========================================================================
   Responsive — APD Page
   ========================================================================== */

/* ---------- Tablet (768px) ---------- */

@media (max-width: 768px) {
  .apd-hero {
    padding-top: calc(64px + var(--space-4xl));
    padding-bottom: var(--space-4xl);
  }

  .apd-hero__grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .apd-hero__visual {
    display: none;
  }

  .apd-zigzag {
    padding-block: var(--space-3xl);
  }

  .apd-zigzag__grid,
  .apd-zigzag__grid--reverse {
    grid-template-columns: 1fr;
    direction: ltr;
  }

  .apd-zigzag__visual {
    order: -1;
  }

  .apd-tab-content {
    grid-template-columns: 1fr;
  }

  .apd-proof__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
  }

  .apd-palette {
    max-width: 320px;
    margin-inline: auto;
  }
}

/* ---------- Mobile (480px) ---------- */

@media (max-width: 480px) {
  .apd-hero {
    padding-top: calc(64px + var(--space-3xl));
    padding-bottom: var(--space-3xl);
  }

  .apd-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .apd-hero__actions .btn {
    justify-content: center;
  }

  .apd-proof__grid {
    grid-template-columns: 1fr;
  }

  .apd-palette {
    grid-template-columns: repeat(2, 1fr);
  }

  .apd-zigzag {
    padding-block: var(--space-2xl);
  }
}
