/* ==========================================================================
   PhantomOS Theme — Review Page Styles
   Polished affiliate review/money page (modeled after septictankhq.com)
   ========================================================================== */

/* ---------- Review Page Layout ---------- */
.site-review .entry-title {
  text-align: center;
  margin-bottom: 0.5rem;
}

.site-review .entry-header {
  text-align: center;
  margin-bottom: 2.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--phantomos-border, #e2e8f0);
}

.site-review .last-updated {
  display: block;
  text-align: center;
}

/* ---------- Star Ratings ---------- */
.phantomos-stars,
.phantomos-review-summary__stars,
.phantomos-offer-cta__stars {
  display: inline-flex;
  gap: 2px;
  line-height: 1;
}

.star {
  font-size: 1.25rem;
  line-height: 1;
}

.star--full {
  color: var(--phantomos-accent, #f59e0b);
}

.star--half {
  position: relative;
  background: linear-gradient(
    90deg,
    var(--phantomos-accent, #f59e0b) 50%,
    #d1d5db 50%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.star--empty {
  color: #d1d5db;
}

/* ---------- Offer CTA Block ---------- */

/* Hero variant */
.phantomos-offer-cta--hero {
  background: linear-gradient(135deg, var(--phantomos-primary, #1a365d) 0%, #1e40af 100%);
  color: #ffffff;
  padding: 3rem 2rem;
  border-radius: 12px;
  text-align: center;
  margin: 2rem 0;
  position: relative;
  overflow: hidden;
}

.phantomos-offer-cta--hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(ellipse at 30% 0%, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
  pointer-events: none;
}

.phantomos-offer-cta--hero .phantomos-offer-cta__badge {
  display: inline-block;
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.3rem 1rem;
  border-radius: 20px;
  margin-bottom: 1rem;
}

.phantomos-offer-cta--hero .phantomos-offer-cta__headline {
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  font-weight: 700;
  margin: 0 0 0.75rem;
  color: #ffffff;
  line-height: 1.2;
}

.phantomos-offer-cta--hero .phantomos-offer-cta__subheadline {
  font-size: 1.125rem;
  opacity: 0.9;
  margin: 0 0 1.5rem;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

.phantomos-offer-cta--hero .phantomos-offer-cta__rating {
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.phantomos-offer-cta--hero .phantomos-offer-cta__rating-count {
  font-size: 0.875rem;
  opacity: 0.8;
}

.phantomos-offer-cta--hero .phantomos-offer-cta__button {
  display: inline-block;
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
  font-size: 1.125rem;
  font-weight: 700;
  padding: 1rem 2.5rem;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.4);
}

.phantomos-offer-cta--hero .phantomos-offer-cta__button:hover {
  background: #d97706;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(245, 158, 11, 0.5);
  color: #1e293b;
}

/* Strip variant */
.phantomos-offer-cta--strip {
  background: var(--phantomos-secondary, #e8f0fe);
  border: 1px solid var(--phantomos-border, #e2e8f0);
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  margin: 1.5rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.phantomos-offer-cta--strip .phantomos-offer-cta__badge {
  display: inline-block;
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  margin-right: 0.75rem;
}

.phantomos-offer-cta--strip .phantomos-offer-cta__headline {
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0;
  color: var(--phantomos-primary, #1a365d);
}

.phantomos-offer-cta--strip .phantomos-offer-cta__subheadline {
  font-size: 0.875rem;
  color: var(--phantomos-muted, #64748b);
  margin: 0.25rem 0 0;
}

.phantomos-offer-cta--strip .phantomos-offer-cta__content {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1;
  flex-wrap: wrap;
}

.phantomos-offer-cta--strip .phantomos-offer-cta__rating {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
}

.phantomos-offer-cta--strip .phantomos-offer-cta__button {
  display: inline-block;
  background: var(--phantomos-primary, #1a365d);
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 600;
  padding: 0.6rem 1.25rem;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.15s ease;
  flex-shrink: 0;
}

.phantomos-offer-cta--strip .phantomos-offer-cta__button:hover {
  background: var(--phantomos-primary-light, #2b4c7e);
  color: #ffffff;
}

/* Card variant */
.phantomos-offer-cta--card {
  background: #ffffff;
  border: 1px solid var(--phantomos-border, #e2e8f0);
  border-radius: 12px;
  padding: 2rem;
  margin: 1.5rem 0;
  text-align: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.phantomos-offer-cta--card .phantomos-offer-cta__badge {
  display: inline-block;
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  margin-bottom: 0.75rem;
}

.phantomos-offer-cta--card .phantomos-offer-cta__headline {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
  color: var(--phantomos-primary, #1a365d);
}

.phantomos-offer-cta--card .phantomos-offer-cta__subheadline {
  font-size: 0.9375rem;
  color: var(--phantomos-muted, #64748b);
  margin: 0 0 1rem;
}

.phantomos-offer-cta--card .phantomos-offer-cta__rating {
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.phantomos-offer-cta--card .phantomos-offer-cta__button {
  display: inline-block;
  background: var(--phantomos-primary, #1a365d);
  color: #ffffff;
  font-weight: 600;
  padding: 0.75rem 2rem;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.15s ease;
}

.phantomos-offer-cta--card .phantomos-offer-cta__button:hover {
  background: var(--phantomos-primary-light, #2b4c7e);
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(26, 54, 93, 0.2);
}

/* ---------- Comparison Table ---------- */
.phantomos-comparison-table {
  margin: 2.5rem 0;
}

.phantomos-comparison-table__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  margin-bottom: 1.25rem;
  text-align: center;
}

.phantomos-comparison-table__wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.phantomos-comparison-table__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 1px var(--phantomos-border, #e2e8f0);
}

.phantomos-comparison-table__table thead th {
  background: var(--phantomos-primary, #1a365d);
  color: #ffffff;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.875rem 1rem;
  text-align: left;
  white-space: nowrap;
}

.phantomos-comparison-table__table thead th:first-child {
  border-radius: 12px 0 0 0;
}

.phantomos-comparison-table__table thead th:last-child {
  border-radius: 0 12px 0 0;
}

.phantomos-comparison-table__table tbody td {
  padding: 1rem;
  border-bottom: 1px solid var(--phantomos-border, #e2e8f0);
  font-size: 0.9375rem;
  vertical-align: middle;
}

.phantomos-comparison-table__table tbody tr:last-child td {
  border-bottom: none;
}

/* Featured / Top Pick row */
.phantomos-comparison-table__row--featured {
  background: linear-gradient(90deg, rgba(245, 158, 11, 0.06) 0%, rgba(245, 158, 11, 0.02) 100%);
  position: relative;
}

.phantomos-comparison-table__row--featured td:first-child {
  border-left: 3px solid var(--phantomos-accent, #f59e0b);
}

.phantomos-comparison-table__badge {
  display: inline-block;
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.5rem;
  border-radius: 3px;
  margin-bottom: 0.25rem;
}

.phantomos-comparison-table__name strong {
  display: block;
  font-size: 1rem;
  color: var(--phantomos-text, #1e293b);
}

.phantomos-comparison-table__rating {
  font-weight: 600;
  color: var(--phantomos-accent, #f59e0b);
}

.phantomos-comparison-table__rating .phantomos-stars {
  display: inline-flex;
  margin-right: 0.25rem;
}

.phantomos-comparison-table__button {
  display: inline-block;
  background: var(--phantomos-primary, #1a365d);
  color: #ffffff;
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.5rem 1.25rem;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.phantomos-comparison-table__button:hover {
  background: var(--phantomos-primary-light, #2b4c7e);
  color: #ffffff;
  transform: translateY(-1px);
}

.phantomos-comparison-table__row--featured .phantomos-comparison-table__button {
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
}

.phantomos-comparison-table__row--featured .phantomos-comparison-table__button:hover {
  background: #d97706;
  color: #1e293b;
}

/* ---------- Comparison Table — Mobile Cards ---------- */
@media (max-width: 640px) {
  .phantomos-comparison-table__table,
  .phantomos-comparison-table__table thead,
  .phantomos-comparison-table__table tbody,
  .phantomos-comparison-table__table th,
  .phantomos-comparison-table__table td,
  .phantomos-comparison-table__table tr {
    display: block;
  }

  .phantomos-comparison-table__table thead {
    display: none;
  }

  .phantomos-comparison-table__table tbody tr {
    background: #ffffff;
    border: 1px solid var(--phantomos-border, #e2e8f0);
    border-radius: 10px;
    margin-bottom: 1rem;
    padding: 1.25rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  }

  .phantomos-comparison-table__row--featured {
    border-color: var(--phantomos-accent, #f59e0b);
    border-width: 2px;
  }

  .phantomos-comparison-table__row--featured td:first-child {
    border-left: none;
  }

  .phantomos-comparison-table__table tbody td {
    padding: 0.375rem 0;
    border-bottom: none;
    text-align: left;
  }

  .phantomos-comparison-table__table tbody td::before {
    content: attr(data-label);
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--phantomos-muted, #64748b);
    margin-bottom: 0.15rem;
  }

  .phantomos-comparison-table__cta {
    margin-top: 0.5rem;
    text-align: center !important;
  }

  .phantomos-comparison-table__button {
    width: 100%;
    text-align: center;
    display: block;
    padding: 0.75rem;
  }
}

/* ---------- Review Summary Card ---------- */
.phantomos-review-summary {
  background: #ffffff;
  border: 1px solid var(--phantomos-border, #e2e8f0);
  border-radius: 12px;
  padding: 2rem;
  margin: 2rem 0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.phantomos-review-summary__title {
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  margin: 0 0 1rem;
}

.phantomos-review-summary__rating {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.phantomos-review-summary__score {
  font-size: 2rem;
  font-weight: 700;
  color: var(--phantomos-accent, #f59e0b);
  line-height: 1;
}

.phantomos-review-summary__max {
  font-size: 1rem;
  color: var(--phantomos-muted, #64748b);
  margin-right: 0.5rem;
}

.phantomos-review-summary__stars .star {
  font-size: 1.5rem;
}

.phantomos-review-summary__body {
  color: var(--phantomos-text, #1e293b);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

/* Pros & Cons */
.phantomos-review-summary__lists {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.phantomos-review-summary__pros,
.phantomos-review-summary__cons {
  padding: 1.25rem;
  border-radius: 8px;
}

.phantomos-review-summary__pros {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}

.phantomos-review-summary__cons {
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.phantomos-review-summary__list-title {
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0 0 0.75rem;
}

.phantomos-review-summary__pros .phantomos-review-summary__list-title {
  color: #16a34a;
}

.phantomos-review-summary__cons .phantomos-review-summary__list-title {
  color: #dc2626;
}

.phantomos-review-summary__pros ul,
.phantomos-review-summary__cons ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.phantomos-review-summary__pros li,
.phantomos-review-summary__cons li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.5;
}

.phantomos-review-summary__pros li::before {
  content: '\2713';
  position: absolute;
  left: 0;
  top: 0;
  color: #16a34a;
  font-weight: 700;
  font-size: 0.875rem;
}

.phantomos-review-summary__cons li::before {
  content: '\2717';
  position: absolute;
  left: 0;
  top: 0;
  color: #dc2626;
  font-weight: 700;
  font-size: 0.875rem;
}

.phantomos-review-summary__cta {
  text-align: center;
  padding-top: 0.5rem;
}

.phantomos-review-summary__button {
  display: inline-block;
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
  font-size: 1.0625rem;
  font-weight: 700;
  padding: 0.875rem 2.5rem;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

.phantomos-review-summary__button:hover {
  background: #d97706;
  color: #1e293b;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(245, 158, 11, 0.4);
}

@media (max-width: 640px) {
  .phantomos-review-summary {
    padding: 1.5rem;
  }

  .phantomos-review-summary__lists {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .phantomos-review-summary__score {
    font-size: 1.5rem;
  }
}

/* ---------- FAQ Section ---------- */
.phantomos-faq-section {
  margin: 2.5rem 0;
}

.phantomos-faq-section__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  margin-bottom: 1.25rem;
  text-align: center;
}

.phantomos-faq-section__list {
  max-width: 720px;
  margin: 0 auto;
}

.phantomos-faq-section__item {
  background: #ffffff;
  border: 1px solid var(--phantomos-border, #e2e8f0);
  border-radius: 8px;
  margin-bottom: 0.75rem;
  overflow: hidden;
  transition: box-shadow 0.15s ease;
}

.phantomos-faq-section__item:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.phantomos-faq-section__item[open] {
  border-color: var(--phantomos-primary, #1a365d);
  box-shadow: 0 2px 8px rgba(26, 54, 93, 0.08);
}

.phantomos-faq-section__question {
  padding: 1rem 1.25rem;
  font-weight: 600;
  font-size: 1rem;
  color: var(--phantomos-text, #1e293b);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  user-select: none;
  transition: color 0.15s ease;
}

.phantomos-faq-section__question::-webkit-details-marker {
  display: none;
}

.phantomos-faq-section__question::marker {
  display: none;
  content: '';
}

.phantomos-faq-section__question::after {
  content: '+';
  font-size: 1.25rem;
  font-weight: 300;
  color: var(--phantomos-muted, #64748b);
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
}

.phantomos-faq-section__item[open] .phantomos-faq-section__question::after {
  content: '\2212';
  transform: rotate(180deg);
}

.phantomos-faq-section__item[open] .phantomos-faq-section__question {
  color: var(--phantomos-primary, #1a365d);
  border-bottom: 1px solid var(--phantomos-border, #e2e8f0);
}

.phantomos-faq-section__answer {
  padding: 1rem 1.25rem 1.25rem;
  color: var(--phantomos-text, #1e293b);
  font-size: 0.9375rem;
  line-height: 1.7;
}

.phantomos-faq-section__answer p:last-child {
  margin-bottom: 0;
}

/* ---------- Trust Strip ---------- */
/* ---------- Rankings Disclaimer Block ---------- */
/* Small, muted, italic line that sits between the trust strip and the
   quick comparison table. Matches the editorial style on septictankhq.com. */
.phantomos-rankings-disclaimer {
  margin: 0.25rem 0 1.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: var(--phantomos-muted, #64748b);
  line-height: 1.55;
}

/* ---------- Trust Strip ---------- */
.phantomos-trust-strip {
  margin: 0.75rem 0 0.5rem;
  padding: 0;
}

.phantomos-trust-strip__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
}

.phantomos-trust-strip__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--phantomos-muted, #64748b);
  white-space: nowrap;
}

.phantomos-trust-strip__icon {
  font-size: 1.125rem;
  line-height: 1;
  color: #16a34a; /* emerald-600 — green checkmarks for "Independent Reviews" etc. */
  font-weight: 700;
}

.phantomos-trust-strip__image {
  width: 20px;
  height: 20px;
  object-fit: contain;
  opacity: 0.7;
}

.phantomos-trust-strip__text {
  line-height: 1.3;
}

@media (max-width: 640px) {
  .phantomos-trust-strip__list {
    gap: 1rem;
    justify-content: center;
  }

  .phantomos-trust-strip__item {
    font-size: 0.75rem;
  }
}

/* ---------- Sticky CTA Bar ---------- */
.phantomos-sticky-cta-bar {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 999;
  /* Warm cream background — unobtrusive like septictankhq reference */
  background: #fff8e1;
  color: var(--phantomos-text, #1e293b);
  border-top: 1px solid #f0d060;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
  transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  padding: 0;
}

.phantomos-sticky-cta-bar--bottom {
  bottom: 0;
}

.phantomos-sticky-cta-bar--top {
  top: 0;
  bottom: auto;
  transform: translateY(-100%);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-top: none;
  border-bottom: 1px solid #f0d060;
}

.phantomos-sticky-cta-bar.is-visible {
  transform: translateY(0);
}

.phantomos-sticky-cta-bar.is-hidden {
  transform: translateY(100%);
}

.phantomos-sticky-cta-bar--top.is-hidden {
  transform: translateY(-100%);
}

/* Two-column layout: text+stars left, button right */
.phantomos-sticky-cta-bar__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0.75rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.phantomos-sticky-cta-bar__left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
  min-width: 0;
}

.phantomos-sticky-cta-bar__text {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--phantomos-text, #1e293b);
  line-height: 1.3;
}

.phantomos-sticky-cta-bar__stars {
  display: inline-flex;
  gap: 1px;
  color: var(--phantomos-accent, #f59e0b);
  font-size: 1.125rem;
  flex-shrink: 0;
}

.phantomos-sticky-cta-bar__button {
  display: inline-block;
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
  font-size: 0.9375rem;
  font-weight: 700;
  padding: 0.625rem 1.75rem;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.15s ease;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(245, 158, 11, 0.35);
}

.phantomos-sticky-cta-bar__button:hover {
  background: #d97706;
  color: #1e293b;
  box-shadow: 0 4px 10px rgba(245, 158, 11, 0.45);
  transform: translateY(-1px);
}

.phantomos-sticky-cta-bar__close {
  background: none;
  border: none;
  color: var(--phantomos-muted, #64748b);
  font-size: 1.25rem;
  cursor: pointer;
  padding: 0.25rem;
  line-height: 1;
  transition: color 0.15s ease;
  flex-shrink: 0;
}

.phantomos-sticky-cta-bar__close:hover {
  color: var(--phantomos-text, #1e293b);
}

@media (max-width: 640px) {
  .phantomos-sticky-cta-bar__inner {
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    gap: 0.625rem;
  }

  .phantomos-sticky-cta-bar__left {
    /* Share row 1 with the close button rather than taking the full width,
       which used to force the × onto its own third line. */
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .phantomos-sticky-cta-bar__text {
    font-size: 0.875rem;
    flex: 1;
    min-width: 0;
  }

  /* Pull the close button up next to the stars (end of row 1) and push the
     CTA button down to its own full-width row 2. Saves one line. */
  .phantomos-sticky-cta-bar__close {
    order: 1;
  }

  .phantomos-sticky-cta-bar__button {
    order: 2;
    width: 100%;
    text-align: center;
    padding: 0.625rem 1rem;
    /* Same fix as the strip CTA: drop the inherited nowrap once full-width so
       long sticky-bar CTA text wraps instead of overflowing the viewport. */
    white-space: normal;
  }
}

/* ---------- Disclaimer Block ---------- */
.phantomos-disclaimer {
  margin: 2rem 0;
  padding: 1rem 1.25rem;
  border-radius: 8px;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: var(--phantomos-muted, #64748b);
}

.phantomos-disclaimer--general {
  background: #f8fafc;
  border: 1px solid var(--phantomos-border, #e2e8f0);
}

.phantomos-disclaimer--affiliate {
  background: #fffbeb;
  border: 1px solid #fde68a;
}

.phantomos-disclaimer--editorial {
  background: #e8f0fe;
  border: 1px solid #bfdbfe;
}

.phantomos-disclaimer--legal {
  background: #f8fafc;
  border: 1px solid var(--phantomos-border, #e2e8f0);
}

.phantomos-disclaimer__label {
  margin: 0 0 0.375rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.phantomos-disclaimer--affiliate .phantomos-disclaimer__label strong {
  color: #b45309;
}

.phantomos-disclaimer--editorial .phantomos-disclaimer__label strong {
  color: var(--phantomos-primary, #1a365d);
}

.phantomos-disclaimer__text {
  margin: 0;
}

.phantomos-disclaimer__text p {
  margin: 0;
}

/* Collapsible disclaimer via <details> */
.phantomos-disclaimer__details {
  margin: 0;
}

.phantomos-disclaimer__details summary {
  cursor: pointer;
  list-style: none;
  user-select: none;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.phantomos-disclaimer__details summary::-webkit-details-marker {
  display: none;
}

.phantomos-disclaimer__details summary::marker {
  display: none;
  content: '';
}

.phantomos-disclaimer__details summary::after {
  content: ' \25BC';
  font-size: 0.625rem;
  opacity: 0.5;
}

.phantomos-disclaimer__details[open] summary::after {
  content: ' \25B2';
}

.phantomos-disclaimer__details .phantomos-disclaimer__text {
  margin-top: 0.5rem;
}

/* ---------- Review Page — Responsive Strip CTA ---------- */
@media (max-width: 640px) {
  .phantomos-offer-cta--strip {
    flex-direction: column;
    text-align: center;
    padding: 1.25rem;
  }

  .phantomos-offer-cta--strip .phantomos-offer-cta__content {
    flex-direction: column;
    align-items: center;
  }

  .phantomos-offer-cta--strip .phantomos-offer-cta__button {
    width: 100%;
    text-align: center;
    /* The button keeps white-space:nowrap from its desktop rule; once it goes
       full-width on mobile, long CTA text (e.g. "See {Product} Pricing") spills
       past 100% and forces page-wide horizontal scroll. Allow it to wrap. */
    white-space: normal;
  }

  .phantomos-offer-cta--hero {
    padding: 2rem 1.25rem;
    border-radius: 8px;
  }
}

/* ---------- Product Review v2 Card ---------- */
.phantomos-product-review {
  background: #ffffff;
  border: 1px solid var(--phantomos-border, #e2e8f0);
  border-radius: 14px;
  padding: 2rem;
  margin: 2.5rem 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  position: relative;
  overflow: hidden;
}

.phantomos-product-review--best_overall {
  border-color: var(--phantomos-accent, #f59e0b);
  border-width: 2px;
}

.phantomos-product-review--best_overall::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--phantomos-accent, #f59e0b);
}

.phantomos-product-review__header-top {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.phantomos-product-review__header-meta {
  flex: 1;
  min-width: 0;
}

.phantomos-product-review__image-wrap {
  flex-shrink: 0;
  width: 140px;
}

.phantomos-product-review__image {
  width: 140px;
  height: 140px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid var(--phantomos-border, #e2e8f0);
}

.phantomos-product-review__rank-badge {
  display: inline-block;
  background: var(--phantomos-primary, #1a365d);
  color: #ffffff;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  margin-bottom: 0.625rem;
}

.phantomos-product-review--best_overall .phantomos-product-review__rank-badge {
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
}

.phantomos-product-review__name {
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  margin: 0 0 0.5rem;
  line-height: 1.25;
}

.phantomos-product-review__stars {
  display: inline-flex;
  gap: 2px;
}

.phantomos-product-review__rating {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.phantomos-product-review__rating-num {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--phantomos-accent, #f59e0b);
}

.phantomos-product-review__differentiator {
  font-style: italic;
  color: var(--phantomos-muted, #64748b);
  font-size: 0.9375rem;
  margin: 0;
  line-height: 1.5;
}

.phantomos-product-review__summary {
  color: var(--phantomos-text, #1e293b);
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

/* Pros / Cons — two-column green/red */
.phantomos-product-review__pros-cons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.phantomos-product-review__pros-wrap,
.phantomos-product-review__cons-wrap {
  border-radius: 8px;
  padding: 1rem 1.125rem;
}

.phantomos-product-review__pros-wrap {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}

.phantomos-product-review__cons-wrap {
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.phantomos-product-review__pros-heading,
.phantomos-product-review__cons-heading {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0 0 0.625rem;
}

.phantomos-product-review__pros-heading { color: #15803d; }
.phantomos-product-review__cons-heading { color: #b91c1c; }

.phantomos-product-review__pros,
.phantomos-product-review__cons {
  list-style: none;
  margin: 0;
  padding: 0;
}

.phantomos-product-review__pros-item,
.phantomos-product-review__cons-item {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  margin-bottom: 0.4rem;
  color: var(--phantomos-text, #1e293b);
}

.phantomos-product-review__check { color: #16a34a; font-weight: 700; flex-shrink: 0; }
.phantomos-product-review__cross { color: #dc2626; font-weight: 700; flex-shrink: 0; }

/* Body */
.phantomos-product-review__body {
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--phantomos-text, #1e293b);
  margin-bottom: 1.5rem;
}

/* Social proof */
.phantomos-product-review__social-proof {
  background: var(--phantomos-secondary, #e8f0fe);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}

.phantomos-product-review__results-disclaimer {
  font-size: 0.75rem;
  color: var(--phantomos-muted, #64748b);
  margin: 0.5rem 0 0;
  font-style: italic;
}

/* Qualification box — subtle background tint */
.phantomos-product-review__qualification {
  background: #f8fafc;
  border: 1px solid var(--phantomos-border, #e2e8f0);
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}

.phantomos-product-review__qualification-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  margin: 0 0 1rem;
}

.phantomos-product-review__qualification-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.phantomos-product-review__qual-label {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0 0 0.5rem;
  color: var(--phantomos-primary, #1a365d);
}

.phantomos-product-review__qual-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.phantomos-product-review__qual-col li {
  font-size: 0.9375rem;
  line-height: 1.5;
  padding: 0.25rem 0;
  padding-left: 1.25rem;
  position: relative;
  color: var(--phantomos-text, #1e293b);
}

.phantomos-product-review__qual-col--right li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #16a34a;
  font-weight: 700;
}

.phantomos-product-review__qual-col--notright li::before {
  content: '✗';
  position: absolute;
  left: 0;
  color: #dc2626;
  font-weight: 700;
}

/* Pricing tiers */
.phantomos-product-review__pricing {
  margin-bottom: 1.5rem;
}

.phantomos-product-review__pricing-heading {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  margin: 0 0 1rem;
}

.phantomos-product-review__pricing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
}

.phantomos-product-review__tier {
  background: #ffffff;
  border: 1px solid var(--phantomos-border, #e2e8f0);
  border-radius: 10px;
  padding: 1.25rem;
  text-align: center;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}

.phantomos-product-review__tier-name {
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0 0 0.5rem;
  color: var(--phantomos-primary, #1a365d);
}

.phantomos-product-review__price {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--phantomos-accent, #f59e0b);
  margin-bottom: 0.75rem;
  line-height: 1;
}

.phantomos-product-review__tier-features {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  text-align: left;
}

.phantomos-product-review__tier-features li {
  font-size: 0.875rem;
  padding: 0.25rem 0 0.25rem 1.25rem;
  position: relative;
  color: var(--phantomos-text, #1e293b);
}

.phantomos-product-review__tier-features li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #16a34a;
  font-weight: 700;
}

.phantomos-product-review__tier-cta {
  display: inline-block;
  background: var(--phantomos-primary, #1a365d);
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 600;
  padding: 0.5rem 1.25rem;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.15s ease;
}

.phantomos-product-review__tier-cta:hover {
  background: var(--phantomos-primary-light, #2b4c7e);
  color: #ffffff;
}

.phantomos-product-review__pricing-asof {
  font-size: 0.75rem;
  color: var(--phantomos-muted, #64748b);
  margin: 0.75rem 0 0;
  font-style: italic;
  text-align: right;
}

/* Comparison table check/cross cells */
.phantomos-ct__check { color: #16a34a; font-weight: 700; font-size: 1.125rem; }
.phantomos-ct__cross { color: #dc2626; font-weight: 700; font-size: 1.125rem; }
.phantomos-ct__col--featured { background: rgba(245,158,11,.06); }

/* Responsive: stack header on mobile */
@media (max-width: 640px) {
  .phantomos-product-review {
    padding: 1.25rem;
  }

  .phantomos-product-review__header-top {
    flex-direction: column-reverse;
    gap: 1rem;
  }

  .phantomos-product-review__image-wrap {
    width: 100%;
    text-align: center;
  }

  .phantomos-product-review__image {
    width: 120px;
    height: 120px;
    margin: 0 auto;
  }

  .phantomos-product-review__pros-cons {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .phantomos-product-review__qualification-cols {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .phantomos-product-review__pricing-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Inline (Advertiser) Disclosure Block ---------- */
/* Bordered box at the top of review pages — info icon + verbatim copy + Read more link. */
.phantomos-inline-disclosure {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  margin: 0.5rem 0 0.875rem;
  padding: 0.5rem 0.75rem;
  background: #f8fafc;
  border: 1px solid var(--phantomos-border, #e2e8f0);
  border-radius: 6px;
  color: var(--phantomos-muted, #64748b);
  font-size: 0.8125rem;
  line-height: 1.5;
}

.phantomos-inline-disclosure p {
  margin: 0;
}

.phantomos-inline-disclosure__icon {
  flex-shrink: 0;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--phantomos-muted, #64748b);
  opacity: 0.85;
}

.phantomos-inline-disclosure__text {
  margin: 0;
  flex: 1 1 auto;
}

.phantomos-inline-disclosure__link {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  margin-left: 0.25rem;
}

.phantomos-inline-disclosure__link:hover,
.phantomos-inline-disclosure__link:focus {
  color: var(--phantomos-text, #1e293b);
}

/* ---------- Author Byline Block ---------- */
/* Inline byline (no card chrome): [round avatar] By <Name>, <Title>   Updated <Date> */
.phantomos-author-byline {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1rem 0 1.5rem;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}

/* Higher specificity than .entry-content img (which sets border-radius: 8px
   on every in-content image) so the avatar stays a perfect circle on
   review/guide pages. */
.phantomos-author-byline .phantomos-author-byline__avatar,
.entry-content .phantomos-author-byline__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.phantomos-author-byline__avatar--initials {
  background: var(--phantomos-muted, #64748b);
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.phantomos-author-byline__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  font-size: 0.875rem;
  color: var(--phantomos-muted, #64748b);
  line-height: 1.4;
}

.phantomos-author-byline__author {
  color: var(--phantomos-muted, #64748b);
}

.phantomos-author-byline__name {
  font-weight: 600;
  color: var(--phantomos-text, #1e293b);
}

.phantomos-author-byline__title {
  font-style: italic;
}

.phantomos-author-byline__date {
  white-space: nowrap;
}

/* ---------- Quick Comparison Table ---------- */
.phantomos-quick-comparison {
  margin: 2.5rem 0;
}

.phantomos-quick-comparison__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  margin-bottom: 1.25rem;
  text-align: center;
}

.phantomos-quick-comparison__table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.phantomos-quick-comparison__table {
  width: 100%;
  border-collapse: collapse;
  background: #ffffff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  overflow: hidden;
}

.phantomos-quick-comparison__table thead th {
  padding: 1.25rem 1rem;
  text-align: center;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  background: #f8fafc;
  border-bottom: 2px solid var(--phantomos-border, #e2e8f0);
  vertical-align: bottom;
}

.phantomos-quick-comparison__table thead th:first-child {
  background: transparent;
}

.phantomos-quick-comparison__table thead th.phantomos-qc__col--featured {
  background: rgba(58, 140, 63, 0.08);
  border-top: 3px solid #3a8c3f;
}

.phantomos-qc__badge {
  display: inline-block;
  background: #3a8c3f;
  color: #ffffff;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.6rem;
  border-radius: 3px;
  margin-bottom: 0.25rem;
}

.phantomos-quick-comparison__table tbody td {
  padding: 0.875rem 1rem;
  text-align: center;
  font-size: 0.9375rem;
  border-bottom: 1px solid var(--phantomos-border, #e2e8f0);
  vertical-align: middle;
  color: var(--phantomos-text, #1e293b);
}

.phantomos-quick-comparison__table tbody td.phantomos-qc__col--featured {
  background: rgba(58, 140, 63, 0.04);
}

.phantomos-qc__label {
  text-align: left !important;
  font-weight: 600;
  color: var(--phantomos-primary, #1a365d);
  white-space: nowrap;
}

.phantomos-qc__stars {
  display: inline-flex;
  gap: 1px;
  margin-right: 0.25rem;
}

.phantomos-qc__stars .star {
  font-size: 1.125rem;
}

.phantomos-qc__rating-num {
  font-size: 0.875rem;
  color: var(--phantomos-muted, #64748b);
}

.phantomos-qc__cta-row td {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: none;
}

.phantomos-qc__cta-btn {
  display: inline-block;
  background: #3a8c3f;
  color: #ffffff;
  font-size: 0.9375rem;
  font-weight: 700;
  padding: 0.75rem 1.5rem;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(58, 140, 63, 0.25);
}

.phantomos-qc__cta-btn:hover {
  background: #2d6e31;
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(58, 140, 63, 0.35);
}

.phantomos-qc__cta-link {
  color: var(--phantomos-primary, #1a365d);
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
  transition: color 0.15s ease;
}

.phantomos-qc__cta-link:hover {
  color: var(--phantomos-primary-light, #2b4c7e);
  text-decoration: underline;
}

/* Desktop table visible, mobile cards hidden */
.phantomos-quick-comparison__mobile {
  display: none;
}

/* ---------- Quick Comparison — Mobile Cards ---------- */
@media (max-width: 768px) {
  .phantomos-quick-comparison__table-wrap {
    display: none;
  }

  .phantomos-quick-comparison__mobile {
    display: block;
  }

  .phantomos-qc__card {
    background: #ffffff;
    border: 1px solid var(--phantomos-border, #e2e8f0);
    border-radius: 10px;
    margin-bottom: 1rem;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  }

  .phantomos-qc__card--featured {
    border-color: #3a8c3f;
    border-width: 2px;
  }

  .phantomos-qc__card-header {
    padding: 1rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    border-bottom: 1px solid var(--phantomos-border, #e2e8f0);
  }

  .phantomos-qc__card--featured .phantomos-qc__card-header {
    background: rgba(58, 140, 63, 0.06);
    border-bottom-color: rgba(58, 140, 63, 0.2);
  }

  .phantomos-qc__card-name {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--phantomos-primary, #1a365d);
  }

  .phantomos-qc__card-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.625rem 1.25rem;
    border-bottom: 1px solid #f1f5f9;
  }

  .phantomos-qc__card-row:last-child {
    border-bottom: none;
  }

  .phantomos-qc__card-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--phantomos-muted, #64748b);
    /* The label is the long element (full-sentence row names). Let it take the
       free space and WRAP rather than holding its full single-line width — the
       old `flex-shrink: 0` forced the value out past the card's right edge.
       min-width:0 allows it to shrink below content; overflow-wrap breaks an
       unbroken token if one ever appears. */
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
    margin-right: 1rem;
  }

  .phantomos-qc__card-value {
    text-align: right;
    font-size: 0.875rem;
    color: var(--phantomos-text, #1e293b);
    /* Keep the value inside the card: allow it to shrink/wrap as a last resort
       instead of overflowing. Sits on the right via the row's space-between. */
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .phantomos-qc__card-cta {
    padding: 1rem 1.25rem;
    text-align: center;
  }

  .phantomos-qc__card-cta .phantomos-qc__cta-btn {
    display: block;
    width: 100%;
    text-align: center;
  }
}

/* ============================================================
   v2 Polish — Product Review Card enhancements
   ============================================================ */

/* "Why [Product] Stands Out" sub-heading */
.phantomos-product-review__why {
  margin-bottom: 1.25rem;
}

.phantomos-product-review__why-heading {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--phantomos-primary, #1a365d);
  margin: 0 0 0.5rem;
}

/* #1 product image: centered square, no crop. The previous landscape
   crop (object-fit:cover at max-height 280px) clipped portrait product
   shots and looked inconsistent across offers. A 1:1 box with
   object-fit:contain shows the full product on every offer. */
.phantomos-product-review__header {
  margin-bottom: 1.5rem;
}

.phantomos-product-review__image-wrap {
  width: 100%;
  margin: 1rem auto 0;
  text-align: center;
}

.phantomos-product-review__image {
  display: block;
  margin: 0 auto;
  width: 100%;
  max-width: 320px;
  aspect-ratio: 1 / 1;
  height: auto;
  object-fit: contain;
  background: #ffffff;
  border-radius: 10px;
  border: 1px solid var(--phantomos-border, #e2e8f0);
  padding: 0.5rem;
}

/* Rank badge color accents by variant */
.phantomos-product-review__rank-badge--best_overall {
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
}

.phantomos-product-review__rank-badge--runner_up {
  background: #64748b;
  color: #ffffff;
}

.phantomos-product-review__rank-badge--budget {
  background: #94a3b8;
  color: #1e293b;
}

/* Qualification box — accent left border callout */
.phantomos-product-review__qualification {
  border-left: 4px solid var(--phantomos-accent, #f59e0b);
  background: #fffbeb;
  border-top-color: var(--phantomos-border, #e2e8f0);
  border-right-color: var(--phantomos-border, #e2e8f0);
  border-bottom-color: var(--phantomos-border, #e2e8f0);
}

/* Pricing tier badges */
.phantomos-product-review__tier {
  position: relative;
}

.phantomos-product-review__tier-badge {
  display: inline-block;
  background: var(--phantomos-accent, #f59e0b);
  color: #1e293b;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.2rem 0.6rem;
  border-radius: 3px;
  margin-bottom: 0.5rem;
}

.phantomos-product-review__tier--featured {
  border-color: var(--phantomos-accent, #f59e0b);
  box-shadow: 0 0 0 1px var(--phantomos-accent, #f59e0b);
}

/* Bottom CTA — final big "Try X Risk-Free" button, full demo styling. */
.phantomos-product-review__bottom-cta {
  margin: 2rem 0 0;
  text-align: center;
}

.phantomos-product-review__cta-button {
  display: inline-block;
  background: #3a8c3f !important;
  color: #ffffff !important;
  font-size: 1.0625rem;
  font-weight: 700;
  padding: 1rem 2.25rem;
  border-radius: 8px;
  text-decoration: none !important;
  transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
  box-shadow: 0 2px 6px rgba(58, 140, 63, 0.22);
  line-height: 1.3;
  text-align: center;
}

.phantomos-product-review__cta-button:hover,
.phantomos-product-review__cta-button:focus {
  background: #2d6e31 !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(58, 140, 63, 0.30);
}

/* ============================================================
   #1 Best Overall — demo-style enhancements
   (section CTAs, math callout, pricing rows, fit lists)
   ============================================================ */

/* Centered section CTA used between the differentiator/pros-cons block
   and the social-proof block. Mid-card mid-size button. */
.phantomos-product-review__section-cta {
  margin: 1.75rem 0 1.5rem;
  text-align: center;
}

.phantomos-product-review__cta-btn {
  display: inline-block;
  background: #3a8c3f;
  color: #ffffff !important;
  font-size: 0.9375rem;
  font-weight: 700;
  padding: 0.85rem 1.5rem;
  border-radius: 6px;
  text-decoration: none !important;
  line-height: 1.3;
  transition: background 0.15s ease;
  box-shadow: 0 2px 6px rgba(58, 140, 63, 0.20);
}

.phantomos-product-review__cta-btn:hover,
.phantomos-product-review__cta-btn:focus {
  background: #2d6e31;
  color: #ffffff !important;
}

/* "The Math" callout — light green tint, 4px green left accent. */
.phantomos-product-review__math-callout {
  background: #f0f7f0;
  border-left: 4px solid #3a8c3f;
  border-radius: 0 8px 8px 0;
  padding: 18px 22px;
  margin: 1.5rem 0;
  color: #333333;
  font-size: 0.95rem;
  line-height: 1.6;
}

.phantomos-product-review__math-callout strong {
  color: #1b3a5c;
  margin-right: 0.25rem;
}

.phantomos-product-review__math-emoji {
  margin-right: 0.4rem;
}

/* Qualification box — light grey panel with green / grey labels.
   Replaces the older two-column right/not-right layout. */
.phantomos-product-review__qualification {
  background: #f8f8f8;
  border: 1px solid #e2e2e2;
  border-radius: 10px;
  padding: 22px 24px;
  margin: 1.75rem 0;
}

.phantomos-product-review__qualification-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1b3a5c;
  margin: 0 0 0.85rem;
}

.phantomos-product-review__fit-section {
  margin: 0 0 0.85rem;
}

.phantomos-product-review__fit-section:last-child {
  margin-bottom: 0;
}

.phantomos-product-review__fit-label {
  color: #3a8c3f;
  font-weight: 700;
  font-size: 0.875rem;
  margin: 0 0 0.4rem;
  text-transform: none;
  letter-spacing: normal;
}

.phantomos-product-review__fit-label--alt {
  color: #666666;
}

.phantomos-product-review__fit-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.phantomos-product-review__fit-list li {
  font-size: 0.95rem;
  color: #333333;
  padding: 0.2rem 0;
  line-height: 1.55;
}

.phantomos-product-review__fit-list--right li::before {
  content: '✓';
  color: #3a8c3f;
  font-weight: 700;
  margin-right: 0.5rem;
}

.phantomos-product-review__fit-list--notright li::before {
  content: '→';
  color: #999999;
  font-weight: 700;
  margin-right: 0.5rem;
}

/* Pricing tiers — row layout (label on the left, price + per-month +
   small green plan CTA on the right). Replaces the older card grid. */
.phantomos-product-review__pricing {
  background: #f8f8f8;
  border: 1px solid #e2e2e2;
  border-radius: 10px;
  padding: 24px;
  margin: 1.5rem 0;
}

.phantomos-product-review__pricing-heading {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1b3a5c;
  margin: 0 0 0.85rem;
  text-transform: none;
  letter-spacing: normal;
}

/* Disable the previous grid layout used by tier cards. */
.phantomos-product-review__pricing-grid {
  display: block;
}

.phantomos-product-review__pricing-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.6rem;
  padding: 0.55rem 0;
  border-bottom: 1px solid #ececec;
}

.phantomos-product-review__pricing-row:last-of-type {
  border-bottom: none;
}

.phantomos-product-review__pricing-label {
  font-size: 0.95rem;
  font-weight: 500;
  color: #333333;
  flex: 1 1 auto;
  min-width: 0;
}

.phantomos-product-review__pricing-value {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #1b3a5c;
  text-align: right;
  justify-content: flex-end;
}

.phantomos-product-review__pricing-permonth {
  font-weight: 400;
  color: #6b7280;
  font-size: 0.8125rem;
}

.phantomos-product-review__pricing-tag {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 3px;
  margin-left: 0.5rem;
  vertical-align: middle;
  letter-spacing: normal;
  text-transform: none;
}

.phantomos-product-review__pricing-tag--value {
  background: #e8f5e9;
  color: #3a8c3f;
}

.phantomos-product-review__pricing-tag--popular {
  background: #fff8e1;
  color: #b8860b;
}

.phantomos-product-review__pricing-plan-cta {
  display: inline-block;
  background: #3a8c3f;
  color: #ffffff !important;
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 4px;
  text-decoration: none !important;
  line-height: 1.3;
  transition: background 0.15s ease;
}

.phantomos-product-review__pricing-plan-cta:hover,
.phantomos-product-review__pricing-plan-cta:focus {
  background: #2d6e31;
  color: #ffffff !important;
}

.phantomos-product-review__pricing-note {
  font-size: 0.8125rem;
  color: #6b7280;
  margin: 0.85rem 0 0;
  text-align: center;
}

.phantomos-product-review__pricing-note + .phantomos-product-review__pricing-asof {
  margin-top: 0.4rem;
}

/* Reset .pricing-asof to centered + smaller for the new pricing box layout. */
.phantomos-product-review__pricing .phantomos-product-review__pricing-asof {
  font-size: 0.75rem;
  color: #8da3b8;
  text-align: center;
  font-style: normal;
  margin: 0.5rem 0 0;
}

/* Amazon-style review-card mockups — visually mirrors a screenshot of a
   verified-buyer review on a marketplace listing. Used in place of the
   legacy single blockquote on the #1 best_overall card. */
.phantomos-product-review__reviews {
  margin: 1.5rem 0;
}

.phantomos-product-review__reviews-heading {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1b3a5c;
  margin: 0 0 0.85rem;
  text-transform: none;
  letter-spacing: normal;
}

.phantomos-product-review__review-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

@media (max-width: 640px) {
  .phantomos-product-review__review-cards {
    grid-template-columns: 1fr;
  }
}

.phantomos-product-review__review-card {
  background: #ffffff;
  border: 1px solid #e2e2e2;
  border-radius: 6px;
  padding: 16px 18px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #333333;
}

.phantomos-product-review__review-card-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.6rem;
}

.phantomos-product-review__review-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #1b3a5c;
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.phantomos-product-review__review-meta {
  line-height: 1.25;
  min-width: 0;
}

.phantomos-product-review__review-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f2937;
}

.phantomos-product-review__review-verified {
  font-size: 0.75rem;
  color: #c45500;
  font-weight: 700;
  margin-top: 1px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.phantomos-product-review__review-card-source {
  font-size: 0.78rem;
  color: #6b7280;
  margin-top: 0.15rem;
}

.phantomos-product-review__verified-mark {
  color: #c45500;
}

.phantomos-product-review__review-rating {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.25rem;
}

.phantomos-product-review__review-stars {
  color: #ff9900;
  font-size: 0.95rem;
  letter-spacing: 1px;
}

.phantomos-product-review__review-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1f2937;
}

.phantomos-product-review__review-date {
  font-size: 0.75rem;
  color: #6b7280;
  margin-bottom: 0.55rem;
}

.phantomos-product-review__review-body {
  font-size: 0.9rem;
  color: #333333;
  margin: 0;
  line-height: 1.55;
}

.phantomos-product-review__review-source {
  font-size: 0.75rem;
  color: #9ca3af;
  margin: 0.6rem 0 0.2rem;
}

.phantomos-product-review__reviews .phantomos-product-review__results-disclaimer {
  font-size: 0.75rem;
  color: #9ca3af;
  margin: 0;
}

/* ============================================================
   v2 Comparison Table — mirrors septictankhq.com demo.

   Hardcoded colours and !important everywhere because this table
   intentionally ignores per-site brand variables. Values are taken
   from the live demo's computed styles (sept '26):
     - Editor's Choice green:    #3a8c3f
     - Body text:                #333
     - Header / label navy:      #1b3a5c
     - Star gold:                #d4a947
     - Featured cell tint:       rgba(58,140,63,0.07)
     - Featured header tint:     rgba(58,140,63,0.10)
     - Featured side borders:    rgba(58,140,63,0.2)
     - Row separator:            #f0f0f0
   ============================================================ */

/* Hide mobile cards on desktop, show desktop table */
.phantomos-ct-v2__mobile { display: none; }
.phantomos-ct-v2__desktop {
  display: block;
  background: #ffffff;
  border: 1px solid #e5e5e5;
  /* No overflow:hidden + no border-radius — keeps the featured
     column's `border-top` accent from being clipped. */
}

.phantomos-ct-v2__table {
  table-layout: fixed;
  width: 100%;
  border-collapse: collapse !important;
  background: #ffffff !important;
  font-family: inherit;
}

/* Column widths: criteria narrower, three product cols share the rest. */
.phantomos-ct-v2__table > thead > tr > th:first-child,
.phantomos-ct-v2__table > tbody > tr > td:first-child {
  width: 19%;
}
.phantomos-ct-v2__table > thead > tr > th:not(:first-child),
.phantomos-ct-v2__table > tbody > tr > td:not(:first-child) {
  width: 27%;
}

/* Universal cell baseline. !important on layout/typography defeats the
   legacy `.phantomos-comparison-table__table thead th` rule (navy uppercase
   bar) which has higher selector specificity than ours otherwise. */
.phantomos-ct-v2__table th,
.phantomos-ct-v2__table td {
  background: transparent !important;
  color: #333333 !important;
  text-align: center !important;
  vertical-align: middle !important;
  padding: 12px 14px !important;
  border-top: none !important;
  border-bottom: 1px solid #f0f0f0 !important;
  border-left: none !important;
  border-right: none !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  white-space: normal !important;
  border-radius: 0 !important;
}

/* Strip legacy box-shadow/border-radius from the inner table. */
.phantomos-ct-v2__table.phantomos-comparison-table__table {
  box-shadow: none !important;
  border-radius: 0 !important;
  background: #ffffff !important;
}

/* Header row — light grey bg, navy bold text. */
.phantomos-ct-v2__table thead th {
  background: #fafafa !important;
  color: #1b3a5c !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  padding: 16px 14px !important;
  border-bottom: 2px solid #e2e2e2 !important;
  vertical-align: middle !important;
}

/* Featured (Editor's Choice) header — green tint + 3px green top accent.
   Selector goes through `.phantomos-ct-v2__table thead th` to beat the
   universal cell rule on specificity (it'd otherwise wipe these borders). */
.phantomos-ct-v2__table thead th.phantomos-ct-v2__col-header--choice {
  background: rgba(58, 140, 63, 0.10) !important;
  color: #1b3a5c !important;
  border-top: 3px solid #3a8c3f !important;
  border-left: 1px solid rgba(58, 140, 63, 0.2) !important;
  border-right: 1px solid rgba(58, 140, 63, 0.2) !important;
  position: relative;
}

/* The criteria (top-left) cell is empty + light grey. */
.phantomos-ct-v2__criteria-cell {
  background: #fafafa !important;
  border-bottom: 2px solid #e2e2e2 !important;
}

/* Column name (header text) — navy bold, mixed case. */
.phantomos-ct-v2__col-name {
  display: block;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #1b3a5c !important;
  word-break: break-word;
  hyphens: auto;
  line-height: 1.3;
  text-transform: none !important;
  letter-spacing: normal !important;
}

/* Hide the legacy separate rank label — rank is inlined into the col name. */
.phantomos-ct-v2__rank-label {
  display: none !important;
}

/* EDITOR'S CHOICE pill — bright green, white text, uppercase. */
.phantomos-comparison-table__badge,
.phantomos-ct-v2__badge {
  display: inline-block !important;
  background: #3a8c3f !important;
  color: #ffffff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  padding: 3px 8px !important;
  border-radius: 3px !important;
  text-transform: uppercase !important;
  margin: 0 0 6px !important;
  line-height: 1.3 !important;
}

/* Row label (first column body cells) — navy, slightly bolder, left-aligned.
   Scoped through .phantomos-ct-v2__table so its specificity beats the
   universal cell rule above. */
.phantomos-ct-v2__table tbody td.phantomos-ct-v2__row-label,
.phantomos-ct-v2__table tbody td.phantomos-ct-v2__row-label strong {
  text-align: left !important;
  background: transparent !important;
  color: #1b3a5c !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  word-break: break-word;
}

/* Featured body cells — light green tint, side borders, but text colour and
   weight stay the same as other cells. The demo intentionally keeps featured
   cells looking neutral; the column tint is the visual emphasis. */
.phantomos-ct-v2__table tbody td.phantomos-ct-v2__cell--choice {
  background: rgba(58, 140, 63, 0.07) !important;
  color: #333333 !important;
  font-weight: 400 !important;
  border-left: 1px solid rgba(58, 140, 63, 0.2) !important;
  border-right: 1px solid rgba(58, 140, 63, 0.2) !important;
}

/* Bottom CTA row featured cell — 3px green bottom accent (mirrors top). */
.phantomos-ct-v2__table tbody tr.phantomos-ct-v2__cta-row td.phantomos-ct-v2__cell--choice,
.phantomos-ct-v2__cta-row td.phantomos-ct-v2__cell--choice {
  border-bottom: 3px solid #3a8c3f !important;
}

/* Rating cell — gold stars (#d4a947) + small grey rating number. */
.phantomos-ct-v2__cell--rating .phantomos-stars {
  display: inline-flex;
  gap: 1px;
  vertical-align: middle;
}

.phantomos-ct-v2__cell--rating .phantomos-stars .star {
  font-size: 16px;
  line-height: 1;
}

.phantomos-ct-v2__cell--rating .phantomos-stars .star--full {
  color: #d4a947 !important;
}

.phantomos-ct-v2__cell--rating .phantomos-stars .star--half {
  background: linear-gradient(90deg, #d4a947 50%, #d1d5db 50%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
}

.phantomos-ct-v2__cell--rating .phantomos-stars .star--empty {
  color: #d1d5db !important;
}

.phantomos-ct-v2__rating-num {
  margin-left: 6px;
  font-size: 14px;
  color: #555555 !important;
  font-weight: 500;
  vertical-align: middle;
}

/* CTA row — slightly more vertical padding, no row separator under non-featured. */
.phantomos-ct-v2__cta-row td {
  padding: 16px 14px !important;
}

.phantomos-ct-v2__cta-row td:not(.phantomos-ct-v2__cell--choice) {
  border-bottom: none !important;
}

/* Featured CTA — green pill button, white bold text. */
.phantomos-ct-v2__table .phantomos-comparison-table__button,
.phantomos-ct-v2__table .phantomos-comparison-table__button--choice {
  display: inline-block;
  background: #3a8c3f !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  text-decoration: none !important;
  padding: 13px 24px !important;
  border-radius: 6px;
  line-height: 1.3;
  text-align: center;
  box-sizing: border-box;
  box-shadow: none;
  text-transform: none !important;
}

.phantomos-ct-v2__table .phantomos-comparison-table__button:hover,
.phantomos-ct-v2__table .phantomos-comparison-table__button--choice:hover {
  background: #2d6e31 !important;
  color: #ffffff !important;
}

/* Plain text-link CTAs for non-featured columns. */
.phantomos-comparison-table__textlink {
  color: #1b3a5c !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  text-decoration: none !important;
}

.phantomos-comparison-table__textlink:hover,
.phantomos-comparison-table__textlink:focus {
  color: #1b3a5c !important;
  text-decoration: underline !important;
}

/* Mobile-card buttons — same green. */
.phantomos-ct-v2__card .phantomos-comparison-table__button,
.phantomos-ct-v2__card .phantomos-comparison-table__button--choice {
  background: #3a8c3f !important;
  color: #ffffff !important;
}

/* Mobile: show card stack, hide table */
@media (max-width: 720px) {
  .phantomos-ct-v2__desktop { display: none; }
  .phantomos-ct-v2__mobile  { display: block; }

  .phantomos-ct-v2__card {
    background: #ffffff;
    border: 1px solid var(--phantomos-border, #e2e8f0);
    border-radius: 12px;
    padding: 1.25rem;
    margin-bottom: 1rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  }

  .phantomos-ct-v2__card--choice {
    border-color: var(--phantomos-accent, #f59e0b);
    border-width: 2px;
    border-top-width: 4px;
  }

  .phantomos-ct-v2__card-name {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--phantomos-primary, #1a365d);
    margin: 0.5rem 0 1rem;
  }

  .phantomos-ct-v2__card-rows {
    margin: 0 0 1rem;
    padding: 0;
  }

  .phantomos-ct-v2__card-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.4rem 0;
    border-bottom: 1px solid #f1f5f9;
    gap: 0.5rem;
  }

  .phantomos-ct-v2__card-row:last-child {
    border-bottom: none;
  }

  .phantomos-ct-v2__card-row dt {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--phantomos-muted, #64748b);
    /* The label (criteria name) is the long element — often a full sentence.
       The old `flex-shrink: 0` pinned it to its single-line max-content width,
       pushing it past the card's right edge and forcing page-wide horizontal
       scroll on mobile. Let it take the free space and WRAP instead; min-width:0
       lets it shrink below content, overflow-wrap breaks an unbroken token.
       (Mirrors the quick-comparison `.phantomos-qc__card-label` fix above.) */
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .phantomos-ct-v2__card-row dd {
    font-size: 0.875rem;
    color: var(--phantomos-text, #1e293b);
    margin: 0;
    text-align: right;
    /* Keep a long value inside the card too: shrink/wrap as a last resort. */
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .phantomos-ct-v2__card-cta {
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.75rem 1rem;
    /* The CTA class sits on the anchor itself, which inherits white-space:nowrap
       from the base `.phantomos-comparison-table__button` rule. On a full-width
       mobile button long CTA text would then overflow — let it wrap. */
    white-space: normal;
  }
}

/* ---------- Extra-narrow phones (<= 440px) — comparison / quick-comparison cards
   ----------------------------------------------------------------------------
   Scoped deliberately BELOW every mainstream phone width the layout already
   handles (a 448px Pixel 10 Pro and anything wider keeps the layout above
   untouched). Two problems only show up once the card drops under ~340px of
   inner width:

   1. Words were cut mid-token — "YES" rendered as "YE / S". Cause: the
      `overflow-wrap: anywhere` above lowers the value's intrinsic min-content
      width to a single character, so flexbox happily shrank it to ~17px and the
      text broke inside the word. `break-word` keeps the min-content floor at
      the longest word, so a word is only ever broken when it genuinely cannot
      fit a line on its own.
   2. Short values wrapped for no reason — "Monthly use" over two lines while
      the label beside it still had slack. Cause: label and value fight over one
      flex line, and shrinking is distributed across both.

   Fix: let the row wrap. When label + value fit side by side they stay side by
   side (unchanged); when they don't, the value drops to its own full-width line
   (still right-aligned via margin-left:auto) instead of being squeezed into a
   narrow column. Slightly smaller label type and tighter card padding buy back
   the horizontal room that makes most rows fit on one line again. */
@media (max-width: 440px) {
  .phantomos-ct-v2__card {
    padding: 1rem 0.875rem;
  }

  .phantomos-ct-v2__card-row {
    flex-wrap: wrap;
    justify-content: flex-start;
    column-gap: 0.75rem;
    row-gap: 0.125rem;
  }

  .phantomos-ct-v2__card-row dt {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 0.6875rem;
    letter-spacing: 0.02em;
    overflow-wrap: break-word;
  }

  .phantomos-ct-v2__card-row dd {
    flex: 0 1 auto;
    min-width: 0;
    /* Holds the value against the right edge on both a shared row and a
       wrapped-to-its-own line. */
    margin-left: auto;
    overflow-wrap: break-word;
  }

  /* Same treatment for the quick-comparison block's mobile cards, which share
     this label/value row shape. */
  .phantomos-qc__card-row {
    flex-wrap: wrap;
    justify-content: flex-start;
    column-gap: 0.75rem;
    row-gap: 0.125rem;
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }

  .phantomos-qc__card-label {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 0.6875rem;
    letter-spacing: 0.02em;
    margin-right: 0;
    overflow-wrap: break-word;
  }

  .phantomos-qc__card-value {
    flex: 0 1 auto;
    min-width: 0;
    margin-left: auto;
    overflow-wrap: break-word;
  }

  .phantomos-qc__card-header,
  .phantomos-qc__card-cta {
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }
}

/* ---------- Product image unavailable placeholder (T15) ---------- */
.phantomos-product-review__image-missing {
  aspect-ratio: 4 / 3;
  background: #f1f5f9;
  border: 1px dashed #cbd5e1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  font-size: 0.875rem;
}

/* ---------- Condensed product review (#2 / #3) — demo-style section ----------
   Full-width section with h2 + subtitle + stars at the top, a centered
   product image (max 320px), a multi-paragraph editorial body, a "Why It's
   #N" sub-heading, a tinted pricing-note line with a green left accent, and
   a plain navy text link CTA. No block background — both #2 and #3 show
   through to the page background. */
.phantomos-product-review--condensed {
  /* Reset the legacy grid-card styling — !important defeats earlier
     definitions cascaded above. */
  display: block !important;
  grid-template-columns: none !important;
  grid-template-areas: none !important;
  grid-template-rows: none !important;
  gap: normal !important;
  padding: 2.25rem 1.75rem !important;
  border: none !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  margin: 1.25rem 0 !important;
  text-align: left;
  background: transparent !important;
}

/* Header — h2 + subtitle + stars stacked at the top. */
.phantomos-product-review__compact-header {
  margin: 0 0 1.25rem;
}

.phantomos-product-review__compact-heading {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: #1b3a5c !important;
  margin: 0 0 4px !important;
  line-height: 1.3 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

.phantomos-product-review__compact-subtitle {
  font-size: 0.9375rem;
  color: #666666;
  margin: 0 0 8px;
  font-weight: 400;
}

.phantomos-product-review__compact-stars {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
}

.phantomos-product-review__compact-stars-glyphs {
  font-size: 1.1rem;
  letter-spacing: 1px;
  display: inline-flex;
  gap: 1px;
  vertical-align: middle;
}

.phantomos-product-review__compact-stars-glyphs .star--full {
  color: #d4a947 !important;
}
.phantomos-product-review__compact-stars-glyphs .star--half {
  background: linear-gradient(90deg, #d4a947 50%, #d1d5db 50%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
}
.phantomos-product-review__compact-stars-glyphs .star--empty {
  color: #d1d5db !important;
}

.phantomos-product-review__compact-rating-num {
  font-size: 0.9rem;
  color: #555555;
  font-weight: 500;
}

/* Centered product image. */
.phantomos-product-review__compact-image-wrap {
  text-align: center;
  margin: 0 auto 1.75rem;
}

.phantomos-product-review__compact-image {
  max-width: 320px;
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid #e2e2e2;
  display: inline-block;
  vertical-align: middle;
  background: #ffffff;
}

.phantomos-product-review--condensed .phantomos-product-review__image-missing {
  max-width: 320px;
  width: 100%;
  margin: 0 auto;
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  border: 1px dashed #cbd5e1;
  background: #f1f5f9;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Body — multi-paragraph editorial text. Spans the full section width so it
   lines up with the compact header/heading above it and with the #1 full card,
   neither of which is measure-constrained. */
.phantomos-product-review__compact-body {
  font-size: 1rem;
  line-height: 1.6;
  color: #333333;
}

.phantomos-product-review__compact-body p {
  margin: 0 0 1rem;
}

.phantomos-product-review__compact-why-heading {
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  color: #1b3a5c !important;
  margin: 1.75rem 0 0.85rem !important;
  text-transform: none !important;
}

/* Pricing-note line — light grey box with green left accent. */
.phantomos-product-review__compact-pricing-note {
  background: #f0f4f8;
  border-left: 4px solid #3a8c3f;
  border-radius: 0 6px 6px 0;
  padding: 12px 16px;
  margin: 1.25rem 0;
  font-size: 0.95rem;
  color: #333333;
  line-height: 1.5;
}

.phantomos-product-review__compact-pricing-note strong {
  color: #1b3a5c;
  margin-right: 0.25rem;
}

/* Plain navy text link CTA. */
.phantomos-product-review__compact-cta {
  margin: 1.25rem 0 0;
}

.phantomos-product-review__plain-link {
  color: #1b3a5c !important;
  font-weight: 500;
  font-size: 0.95rem;
  text-decoration: none !important;
  transition: color 0.15s ease;
}

.phantomos-product-review__plain-link:hover,
.phantomos-product-review__plain-link:focus {
  color: #1b3a5c !important;
  text-decoration: underline !important;
}

/* Mobile: shrink padding so the section breathes on small screens. */
@media (max-width: 640px) {
  .phantomos-product-review--condensed {
    padding: 1.5rem 1rem !important;
  }
  .phantomos-product-review__compact-heading {
    font-size: 1.25rem !important;
  }
}

.phantomos-product-review__image-missing::after { content: 'Image unavailable'; }

/* ── Comparison table — non-choice column textlinks ─────────────────────── */
.phantomos-comparison-table__textlink {
    display: inline-block;
    padding: 0;
    margin: 0;
    font-size: 0.95rem;
    font-weight: 500;
    color: #2563eb;
    text-decoration: underline;
    text-underline-offset: 3px;
    background: none;
    border: 0;
    border-radius: 0;
    line-height: 1.4;
}

.phantomos-comparison-table__textlink:hover,
.phantomos-comparison-table__textlink:focus {
    color: #1d4ed8;
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

/* In the desktop CTA row, give the textlinks the same vertical centering
   the buttons get without inheriting button padding. */
.phantomos-ct-v2__cta-row td .phantomos-comparison-table__textlink {
    display: inline-block;
    padding: 0.4rem 0;
}

/* In the mobile stacked cards, push the textlink onto its own line under
   the dl so it doesn't sit flush with the last row. */
.phantomos-ct-v2__card .phantomos-comparison-table__textlink.phantomos-ct-v2__card-cta {
    display: inline-block;
    margin-top: 0.75rem;
    padding: 0;
}

/* ── How We Evaluated These Products — discrete card accordion ───────────── */
.phantomos-methodology {
    margin: 1.5rem 0;
    padding: 1rem 1.25rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    font-size: 0.875rem;
    line-height: 1.5;
}

.phantomos-methodology__details {
    margin: 0;
}

.phantomos-methodology__summary {
    list-style: none;
    cursor: pointer;
    display: block;
    color: #334155;
}

/* Hide the default disclosure triangle in browsers that show it. */
.phantomos-methodology__summary::-webkit-details-marker { display: none; }
.phantomos-methodology__summary::marker { content: ''; }

.phantomos-methodology__title {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: #1e293b;
}

/* Decorative caret next to the title — purely cosmetic, just gives readers a
   visual hint that the card is interactive. */
.phantomos-methodology__title-caret {
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid #94a3b8;
    transition: transform 0.18s ease;
}

.phantomos-methodology__details[open] .phantomos-methodology__title-caret {
    transform: rotate(180deg);
}

.phantomos-methodology__preview {
    display: block;
    margin-top: 0.4rem;
    color: #475569;
}

.phantomos-methodology__preview strong {
    color: #1e293b;
}

.phantomos-methodology__toggle {
    display: block;
    margin-top: 0.6rem;
    font-size: 0.825rem;
    color: #2563eb;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.phantomos-methodology__toggle-show,
.phantomos-methodology__toggle-hide {
    display: none;
    align-items: center;
    gap: 0.25rem;
}

/* Default = closed: show the "See all..." label. */
.phantomos-methodology__details:not([open]) .phantomos-methodology__toggle-show {
    display: inline-flex;
}

/* Open: show the "Hide..." label. */
.phantomos-methodology__details[open] .phantomos-methodology__toggle-hide {
    display: inline-flex;
}

.phantomos-methodology__toggle-caret {
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid currentColor;
}

.phantomos-methodology__toggle-caret--up {
    border-top: 0;
    border-bottom: 4px solid currentColor;
}

.phantomos-methodology__body {
    margin-top: 0.9rem;
    padding-top: 0.9rem;
    border-top: 1px solid #e2e8f0;
}

.phantomos-methodology__transparency {
    margin: 0 0 1rem;
    color: #475569;
}

.phantomos-methodology__criteria {
    margin: 0;
    color: #334155;
}

.phantomos-methodology__criteria p {
    margin: 0 0 0.75rem;
    line-height: 1.5;
}

.phantomos-methodology__criteria p:last-child {
    margin-bottom: 0;
}

.phantomos-methodology__criteria strong {
    color: #1e293b;
}
