/* ============================================================
   REALESALETTER — Pricing Page
   v1.2 May 2026 — finish-quality polish on top of brand guidelines.
   Tokens only. No gradients on content. Navy-tinted shadows.
============================================================ */

/* Paw SVG — single source of truth for this page */
:root {
  --paw-orange: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='%23FF5B2E'%3E%3Cellipse cx='7' cy='9' rx='3.2' ry='2.8'/%3E%3Cellipse cx='3' cy='5' rx='1.3' ry='1.7'/%3E%3Cellipse cx='5.8' cy='3' rx='1.3' ry='1.7'/%3E%3Cellipse cx='8.7' cy='3' rx='1.3' ry='1.7'/%3E%3Cellipse cx='11' cy='5' rx='1.1' ry='1.4'/%3E%3C/svg%3E");
}

/* ── Breadcrumbs ── */
.pricingBanner .breadcrumbs {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  font-size: var(--text-xs);
  color: var(--color-text-secondary);
  margin-bottom: var(--space-6);
}
.pricingBanner .breadcrumbs a {
  color: var(--color-text-secondary);
  text-decoration: none;
  font-weight: var(--weight-medium);
  padding: 2px 5px;
  border-radius: var(--radius-sm);
  transition: color var(--transition-fast), background var(--transition-fast);
}
.pricingBanner .breadcrumbs a:hover {
  color: var(--color-orange);
  background: rgba(255, 91, 46, 0.08);
}
.pricingBanner .breadcrumbs .crumb-sep {
  color: var(--color-text-disabled);
  font-size: 11px;
  user-select: none;
}
.pricingBanner .breadcrumbs strong {
  color: var(--color-orange);
  font-weight: var(--weight-bold);
  background: rgba(255, 91, 46, 0.08);
  padding: 2px 8px;
  border-radius: var(--radius-full);
}

/* ── Banner ── */
.pricingBanner {
  position: relative;
  background: var(--color-bg-warm);
  width: 100%;
  padding: var(--space-24) 0 178px;
  border-bottom-left-radius: 48px;
  border-bottom-right-radius: 48px;
  overflow: hidden;
}
.pricingBanner::before,
.pricingBanner::after {
  content: '';
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.6;
}
.pricingBanner::before {
  background-image: url('../../all-states-page/images/pawBefore.svg');
  width: 51px;
  height: 70px;
  left: 0;
  top: var(--space-20);
}
.pricingBanner::after {
  background-image: url('../../all-states-page/images/pawAfter.svg');
  width: 57px;
  height: 79px;
  right: 0;
  top: var(--space-16);
  background-position: right;
}
.pricingBanner .bannerHeading {
  text-align: center;
  max-width: 880px;
  margin: 0 auto;
}
.pricingBanner .bannerHeading .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: var(--space-4);
}
.pricingBanner .bannerHeading .eyebrow::before {
  content: '';
  width: 20px;
  height: 2px;
  background: var(--color-orange);
  border-radius: 1px;
  flex-shrink: 0;
}
.pricingBanner .bannerHeading h1 {
  font-family: var(--font-serif);
  font-size: clamp(32px, 4vw, var(--text-5xl));
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
  color: var(--color-text-heading);
  margin: 0 0 var(--space-5);
}
.pricingBanner .bannerHeading h1 .keyword-highlight {
  color: var(--color-orange);
}
.pricingBanner .bannerHeading > p {
  font-size: var(--text-md);
  line-height: var(--leading-body);
  color: var(--color-text-body);
  max-width: 720px;
  margin: 0 auto var(--space-6);
}

/* Hero trust strip */
.hero-trust-strip {
  list-style: none;
  padding: 0;
  margin: 0 auto var(--space-6);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-3) var(--space-6);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  max-width: 760px;
}
.hero-trust-strip li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  position: relative;
}
.hero-trust-strip li:not(:last-child)::after {
  content: '';
  position: absolute;
  right: calc(var(--space-6) * -0.5 - 1px);
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 14px;
  background: var(--color-border-strong);
}
.hero-trust-strip li strong {
  color: var(--color-text-heading);
  font-weight: var(--weight-bold);
}
.hero-trust-stars {
  color: #F59E0B;
  letter-spacing: 1px;
  font-size: 13px;
}

/* Hero footnote callout — orange left-bar */
.hero-footnote {
  max-width: 780px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  background: var(--color-bg-white);
  border-left: 3px solid var(--color-orange);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  box-shadow: var(--shadow-xs);
  text-align: left;
}
.hero-footnote-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--color-orange);
  margin-top: 2px;
}
.hero-footnote p {
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-style: italic;
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  color: var(--color-text-secondary);
  margin: 0;
}
.hero-footnote sup {
  color: var(--color-orange);
  font-weight: var(--weight-bold);
}

/* ── Payment Section (4 cards) ── */
.payment-section {
  padding: 0 0 var(--space-16);
}
.payment-wrapper {
  max-width: 1280px;
  width: 100%;
  margin: -88px auto 0;
  position: relative;
}
.payment-slider-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
  align-items: stretch;
}
.payment-slider-item {
  display: flex;
  min-width: 0;
}
.payment-card {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  padding: var(--space-10) var(--space-6) var(--space-8);
  background: var(--color-bg-white);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-normal),
              box-shadow var(--transition-normal),
              border-color var(--transition-normal);
}
.payment-card:hover {
  border-color: rgba(255, 91, 46, 0.20);
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

/* Popular card — physically elevated above siblings */
.popular-slot {
  align-items: stretch;
}
.popular-slot .payment-card {
  border-color: var(--color-orange);
  box-shadow: var(--shadow-md);
  background: var(--color-bg-warm);
  transform: translateY(-12px);
  z-index: 2;
}
.popular-slot .payment-card:hover {
  transform: translateY(-15px);
  box-shadow: var(--shadow-lg);
}

/* Card badges */
.card-badge {
  position: absolute;
  top: -10px;
  right: var(--space-5);
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: #fff;
  background: var(--color-orange);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-cta);
  white-space: nowrap;
  z-index: 1;
}
.card-badge-popular {
  background: var(--color-navy);
  box-shadow: var(--shadow-sm);
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

/* Card title (was <p> with bold, now <h2>) */
.payment-card .card-title {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-normal);
  color: var(--color-text-heading);
  margin: 0 0 var(--space-5);
}

/* Price block */
.price-text {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
  color: var(--color-orange);
}
.price-currency {
  font-size: 22px;
  font-weight: var(--weight-bold);
  line-height: 1;
  margin-right: 2px;
}
.price-amount {
  font-family: var(--font-serif);
  font-size: 48px;
  font-weight: var(--weight-regular);
  line-height: 1;
  letter-spacing: var(--tracking-tight);
}
.price-cents {
  font-size: 18px;
  font-weight: var(--weight-medium);
  color: var(--color-text-secondary);
  margin-left: 2px;
}

/* Struck-through original price on combo card */
.price-strike {
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--weight-medium);
  color: var(--color-text-secondary);
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
  text-decoration-color: var(--color-text-secondary);
  margin-left: var(--space-2);
}

/* Billing microcopy under price */
.price-billing {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-6);
  min-height: 22px;
}

/* "Save $X" savings pill */
.price-save-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wide);
  color: #15803d;
  background: rgba(34, 197, 94, 0.12);
  border-radius: var(--radius-full);
  white-space: nowrap;
}

/* Apply button */
.apply-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin: 0 0 var(--space-8);
  padding: 13px var(--space-4) 14px;
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--weight-bold);
  line-height: 1.2;
  text-align: center;
  color: var(--color-orange);
  background: var(--color-bg-white);
  border: 1.5px solid var(--color-border-strong);
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: background var(--transition-normal),
              color var(--transition-normal),
              border-color var(--transition-normal),
              box-shadow var(--transition-normal),
              transform var(--transition-normal);
}
.apply-btn svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  transition: transform var(--transition-normal);
}
.apply-btn:hover {
  background: var(--color-orange);
  color: #fff;
  border-color: var(--color-orange);
  box-shadow: var(--shadow-cta);
  text-decoration: none;
}
.apply-btn:hover svg {
  transform: translateX(2px);
}
.payment-card.active .apply-btn {
  background: var(--color-orange);
  color: #fff;
  border-color: var(--color-orange);
  box-shadow: var(--shadow-cta);
}
.payment-card.active .apply-btn:hover {
  background: var(--color-orange-hover);
  border-color: var(--color-orange-hover);
  box-shadow: var(--shadow-cta-hover);
  transform: translateY(-1px);
}

/* Features list */
.payment-card .card-features {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-6);
  flex-grow: 1;
}
.payment-card .card-features li {
  position: relative;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: var(--weight-medium);
  line-height: var(--leading-normal);
  color: var(--color-text-body);
  padding-left: 26px;
  margin-bottom: var(--space-4);
}
.payment-card .card-features li:last-child {
  margin-bottom: 0;
}
.payment-card .card-features li::before {
  content: '';
  position: absolute;
  background-image: var(--paw-orange);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  width: 16px;
  height: 16px;
  top: 5px;
  left: 0;
  transform: rotate(-8deg);
}

/* Card small print */
.card-small-print {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  color: var(--color-text-secondary);
  border-top: 1px solid var(--color-border);
  padding-top: var(--space-4);
  margin: 0;
}

/* ── Trust Logos ── */
.logosfirst-section {
  padding: var(--space-16) 0;
}
.logosfirst-section .logos-wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-16);
  max-width: 1100px;
  margin: 0 auto;
}
.logosfirst-section .logos-card {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.logosfirst-img {
  height: 127px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.logosfirst-img img {
  max-width: 100%;
  height: auto;
}
.logosfirst-section .logo-content {
  margin: var(--space-6) 0 0;
}
.logosfirst-section .logo-content p {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: var(--weight-medium);
  line-height: var(--leading-normal);
  color: var(--color-text-body);
  margin: 0;
}

/* ── Compare Section ── */
.compare-section {
  padding: var(--space-16) 0;
  background: var(--color-bg-warm);
  position: relative;
}
.compare-heading {
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--space-12);
}
.compare-heading .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: var(--space-3);
}
.compare-heading .eyebrow::before {
  content: '';
  width: 20px;
  height: 2px;
  background: var(--color-orange);
  border-radius: 1px;
  flex-shrink: 0;
}
.compare-heading h2 {
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, var(--text-4xl));
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
  color: var(--color-text-heading);
  margin: 0 0 var(--space-4);
}
.compare-heading p {
  font-family: var(--font-sans);
  font-size: var(--text-md);
  line-height: var(--leading-body);
  color: var(--color-text-body);
  margin: 0 auto;
  max-width: 620px;
}
.compare-wrapper {
  max-width: 980px;
  width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
  position: relative;
  z-index: 1;
}
.true-col,
.false-col {
  background: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  box-shadow: var(--shadow-sm);
}
.true-col {
  border-color: rgba(255, 91, 46, 0.25);
  border-top: 3px solid var(--color-orange);
}
.false-col {
  border-top: 3px solid var(--color-text-secondary);
}
.col-head {
  margin: 0 0 var(--space-6);
}
.col-head h3 {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-normal);
  color: var(--color-text-heading);
  margin: 0;
}
.true-col .col-head h3 {
  color: var(--color-orange);
}
.true-col ul,
.false-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.true-col ul li,
.false-col ul li {
  position: relative;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  color: var(--color-text-body);
  padding-left: 26px;
  margin-bottom: var(--space-4);
}
.true-col ul li:last-child,
.false-col ul li:last-child {
  margin-bottom: 0;
}
.true-col ul li::before,
.false-col ul li::before {
  content: '';
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  width: 15px;
  height: 15px;
  top: 6px;
  left: 0;
}
.true-col ul li::before {
  background-image: url('../images/check-icon.svg');
}
.false-col ul li::before {
  background-image: url('../images/cross-check-icon.svg');
}

/* ── Legal Validity — 3 column grid ── */
.letter-section {
  padding: var(--space-20) 0;
}
.letter-heading {
  text-align: center;
  max-width: 760px;
  margin: 0 auto var(--space-12);
}
.letter-heading .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: var(--space-3);
}
.letter-heading .eyebrow::before {
  content: '';
  width: 20px;
  height: 2px;
  background: var(--color-orange);
  border-radius: 1px;
  flex-shrink: 0;
}
.letter-heading h2 {
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, var(--text-4xl));
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
  color: var(--color-text-heading);
  margin: 0 0 var(--space-4);
}
.letter-heading p {
  font-family: var(--font-sans);
  font-size: var(--text-md);
  line-height: var(--leading-body);
  color: var(--color-text-body);
  margin: 0 auto;
  max-width: 660px;
}
.letter-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  max-width: 1100px;
  margin: 0 auto;
}
.letter-card {
  background: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6) var(--space-6) var(--space-8);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-normal),
              border-color var(--transition-normal),
              transform var(--transition-normal);
}
.letter-card:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(255, 91, 46, 0.2);
  transform: translateY(-2px);
}
.letter-card-esa {
  border-top: 3px solid var(--color-orange);
}
.letter-card-psd {
  border-top: 3px solid var(--color-navy);
}
.letter-card-penalties {
  border-top: 3px solid #DC2626;
  background: rgba(220, 38, 38, 0.025);
}
.letter-card header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}
.letter-card-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--color-orange);
  background: rgba(255, 91, 46, 0.1);
  border-radius: var(--radius-full);
}
.letter-card-psd .letter-card-tag {
  color: var(--color-navy);
  background: rgba(14, 20, 95, 0.08);
}
.letter-card-tag-warn {
  color: #DC2626;
  background: rgba(220, 38, 38, 0.08);
}
.letter-card-price {
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-tight);
  color: var(--color-orange);
  line-height: 1;
}
.letter-card-psd .letter-card-price {
  color: var(--color-navy);
}
.letter-card h3 {
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  color: var(--color-text-heading);
  margin: 0 0 var(--space-4);
}
.letter-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.letter-card ul li {
  position: relative;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  color: var(--color-text-body);
  padding-left: 22px;
  margin-bottom: var(--space-3);
}
.letter-card ul li:last-child {
  margin-bottom: 0;
}
.letter-card-esa ul li::before,
.letter-card-psd ul li::before {
  content: '';
  position: absolute;
  background-image: url('../images/check-icon.svg');
  background-repeat: no-repeat;
  background-size: contain;
  width: 12px;
  height: 12px;
  top: 7px;
  left: 0;
}
.letter-card-penalties ul li::before {
  content: '';
  position: absolute;
  background-image: url('../images/cross-check-icon.svg');
  background-repeat: no-repeat;
  background-size: contain;
  width: 12px;
  height: 12px;
  top: 7px;
  left: 0;
  filter: hue-rotate(0);
}

/* Reviewer signature band */
.letter-reviewer {
  max-width: 760px;
  margin: var(--space-10) auto 0;
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) var(--space-6);
  background: var(--color-bg-warm);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.letter-reviewer-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--color-navy);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wide);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(14, 20, 95, 0.12);
  object-fit: cover;
}
img.letter-reviewer-avatar { display: block; padding: 0; background: transparent; }
.letter-reviewer-txt {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-snug);
}
.letter-reviewer-txt strong {
  font-size: var(--text-md);
  font-weight: var(--weight-bold);
  color: var(--color-text-heading);
}
/* Reviewer name links to the clinician profile — inherit byline styling. */
.byline-reviewer-link { color: inherit; text-decoration: none; }
.byline-reviewer-link:hover,
.byline-reviewer-link:focus-visible { color: var(--color-orange); text-decoration: underline; }
.letter-reviewer-label {
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

/* ── Review-Site Logos ── */
.logos-section {
  padding: var(--space-16) 0;
  background: var(--color-bg-warm);
}
.logos-section .logos-wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-20);
  max-width: 1000px;
  margin: 0 auto;
}
.logos-section .logos-card {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.logos-section .logos-img {
  max-width: 216px;
  width: 100%;
  height: 68px;
  object-fit: contain;
}
.logos-section .logo-content {
  margin-top: var(--space-5);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}
.logos-section .logo-content span {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: var(--weight-medium);
  line-height: var(--leading-normal);
  color: var(--color-text-body);
}

/* ── Video Testimonials ── */
.review-section {
  padding: var(--space-20) 0 var(--space-10);
}
.banner-reviews {
  max-width: 1080px;
  width: 100%;
  margin: 0 auto;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  padding: var(--space-6) var(--space-8) var(--space-8);
  background: var(--color-bg-white);
  box-shadow: var(--shadow-sm);
}
.reviews-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
  margin-bottom: var(--space-6);
  padding-bottom: var(--space-5);
  border-bottom: 1px solid var(--color-border);
}
.reviews-rating {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  background: var(--color-bg-peach);
  border-radius: var(--radius-full);
  padding: var(--space-2) var(--space-4);
}
.reviews-rating p {
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  line-height: 1.4;
  color: var(--color-text-heading);
  margin: 0;
}
.reviews-rating p strong {
  font-weight: var(--weight-bold);
}
.reviews-watch-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  color: var(--color-orange);
  text-decoration: none;
  transition: color var(--transition-fast);
}
.reviews-watch-all svg {
  width: 12px;
  height: 12px;
  transition: transform var(--transition-fast);
}
.reviews-watch-all:hover {
  color: var(--color-orange-hover);
  text-decoration: underline;
}
.reviews-watch-all:hover svg {
  transform: translateX(2px);
}
.video-wrapper {
  max-width: 900px;
  width: 100%;
  position: relative;
  margin: 0 auto;
}
.video-card {
  position: relative;
  margin: 0;
}
.video-card a {
  display: block;
  max-width: 202px;
  width: 100%;
  height: 199px;
  border-radius: var(--radius-md);
  overflow: hidden;
  position: relative;
}
.video-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.video-card-caption {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  color: var(--color-text-heading);
  margin: var(--space-2) 0 0;
  max-width: 202px;
}
.play-btn {
  position: absolute;
  width: 48px;
  height: 48px;
  background: rgba(219, 43, 66, 0.7);
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  cursor: pointer;
  transition: background var(--transition-normal);
}
.play-btn::before {
  content: '';
  position: absolute;
  background-image: url('../images/play-button-icon.svg');
  background-repeat: no-repeat;
  background-size: contain;
  width: 19px;
  height: 21px;
  top: 50%;
  left: 54%;
  transform: translate(-50%, -50%);
}
.play-btn::after {
  content: '';
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: inherit;
  animation: pulseAnimation 1.8s infinite;
}
.video-card:hover .play-btn {
  background: var(--color-orange);
}
@keyframes pulseAnimation {
  0%   { box-shadow: 0 0 0 0 rgba(255, 91, 46, 0.45); }
  100% { box-shadow: 0 0 0 20px transparent; }
}
.videoSwipper {
  position: relative !important;
  width: 100%;
  margin: 0 auto;
  cursor: pointer;
}
.swiper-button-next-video {
  width: 48px;
  height: 199px;
  border: none;
  border-radius: var(--radius-md);
  transition: background var(--transition-normal);
  top: 0;
  bottom: auto;
  right: -56px;
  position: absolute;
  z-index: 1;
  cursor: pointer;
  background: var(--color-orange);
  padding: 0;
}
.swiper-button-next-video:hover {
  background: var(--color-orange-hover);
}
.swiper-button-next-video::after {
  content: '';
  position: absolute;
  background-image: url('../images/swiper-right-icon.svg');
  background-repeat: no-repeat;
  width: 25px;
  height: 25px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  filter: brightness(0) invert(1);
}
.video-wrapper.firstSlide .swiper-button-next-video::after {
  transform: translate(-50%, -50%) rotate(180deg);
}
.fancybox__backdrop {
  background: rgba(14, 20, 95, 0.85) !important;
}

/* ── FAQ ── */
.faq-section {
  padding: var(--space-16) 0;
}
.faq-list {
  max-width: 820px;
  margin: 0 auto;
}
.faq-heading-block {
  text-align: center;
  margin: 0 auto var(--space-10);
}
.faq-heading-block .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: var(--space-3);
}
.faq-heading-block .eyebrow::before {
  content: '';
  width: 20px;
  height: 2px;
  background: var(--color-orange);
  border-radius: 1px;
  flex-shrink: 0;
}
.faq-head {
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, var(--text-4xl));
  font-weight: var(--weight-regular);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  text-align: center;
  color: var(--color-text-heading);
  margin: 0;
}
.faq-wrapper {
  width: 100%;
  margin: 0 auto;
}
.faq-card {
  background: var(--color-bg-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  position: relative;
  cursor: pointer;
  margin-bottom: var(--space-3);
  padding: var(--space-5) var(--space-6);
  box-shadow: var(--shadow-xs);
  transition: border-color var(--transition-normal),
              box-shadow var(--transition-normal);
}
.faq-card:hover {
  border-color: rgba(255, 91, 46, 0.25);
  box-shadow: var(--shadow-sm);
}
.faq-card.open {
  border-color: rgba(255, 91, 46, 0.35);
  background: var(--color-bg-warm);
  box-shadow: var(--shadow-sm);
}
.card-head {
  position: relative;
  padding-right: 40px;
  cursor: pointer;
}
.card-head p,
.card-head h3 {
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  color: var(--color-text-heading);
  margin: 0;
  transition: color var(--transition-fast);
}
.faq-card:hover .card-head p,
.faq-card:hover .card-head h3,
.faq-card.open .card-head p,
.faq-card.open .card-head h3 {
  color: var(--color-orange);
}
.card-head::before {
  content: '';
  position: absolute;
  background-image: url('../../images/faq-arrowDown.svg');
  background-repeat: no-repeat;
  background-size: contain;
  width: 18px;
  height: 18px;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: transform var(--transition-normal);
}
.card-head.rotate::before {
  transform: translateY(-50%) rotate(180deg);
}
.card-para {
  display: none;
  padding: var(--space-4) 0 0;
  border-top: 1px solid var(--color-border);
  margin-top: var(--space-4);
}
.card-para p {
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--weight-regular);
  line-height: var(--leading-body);
  color: var(--color-text-body);
  margin: 0 0 var(--space-3);
}
.card-para p:last-child {
  margin-bottom: 0;
}
.card-para a {
  color: var(--color-orange);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 91, 46, 0.25);
  font-weight: var(--weight-medium);
}
.card-para a:hover {
  border-bottom-color: var(--color-orange);
}

/* ── Final CTA ── */
.cta-section {
  padding: var(--space-12) 0 var(--space-20);
}
.cta-wrapper {
  max-width: 820px;
  width: 100%;
  margin: 0 auto;
  border-radius: var(--radius-xl);
  background: var(--color-bg-peach);
  border: 1px solid rgba(255, 91, 46, 0.2);
  padding: var(--space-16) var(--space-12);
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.cta-wrapper::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(14, 20, 95, 0.04) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}
.cta-wrapper .cta-title {
  position: relative;
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, var(--text-4xl));
  font-weight: var(--weight-regular);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--color-text-heading);
  margin: 0 0 var(--space-4);
}
.cta-wrapper .cta-sub {
  position: relative;
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--weight-regular);
  line-height: var(--leading-body);
  color: var(--color-text-body);
  margin: 0 auto var(--space-8);
  max-width: 560px;
}
.cta-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 16px 36px;
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: var(--weight-bold);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  background: var(--color-orange);
  color: #fff;
  border-radius: var(--radius-full);
  border: none;
  border-bottom: 4px solid var(--color-orange-hover);
  box-shadow: var(--shadow-cta);
  transition: background var(--transition-normal),
              box-shadow var(--transition-normal),
              transform var(--transition-normal);
}
.cta-btn svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  transition: transform var(--transition-normal);
}
.cta-btn:hover {
  background: var(--color-orange-hover);
  box-shadow: var(--shadow-cta-hover);
  transform: translateY(2px);
  border-bottom-width: 2px;
  text-decoration: none;
  color: #fff;
}
.cta-btn:hover svg {
  transform: translateX(2px);
}

/* CTA reassure row */
.cta-reassure {
  list-style: none;
  padding: 0;
  margin: var(--space-6) 0 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-4) var(--space-6);
}
.cta-reassure li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  color: var(--color-text-body);
}
.cta-reassure svg {
  width: 14px;
  height: 14px;
  color: #15803d;
  flex-shrink: 0;
}

/* CTA phone fallback */
.cta-phone {
  position: relative;
  margin: var(--space-5) 0 0;
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: var(--leading-normal);
}
.cta-phone a {
  color: var(--color-orange);
  font-weight: var(--weight-bold);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 91, 46, 0.25);
  transition: border-color var(--transition-fast);
}
.cta-phone a:hover {
  border-bottom-color: var(--color-orange);
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 1100px) {
  .payment-slider-row { grid-template-columns: repeat(2, 1fr); }
  .popular-slot .payment-card { transform: translateY(-6px); }
  .popular-slot .payment-card:hover { transform: translateY(-9px); }
  .letter-grid { grid-template-columns: 1fr; max-width: 720px; }
  .logosfirst-section .logos-wrapper { gap: var(--space-10); }
  .logos-section .logos-wrapper { gap: var(--space-12); }
}

@media (max-width: 900px) {
  .pricingBanner { padding: var(--space-16) 0 var(--space-20); border-bottom-left-radius: 32px; border-bottom-right-radius: 32px; }
  .pricingBanner::before,
  .pricingBanner::after { display: none; }
  .compare-wrapper { grid-template-columns: 1fr; gap: var(--space-5); }
  .hero-trust-strip li:not(:last-child)::after { display: none; }
}

@media (max-width: 768px) {
  .payment-slider-row { grid-template-columns: 1fr; gap: var(--space-4); padding: var(--space-5) 0 var(--space-10); }
  .payment-wrapper { margin: -64px auto 0; }
  .popular-slot .payment-card { transform: none; }
  .popular-slot .payment-card:hover { transform: translateY(-3px); }
  .payment-wrapper .swiper-slide { display: flex; justify-content: center; }
  .swiper-pagination-payment {
    position: absolute !important;
    text-align: center !important;
    transition: 0.3s opacity !important;
    transform: translate3d(0, 0, 0) !important;
    bottom: 1px !important;
    z-index: 1 !important;
  }
  .swiper-pagination-payment .swiper-pagination-bullet {
    background: var(--color-bg-peach);
    opacity: 1;
    width: 9px;
    height: 9px;
  }
  .swiper-pagination-payment .swiper-pagination-bullet-active {
    background: var(--color-orange) !important;
    width: 28px !important;
    height: 9px !important;
    border-radius: var(--radius-full) !important;
  }

  .logosfirst-section { padding: var(--space-10) 0; }
  .logosfirst-section .logos-wrapper { grid-template-columns: 1fr; gap: var(--space-10); }
  .logos-section { padding: var(--space-10) 0; }
  .logos-section .logos-wrapper { grid-template-columns: 1fr; gap: var(--space-8); }
  .logos-card { display: flex; flex-direction: column; align-items: center; justify-content: center; }
  .logosfirst-img { height: auto; }

  .compare-section { padding: var(--space-12) 0; }
  .letter-section { padding: var(--space-12) 0; }
  .letter-grid { grid-template-columns: 1fr; }
  .review-section { padding: var(--space-12) 0; }
  .banner-reviews { padding: var(--space-5) var(--space-4) var(--space-6); }
  .reviews-header { flex-direction: column; align-items: flex-start; }
  .swiper-button-next-video { display: none; }
}

@media (max-width: 575px) {
  .pricingBanner { padding: var(--space-12) 0 var(--space-16); border-bottom-left-radius: 24px; border-bottom-right-radius: 24px; }
  .pricingBanner .bannerHeading h1 { font-size: 28px; }
  .pricingBanner .bannerHeading > p { font-size: var(--text-base); }
  .payment-card { padding: var(--space-8) var(--space-5); }
  .price-amount { font-size: 42px; }
  .letter-reviewer { flex-direction: column; align-items: flex-start; }
  .faq-section { padding: var(--space-10) 0 var(--space-12); }
  .faq-head { font-size: 24px; }
  .card-head p,
  .card-head h3 { font-size: var(--text-base); }
  .card-para p { font-size: var(--text-base); }
  .review-section { padding: var(--space-10) 0; }
  .reviews-watch-all { font-size: var(--text-xs); }
  .video-card a { max-width: 150px; height: 150px; }
  .play-btn { width: 40px; height: 40px; }
  .play-btn::before { width: 14px; height: 15px; }
  @keyframes pulseAnimation {
    0%   { box-shadow: 0 0 0 0 rgba(255, 91, 46, 0.45); }
    100% { box-shadow: 0 0 0 12px transparent; }
  }
  .cta-section { padding: var(--space-10) 0 var(--space-16); }
  .cta-wrapper { padding: var(--space-10) var(--space-5); }
  .cta-wrapper .cta-title { font-size: 22px; }
  .cta-btn { padding: 14px 28px; font-size: var(--text-md); }
  .cta-reassure { gap: var(--space-3); }
}

/* ============================================================
   LIVELINESS LAYER — motion + micro-interactions
   Respects prefers-reduced-motion.
============================================================ */

/* Hero background orbs — soft, slow drift */
.banner-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
}
.banner-orb-1 {
  width: 280px; height: 280px;
  background: rgba(255, 91, 46, 0.22);
  top: -80px; left: -60px;
  animation: orbFloat 14s ease-in-out infinite;
}
.banner-orb-2 {
  width: 220px; height: 220px;
  background: rgba(255, 217, 178, 0.5);
  top: 40%; right: -40px;
  animation: orbFloat 18s ease-in-out infinite 2s reverse;
}
.banner-orb-3 {
  width: 180px; height: 180px;
  background: rgba(14, 20, 95, 0.08);
  bottom: -40px; left: 35%;
  animation: orbFloat 22s ease-in-out infinite 4s;
}
@keyframes orbFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%      { transform: translate(20px, -15px) scale(1.06); }
  66%      { transform: translate(-15px, 10px) scale(0.96); }
}
.pricingBanner > .container {
  position: relative;
  z-index: 1;
}

/* Scroll-reveal */
.js-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.js-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.js-reveal[data-reveal-delay="1"] { transition-delay: 0.08s; }
.js-reveal[data-reveal-delay="2"] { transition-delay: 0.16s; }
.js-reveal[data-reveal-delay="3"] { transition-delay: 0.24s; }

/* Most Popular badge — gentle breathing pulse */
.card-badge-popular {
  animation: badgeBreathe 2.6s ease-in-out infinite;
}
@keyframes badgeBreathe {
  0%, 100% {
    transform: translateX(-50%) scale(1);
    box-shadow: var(--shadow-sm);
  }
  50% {
    transform: translateX(-50%) scale(1.04);
    box-shadow: 0 4px 18px rgba(14, 20, 95, 0.22);
  }
}

/* Combo card — subtle orange glow on hover */
.payment-card.active {
  position: relative;
}
.payment-card.active::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: calc(var(--radius-lg) + 2px);
  background: var(--color-bg-peach);
  z-index: -1;
  opacity: 0;
  transition: opacity var(--transition-normal);
}
.payment-card.active:hover::after {
  opacity: 1;
}

/* Video card — gentle zoom on hover */
.video-card a {
  transition: transform var(--transition-normal),
              box-shadow var(--transition-normal);
}
.video-card:hover a {
  transform: scale(1.03);
  box-shadow: var(--shadow-md);
}
.video-card .play-btn {
  transition: background var(--transition-normal),
              transform var(--transition-normal);
}
.video-card:hover .play-btn {
  transform: translate(-50%, -50%) scale(1.1);
}

/* Buttons get GPU layer hint to keep hover lifts smooth */
.apply-btn,
.cta-btn,
.btn-upsell-strip {
  will-change: transform;
}

/* Counter-up stats — prevent layout shift while digits change */
.hero-trust-strip li strong[data-count] {
  display: inline-block;
  min-width: 1ch;
  font-variant-numeric: tabular-nums;
}

/* Respect users who prefer no motion */
@media (prefers-reduced-motion: reduce) {
  .banner-orb { animation: none; }
  .card-badge-popular { animation: none; }
  .js-reveal { opacity: 1; transform: none; transition: none; }
  .video-card:hover a { transform: none; }
}

/* ============================================================
   AOS-LIKE ANIMATIONS — data-aos attribute system
   Mirrors the AOS library API (fade-up/down/left/right, zoom-in/out, flip-up)
   without the dependency. Driven by IntersectionObserver in JS.
============================================================ */
[data-aos] {
  opacity: 0;
  transition-property: transform, opacity;
  transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition-duration: 700ms;
  will-change: transform, opacity;
}
[data-aos="fade-up"]    { transform: translate3d(0, 30px, 0); }
[data-aos="fade-down"]  { transform: translate3d(0, -30px, 0); }
[data-aos="fade-left"]  { transform: translate3d(40px, 0, 0); }
[data-aos="fade-right"] { transform: translate3d(-40px, 0, 0); }
[data-aos="zoom-in"]    { transform: scale(0.92); }
[data-aos="zoom-out"]   { transform: scale(1.06); }
[data-aos="flip-up"]    { transform: perspective(2500px) rotateX(-90deg); }
[data-aos].aos-animate {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1) rotateX(0);
}
@media (prefers-reduced-motion: reduce) {
  [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ============================================================
   Section background paws — compare, letter, faq
   ============================================================ */
.pricing-section-paws { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.pricing-bg-paw { position: absolute; display: block; background-image: var(--paw-orange); background-size: contain; background-repeat: no-repeat; background-position: center; }

.compare-section, .letter-section, .faq-section { position: relative; overflow: hidden; }
.compare-section .container, .letter-section .container, .faq-section .container { position: relative; z-index: 1; }

/* Compare section */
.compare-paw-a { top: 6%;    left: 2%;  width: 44px; height: 44px; transform: rotate(-18deg); opacity: 0.09; }
.compare-paw-b { top: 24%;   right: 3%; width: 36px; height: 36px; transform: rotate(14deg);  opacity: 0.08; }
.compare-paw-c { bottom: 18%; left: 3%; width: 40px; height: 40px; transform: rotate(8deg);   opacity: 0.08; }
.compare-paw-d { bottom: 8%;  right: 4%; width: 30px; height: 30px; transform: rotate(-12deg); opacity: 0.10; }

/* Letter section */
.letter-paw-a { top: 4%;    left: 3%;  width: 46px; height: 46px; transform: rotate(-20deg); opacity: 0.09; }
.letter-paw-b { top: 28%;   right: 2%; width: 34px; height: 34px; transform: rotate(16deg);  opacity: 0.08; }
.letter-paw-c { bottom: 12%; left: 4%; width: 42px; height: 42px; transform: rotate(6deg);   opacity: 0.09; }
.letter-paw-d { bottom: 6%;  right: 5%; width: 30px; height: 30px; transform: rotate(-10deg); opacity: 0.10; }

/* FAQ section — tall, 5 paws */
.faq-paw-a { top: 3%;    left: 3%;  width: 50px; height: 50px; transform: rotate(-20deg); opacity: 0.08; }
.faq-paw-b { top: 22%;   right: 2%; width: 40px; height: 40px; transform: rotate(12deg);  opacity: 0.07; }
.faq-paw-c { top: 55%;   left: 2%;  width: 44px; height: 44px; transform: rotate(5deg);   opacity: 0.09; }
.faq-paw-d { bottom: 18%; right: 3%; width: 36px; height: 36px; transform: rotate(-16deg); opacity: 0.08; }
.faq-paw-e { bottom: 5%;  left: 10%; width: 32px; height: 32px; transform: rotate(22deg);  opacity: 0.07; }

@media (max-width: 768px) {
  .compare-paw-a, .compare-paw-c,
  .letter-paw-a, .letter-paw-c,
  .faq-paw-a, .faq-paw-c, .faq-paw-d { width: 30px; height: 30px; }
  .compare-paw-b, .compare-paw-d,
  .letter-paw-b, .letter-paw-d,
  .faq-paw-b, .faq-paw-e { width: 24px; height: 24px; }
}
