/**
 * Labs funnel — tool forms, results, and in-card sections.
 */

.labs-hub-grid {
  display: grid;
  gap: clamp(1rem, 3vw, 1.35rem);
}

@media (min-width: 720px) {
  .labs-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.labs-hub-grid + .labs-banner {
  margin-top: 0;
}

.labs-check-form {
  display: grid;
  gap: 0.85rem;
}

.labs-check-label {
  font-weight: 700;
  font-size: 0.92rem;
}

.labs-check-input-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.labs-check-input-row input[type="url"],
.labs-check-input-row input[type="text"],
.labs-check-form input[type="url"],
.labs-check-form input[type="text"],
.labs-check-form input[type="email"],
.labs-check-form textarea,
.labs-check-form select,
.labs-social-wrap textarea,
.labs-social-wrap select {
  flex: 1 1 220px;
  min-height: var(--tap-min);
  padding: 0.55rem 0.75rem;
  border: var(--portfolio-card-border-width) solid var(--form-field-border, var(--portfolio-card-border));
  border-radius: var(--radius-sm);
  background: var(--form-field-bg, #ffffff);
  color: var(--form-field-text, #0b1220);
  font: inherit;
  box-shadow: 0 1px 2px rgba(11, 18, 32, 0.06);
}

.labs-check-form textarea,
.labs-social-wrap textarea {
  flex: none;
  width: 100%;
  min-height: 120px;
  resize: vertical;
}

.labs-check-form select,
.labs-social-wrap select {
  flex: none;
  width: 100%;
  cursor: pointer;
}

.labs-check-form input::placeholder,
.labs-check-form textarea::placeholder {
  color: var(--form-field-placeholder, #64748b);
  opacity: 1;
}

.labs-check-form input:focus-visible,
.labs-check-form textarea:focus-visible,
.labs-check-form select:focus-visible {
  outline: none;
  border-color: var(--accent);
  box-shadow: var(--focus);
}

.labs-field-hint {
  margin: -0.15rem 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
}

.labs-field-hint + .labs-check-label,
.labs-field-hint + fieldset {
  margin-top: 0.35rem;
}

.labs-form-note {
  margin: 0;
  padding: 0.65rem 0.75rem;
  border-radius: var(--radius-card-nested);
  background: color-mix(in srgb, var(--portfolio-card-accent) 5%, var(--portfolio-card-fill));
  border: 1px solid color-mix(in srgb, var(--portfolio-card-border) 65%, transparent);
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.5;
}

.labs-check-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.labs-check-hint,
.labs-disclaimer,
.labs-scanned-target {
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.5;
}

.labs-disclaimer {
  margin: 0 0 0.65rem;
  padding: 0.65rem 0.85rem;
  border-left: 3px solid var(--portfolio-card-border-strong);
  border-radius: var(--radius-card-nested);
  background: color-mix(in srgb, var(--portfolio-card-accent) 6%, var(--portfolio-card-fill));
}

.labs-check-strategy {
  border: 0;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.labs-check-radio {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.92rem;
}

.labs-check-status {
  margin-top: 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: var(--radius-card-nested);
  font-size: 0.92rem;
}

.labs-check-status--error {
  background: color-mix(in srgb, #dc2626 12%, var(--surface));
  border: 1px solid color-mix(in srgb, #dc2626 35%, var(--border));
}

.labs-check-status--loading {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  background: var(--accent-soft);
  border: 1px solid color-mix(in srgb, var(--accent, #38bdf8) 28%, var(--border, #475569));
  color: var(--text-muted, #cbd5e1);
}

.labs-check-spinner {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  border: 2px solid color-mix(in srgb, var(--accent, #38bdf8) 25%, var(--border, #475569));
  border-top-color: var(--accent, #38bdf8);
  border-radius: 50%;
  animation: labs-check-spin 0.75s linear infinite;
}

.labs-check-spinner--btn {
  width: 1rem;
  height: 1rem;
  border-width: 2px;
  display: inline-block;
  vertical-align: -0.15em;
  margin-right: 0.35rem;
}

@keyframes labs-check-spin {
  to {
    transform: rotate(360deg);
  }
}

.labs-check-form[aria-busy="true"] .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
}

.labs-check-results {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
}

.labs-score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 0.85rem 0;
}

@media (min-width: 640px) {
  .labs-score-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.labs-score {
  padding: 0.85rem 0.75rem;
  border-radius: var(--radius-card-nested);
  border: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
  background: linear-gradient(
    165deg,
    color-mix(in srgb, var(--portfolio-card-fill) 96%, #fff) 0%,
    color-mix(in srgb, var(--portfolio-card-accent) 8%, var(--portfolio-card-fill)) 100%
  );
  box-shadow:
    0 4px 14px rgba(11, 18, 32, 0.08),
    0 0 0 1px color-mix(in srgb, var(--portfolio-card-accent) 12%, transparent);
  text-align: center;
}

.labs-score--good {
  border-color: color-mix(in srgb, #16a34a 55%, var(--portfolio-card-border));
}

.labs-score--ok {
  border-color: color-mix(in srgb, #ca8a04 55%, var(--portfolio-card-border));
}

.labs-score--low {
  border-color: color-mix(in srgb, #dc2626 55%, var(--portfolio-card-border));
}

.labs-score__value {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
}

.labs-score__label {
  font-size: 0.78rem;
  color: var(--muted);
}

.labs-highlights-title {
  margin: 1rem 0 0.5rem;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
}

.labs-highlights {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--muted);
}

.labs-highlights li {
  margin-bottom: 0.65rem;
}

.labs-highlights li span {
  display: block;
  font-size: 0.9rem;
}

.labs-overall {
  display: inline-block;
  margin: 0.5rem 0 0.75rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.labs-overall--pass {
  background: color-mix(in srgb, #16a34a 18%, var(--surface));
}

.labs-overall--warn {
  background: color-mix(in srgb, #ca8a04 18%, var(--surface));
}

.labs-overall--fail {
  background: color-mix(in srgb, #dc2626 18%, var(--surface));
}

.labs-checks-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.labs-checks-list li {
  padding: 0.75rem 0.85rem;
  border: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
  border-radius: var(--radius-card-nested);
  background: color-mix(in srgb, var(--portfolio-card-fill) 92%, var(--bg-alt));
}

.labs-checks__head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.25rem;
}

.labs-check-badge {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
}

.labs-check-badge--pass {
  background: color-mix(in srgb, #16a34a 20%, transparent);
}

.labs-check-badge--warn {
  background: color-mix(in srgb, #ca8a04 20%, transparent);
}

.labs-check-badge--fail {
  background: color-mix(in srgb, #dc2626 20%, transparent);
}

.labs-share,
.labs-upsell,
.labs-results-cta {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
}

.labs-share h3,
.labs-upsell h3 {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
}

.labs-upsell-price {
  font-weight: 700;
}

.labs-upsell-pricing-link {
  margin: 0.75rem 0 0;
  font-size: 0.88rem;
}

.labs-upsell-pricing-link a {
  font-weight: 700;
  color: var(--accent);
}

.labs-pricing-callout,
.labs-upsell-callout {
  margin: 0.35rem 0 0;
  padding: 0.6rem 0.75rem;
  border-radius: var(--radius-card-nested);
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--portfolio-card-border));
  background: color-mix(in srgb, var(--accent) 8%, var(--portfolio-card-fill));
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--muted);
}

.labs-pricing-callout strong,
.labs-upsell-callout strong {
  color: var(--text);
}

.labs-upsell-callout {
  margin-top: 0.75rem;
}

.labs-pricing-lead {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  line-height: 1.5;
}

.labs-pricing-rows {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

.labs-pricing-row {
  padding: 0.85rem 1rem;
  border: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
  border-radius: var(--radius-card-nested);
  background: color-mix(in srgb, var(--portfolio-card-fill) 94%, var(--bg-alt));
}

.labs-pricing-row-main {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.labs-pricing-row-copy {
  display: grid;
  gap: 0.2rem;
  min-width: min(100%, 16rem);
  flex: 1 1 12rem;
}

.labs-pricing-row-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  color: var(--text);
}

.pricing-from,
.labs-pricing-row-copy .pricing-from {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--accent);
}

.labs-pricing-row-blurb {
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--muted);
}

.labs-pricing-row-cta {
  flex: 0 0 auto;
  align-self: center;
}

.labs-pricing-details {
  margin-top: 0.65rem;
  font-size: 0.88rem;
}

.labs-pricing-details summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--accent);
}

.labs-pricing-detail-list {
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
  color: var(--muted);
  line-height: 1.45;
}

.labs-pricing-footnote {
  margin: 0.85rem 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
}

.labs-pricing-quotes--compact .labs-pricing-row-main {
  flex-direction: column;
  align-items: stretch;
}

.labs-pricing-quotes--compact .labs-pricing-row-cta {
  width: 100%;
}

.labs-custom-build-showcase .checkups-showcase-tile--hire {
  min-height: 9.5rem;
}

.checkups-showcase-price {
  display: block;
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--accent);
}

.checkups-showcase-blurb {
  display: block;
  font-size: 0.82rem;
  line-height: 1.35;
  color: var(--muted);
}

.portfolio-nav-showcase-wrap {
  margin: 0.85rem 0 0;
}

.portfolio-band-inner > .portfolio-nav-showcase-wrap--footer {
  grid-column: 1 / -1;
  margin: 0.35rem 0 0;
  padding-top: 1rem;
  border-top: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
}

.portfolio-nav-showcase {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 640px) {
  .portfolio-nav-showcase {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.checkups-showcase-tile--portfolio-nav {
  min-height: 5.5rem;
}

.sprint-includes-list {
  margin: 0 0 1rem;
}

.labs-social-results {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
}

.labs-social-snippet {
  margin-bottom: 1rem;
  padding: 0.85rem;
  border: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
  border-radius: var(--radius-card-nested);
  background: color-mix(in srgb, var(--portfolio-card-fill) 92%, var(--bg-alt));
}

.labs-social-snippet h3 {
  margin: 0 0 0.35rem;
  font-size: 0.92rem;
  color: var(--accent);
}

.labs-social-snippet pre {
  margin: 0;
  white-space: pre-wrap;
  font-family: var(--font);
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--muted);
}

.labs-social-canva {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
}

.labs-social-canva-slides {
  display: grid;
  gap: 0.65rem;
  margin: 0.85rem 0;
}

@media (min-width: 640px) {
  .labs-social-canva-slides {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.labs-social-canva-slide {
  padding: 0.75rem 0.85rem;
  border: var(--portfolio-card-border-width) solid var(--portfolio-card-border);
  border-radius: var(--radius-card-nested);
  background: color-mix(in srgb, var(--portfolio-card-fill) 92%, var(--bg-alt));
}

.labs-social-canva-slide__meta {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
}

.labs-social-canva-slide__text {
  margin: 0 0 0.35rem;
  white-space: pre-wrap;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--text);
}

.labs-social-canva-slide__hint {
  margin: 0;
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.4;
}

.portfolio-band .labs-ez4-strip {
  grid-column: 1 / -1;
}

@media (min-width: 900px) {
  .portfolio-band-inner {
    display: grid;
    grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
  }

  .portfolio-band .labs-ez4-strip {
    grid-column: 1 / -1;
  }
}

@media (max-width: 719px) {
  .labs-check-input-row .btn {
    width: 100%;
  }
}
