.lib-objection-handler {
  padding-block: var(--lib-space-section-y);
  background-color: var(--lib-surface-page);
}

.lib-objection-handler__container {
  width: var(--lib-container-wide);
  margin-inline: auto;
  padding-inline: var(--lib-space-4);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--lib-space-10);
}

.lib-objection-handler__label {
  margin: 0 0 var(--lib-space-4);
  font-family: var(--lib-font-body);
  font-size: var(--lib-font-size-caption);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--lib-text-brand) 45%, var(--lib-text-primary));
}

.lib-objection-handler__title {
  margin: 0 0 var(--lib-space-6);
  font-family: var(--lib-font-heading);
  font-size: clamp(1.75rem, 5vw, 2.75rem);
  font-weight: 700;
  line-height: 1.1;
  color: var(--lib-text-primary);
}

.lib-objection-handler__lead {
  margin: 0 0 var(--lib-space-4);
  font-family: var(--lib-font-body);
  font-size: var(--lib-font-size-body-lg);
  line-height: 1.6;
  color: var(--lib-text-secondary);
}

.lib-objection-handler__diagnosis {
  list-style: none;
  margin: 0 0 var(--lib-space-6);
  padding: var(--lib-space-5);
  background-color: color-mix(in srgb, var(--lib-surface-brand-primary) 5%, transparent);
  border-left: 3px solid var(--lib-border-brand);
  border-radius: 0 var(--lib-radius-md) var(--lib-radius-md) 0;
  display: flex;
  flex-direction: column;
  gap: var(--lib-space-2);
}

.lib-objection-handler__diagnosis li {
  font-family: var(--lib-font-body);
  font-size: var(--lib-font-size-body-sm);
  color: var(--lib-text-primary);
  line-height: 1.5;
}

.lib-objection-handler__lead--accent {
  font-weight: 700;
  color: var(--lib-text-primary);
  font-size: var(--lib-font-size-body-lg);
}

.lib-objection-handler__cta {
  margin-top: var(--lib-space-6);
}

.lib-objection-handler__cta--mobile {
  display: block;
}

.lib-objection-handler__cta--desktop {
  display: none;
}

/* --lib-color-deep/-inverse deliberately NOT migrated across this
   panel and its descendants (framework-label, item-title, item-desc
   below): a real, permanently dark sub-panel the section author chose,
   the same legitimate fixed-dark-band identity pattern documented for
   hero-section.css/split-hero.css -- a real, page-authored contrast
   composition, not a Component silently owning its own theme. */
.lib-objection-handler__panel {
  padding: var(--lib-space-8);
  background-color: var(--lib-color-deep);
  border-radius: var(--lib-radius-lg);
  color: var(--lib-color-inverse);
}

.lib-objection-handler__framework-label {
  margin: 0 0 var(--lib-space-6);
  font-family: var(--lib-font-body);
  font-size: var(--lib-font-size-caption);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--lib-color-inverse) 60%, transparent);
}

.lib-objection-handler__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--lib-space-5);
}

.lib-objection-handler__item {
  display: flex;
  align-items: flex-start;
  gap: var(--lib-space-4);
}

.lib-objection-handler__node {
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: var(--lib-space-1);
  color: var(--lib-icon-brand);
}

.lib-objection-handler__node svg {
  display: block;
  width: 100%;
  height: 100%;
}

.lib-objection-handler__item-title {
  display: block;
  font-family: var(--lib-font-heading);
  font-size: var(--lib-font-size-body-sm);
  font-weight: 700;
  color: var(--lib-color-inverse);
  margin-bottom: var(--lib-space-1);
}

.lib-objection-handler__item-desc {
  display: block;
  font-family: var(--lib-font-body);
  font-size: var(--lib-font-size-small);
  line-height: 1.55;
  /* Pure color body text LAW (2026-10-14): description text is pure inverse. */
  color: var(--lib-color-inverse);
}

/* Optional verbatim customer quote backing the section (2026-10-14). */
.lib-objection-handler__quote {
  margin: var(--lib-space-8) 0 0;
  padding-left: var(--lib-space-5);
  border-left: 0.1875rem solid var(--lib-border-brand);
}

.lib-objection-handler__quote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

.lib-objection-handler__quote blockquote::before,
.lib-objection-handler__quote blockquote::after {
  content: none;
}

.lib-objection-handler__quote blockquote p {
  margin: 0;
  font-size: var(--lib-font-size-base);
  font-style: italic;
  line-height: 1.6;
}

.lib-objection-handler__quote figcaption {
  margin-top: var(--lib-space-2);
  font-size: var(--lib-font-size-body-sm);
  font-weight: 700;
}

.lib-objection-handler__quote figcaption span {
  margin-left: var(--lib-space-2);
  font-weight: 400;
}

/* quote.url: the source line links to the original review. */
.lib-objection-handler__quote .lib-objection-handler__quote-link {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--lib-color-primary, currentColor);
  text-underline-offset: 0.2em;
}

.lib-objection-handler__quote .lib-objection-handler__quote-link:hover,
.lib-objection-handler__quote .lib-objection-handler__quote-link:focus-visible {
  color: var(--lib-color-primary, currentColor);
}

@media (min-width: 768px) {
  .lib-objection-handler__container {
    padding-inline: var(--lib-space-8);
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }

  .lib-objection-handler__cta--mobile {
    display: none;
  }

  .lib-objection-handler__cta--desktop {
    display: block;
  }
}

@media (min-width: 1024px) {
  .lib-objection-handler {
    padding-block: var(--lib-space-section-y);
  }
}
