/* homepage-ui-fixes-v1.css
 * Single additive file for 4 minimal homepage UI fixes.
 * Does NOT touch Header, Logo, nav, search, hero, globe, cards, footer, or any business logic.
 */

/* ============================================================
 * FIX 1 — Badge yellow dot pulse animation
 * Covers both existing yellow-dot patterns on homepage badges.
 * Animation on the DOT only, not the badge container or text.
 * ============================================================ */

@keyframes bcDotPulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(245,184,0,.32); }
  50%      { opacity: .72; box-shadow: 0 0 0 5px rgba(245,184,0,.08); }
}

/* Dot rendered as a child <i> element (section-two eyebrow) */
#root > .page > .bc-section-two .bc-section-two__eyebrow i {
  animation: bcDotPulse 2.2s ease-in-out infinite;
}

/* Dot rendered as ::before pseudo (bc5-badge) */
#root > .page > .bc5 .bc5-badge::before {
  animation: bcDotPulse 2.2s ease-in-out infinite;
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  #root > .page > .bc-section-two .bc-section-two__eyebrow i,
  #root > .page > .bc5 .bc5-badge::before {
    animation: none !important;
  }
}


/* ============================================================
 * FIX 2 — BYOK 01/02/03 vertically center against h3+p block
 * Switch .bc-section-two__copy from flex-col to 2-col grid.
 * Number spans rows 1-2, centered across h3+p combined height.
 * ============================================================ */

#root > .page > .bc-section-two .bc-section-two__copy {
  display: grid !important;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto;
  gap: 0 18px;
  align-items: start;
}

#root > .page > .bc-section-two .bc-section-two__number {
  grid-row: 1 / span 2;   /* span h3 + p rows */
  align-self: center;     /* vertical center vs h3+p block */
  margin-bottom: 0 !important;
}

#root > .page > .bc-section-two .bc-section-two__copy h3 {
  grid-column: 2;
  grid-row: 1;
}

#root > .page > .bc-section-two .bc-section-two__copy p {
  grid-column: 2;
  grid-row: 2;
}

#root > .page > .bc-section-two .bc-section-two__copy a {
  grid-column: 2;
  grid-row: 3;
}


/* ============================================================
 * FIX 3 — Delete </> API button on Playground mockup
 * Uses display:none so wrapper remains but is invisible.
 * Top tab "API" tab-list entry is NOT affected (different class).
 * ============================================================ */

#home .hero-right .bc-product-preview__api {
  display: none !important;
}


/* ============================================================
 * FIX 4 — Models page: full-width search row + Search button
 * Input stretches to table content width, Search button pinned right.
 * Models page is a SPA so this CSS fires whenever .models-search-wrap exists.
 * Button is injected by models-search-btn.v1.js (linked separately).
 * ============================================================ */

.models-search-wrap {
  max-width: none !important;
  display: flex !important;
  align-items: stretch !important;
  gap: 8px !important;
  margin: 0 auto 32px !important;
  width: 100%;
}

.models-search {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
}

/* Search button (injected by JS) */
.models-search-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 48px;
  padding: 0 20px;
  border: 1px solid rgba(245,184,0,.35);
  border-radius: 8px;
  background: #FFF7DC;
  color: #B77900;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  letter-spacing: 0.01em;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s ease, box-shadow .15s ease;
  box-sizing: border-box;
}

.models-search-btn:hover {
  background: #FFEAB0;
}

.models-search-btn:active {
  background: #FEDF8A;
}

.models-search-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(245,184,0,.22);
}

.models-search-btn svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  opacity: .85;
}
