/* ==========================================================================
   RZX-B — Warm trust-led editorial-rich variant. Scoped under .rzx-root.rzx-b
   Personality: WARM, image-dense, every section carries a real photo or strong
   designed visual. Brooklinen/Quince/Our Place depth — substantial, reassuring.
   Anti-slop discipline: flat-at-rest, one accent ≤10%, expo-out only, warm
   neutrals, no drop-shadow soup, no identical grids, no gratuitous gradients.
   BeTheme table bleed resets included. Mobile-first responsive.
   ========================================================================== */

/* ── FONTS (Space Grotesk from Google — Lato assumed already loaded by theme) ── */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&display=swap');

/* ════════════════════════════════════════════════════════════
   TOKENS — declared on .rzx-root (inherited by all children)
   All selectors prefixed .rzx-root .rzx-b OR .rzx-root.rzx-b
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b {
  /* brand */
  --red:       #ae0500;
  --red-deep:  #8c0703;
  --red-soft:  #fbece9;
  --red-line:  #f3d3ce;
  /* neutrals (warm) */
  --ink:       #13161d;
  --paper:     #faf9f7;
  --paper-alt: #f3f1ec;
  --graphite:  #1c2027;
  --ash:       #5b6371;
  --ash-soft:  #8a909b;
  --mist:      #e6e2db;
  --white:     #fff;
  /* accents */
  --green:     #1f7a4d;  /* table check glyph only */
  --gold:      #c98a2b;  /* review stars only */
  /* type */
  --disp:      'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --body:      'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  /* motion — expo-out for every transition */
  --ease:      cubic-bezier(0.16, 1, 0.3, 1);
  /* layout */
  --wrap:      1180px;
  --narrow:    680px;

  font-family: var(--body);
  color: var(--graphite);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.rzx-root.rzx-b *,
.rzx-root.rzx-b *::before,
.rzx-root.rzx-b *::after {
  box-sizing: border-box;
}

.rzx-root.rzx-b a {
  text-decoration: none;
  color: inherit;
}

/* ════════════════════════════════════════════════════════════
   LAYOUT PRIMITIVES
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-s {
  padding: clamp(64px, 8vw, 120px) 0;
  position: relative;
  overflow: hidden; /* contain any designed SVG overflow */
}

/* lush variant: extra breathing room on the image-heavy sections */
.rzx-root.rzx-b .rzb-s--lush {
  padding: clamp(80px, 9vw, 128px) 0;
}

.rzx-root.rzx-b .rzb-s--paper  { background: var(--paper); }
.rzx-root.rzx-b .rzb-s--alt    { background: var(--paper-alt); }
.rzx-root.rzx-b .rzb-s--ink    { background: var(--ink); color: #eceae6; }
.rzx-root.rzx-b .rzb-s--final  { padding: clamp(72px, 9vw, 128px) 0; }

.rzx-root.rzx-b .rzb-wrap {
  width: 100%;
  max-width: var(--wrap);
  margin: 0 auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

.rzx-root.rzx-b .rzb-narrow {
  max-width: var(--narrow);
}

/* ════════════════════════════════════════════════════════════
   TYPOGRAPHY
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-eyebrow {
  font-family: var(--disp);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--red);
  margin: 0 0 18px;
  display: block;
}

.rzx-root.rzx-b .rzb-s--ink .rzb-eyebrow { color: #ff6f63; }

/* Brand-red star motif in eyebrow only — per-card stars stay gold */
.rzx-root.rzx-b .rzb-eyebrow--stars {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-wrap: wrap;
}

.rzx-root.rzx-b .rzb-eyebrow-star {
  width: 13px;
  height: 13px;
  fill: var(--red);
  stroke: none;
}

.rzx-root.rzx-b .rzb-h {
  font-family: var(--disp);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.04;
  color: var(--ink);
  margin: 0;
  font-size: clamp(2.1rem, 1.4rem + 2.7vw, 3.5rem);
  text-wrap: balance;
}

.rzx-root.rzx-b .rzb-h--disp {
  font-size: clamp(2.2rem, 1.5rem + 3vw, 3.8rem);
  margin: 0 0 4px;
}

.rzx-root.rzx-b .rzb-s--ink .rzb-h { color: #fff; }

.rzx-root.rzx-b .rzb-h--sm {
  font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem);
}

.rzx-root.rzx-b .rzb-h3 {
  font-family: var(--disp);
  font-weight: 600;
  font-size: 1.3rem;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0 0 8px;
  line-height: 1.2;
}

.rzx-root.rzx-b .rzb-s--ink .rzb-h3 { color: #fff; }

.rzx-root.rzx-b .rzb-hl { color: var(--red); }
.rzx-root.rzx-b .rzb-s--ink .rzb-hl { color: #ff7468; }

.rzx-root.rzx-b .rzb-lead {
  font-size: 1.12rem;
  line-height: 1.65;
  color: var(--ash);
  margin: 18px 0 0;
  max-width: 62ch;
  text-wrap: pretty;
}

.rzx-root.rzx-b .rzb-lead--narrow { max-width: 52ch; }

.rzx-root.rzx-b .rzb-lead--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.rzx-root.rzx-b .rzb-s--ink .rzb-lead { color: rgba(255,255,255,.72); }

.rzx-root.rzx-b .rzb-p {
  font-size: 1rem;
  line-height: 1.62;
  color: var(--ash);
  margin: 0;
}

.rzx-root.rzx-b .rzb-meta {
  font-family: var(--disp);
  font-size: .8rem;
  letter-spacing: .04em;
  color: var(--ash-soft);
}

.rzx-root.rzx-b .rzb-inline-link {
  color: var(--red);
  border-bottom: 1px solid var(--red-line);
  transition: border-color .2s var(--ease);
}
.rzx-root.rzx-b .rzb-inline-link:hover { border-color: var(--red); }

.rzx-root.rzx-b .rzb-foot {
  font-size: .78rem;
  color: var(--ash-soft);
  margin-top: 14px;
}

/* ════════════════════════════════════════════════════════════
   BUTTONS — primary red CTA dominant, call demoted
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-cta {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .02em;
  padding: 16px 30px;
  border-radius: 8px;
  background: var(--red);
  color: #fff;
  border: 0;
  cursor: pointer;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .2s var(--ease);
  -webkit-tap-highlight-color: transparent;
}

.rzx-root.rzx-b .rzb-cta:hover,
.rzx-root.rzx-b .rzb-cta:focus-visible {
  background: var(--red-deep);
  transform: translateY(-2px);
  box-shadow: 0 10px 30px -8px rgba(174,5,0,.5);
  color: #fff;
}

.rzx-root.rzx-b .rzb-cta:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
}

.rzx-root.rzx-b .rzb-cta svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
  transition: transform .25s var(--ease);
}

.rzx-root.rzx-b .rzb-cta:hover svg { transform: translateX(4px); }

.rzx-root.rzx-b .rzb-call {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: .95rem;
  color: var(--graphite);
  border-bottom: 1px solid var(--mist);
  padding-bottom: 2px;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}

.rzx-root.rzx-b .rzb-call:hover { color: var(--red); border-color: var(--red); }
.rzx-root.rzx-b .rzb-call:focus-visible { outline: 2px solid var(--red); border-radius: 2px; }

.rzx-root.rzx-b .rzb-s--ink .rzb-call { color: #fff; border-color: rgba(255,255,255,.3); }
.rzx-root.rzx-b .rzb-s--ink .rzb-call:hover { color: #ff7468; border-color: #ff7468; }

.rzx-root.rzx-b .rzb-call svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}

.rzx-root.rzx-b .rzb-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 34px;
}

.rzx-root.rzx-b .rzb-actions--c {
  justify-content: center;
}

/* ════════════════════════════════════════════════════════════
   § 01 OPENER — asymmetric split
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-opener { padding: clamp(72px, 9vw, 128px) 0; }

.rzx-root.rzx-b .rzb-split {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.rzx-root.rzx-b .rzb-split__img {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 24px 64px -20px rgba(19,22,29,.18);
}

.rzx-root.rzx-b .rzb-split__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rzx-root.rzx-b .rzb-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--red);
  background: var(--red-soft);
  border: 1px solid var(--red-line);
  padding: 7px 14px;
  border-radius: 100px;
  margin-bottom: 24px;
}

.rzx-root.rzx-b .rzb-tag svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  flex: none;
}

/* Reassurance strip */
.rzx-root.rzx-b .rzb-reassure {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin-top: 30px;
  padding: 16px 20px;
  border-radius: 10px;
  background: var(--paper-alt);
  border: 1px solid var(--mist);
}

.rzx-root.rzx-b .rzb-reassure span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .9rem;
  font-weight: 600;
  color: var(--graphite);
  font-family: var(--disp);
}

.rzx-root.rzx-b .rzb-reassure svg {
  width: 17px;
  height: 17px;
  color: var(--red);
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}

/* ── PIECE 4: boxed-keyword in the §01 H1 ──
   Soft tinted fill + thin rounded outline in brand soft/line tones (NOT
   alarm-red). box-decoration-break:clone keeps the box clean across wraps. */
.rzx-root.rzx-b .rzb-kw {
  color: var(--red);
  background: var(--red-soft);
  border: 1px solid var(--red-line);
  border-radius: 10px;
  padding: 0.02em 0.22em;
  margin: 0 0.02em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Optional subtle one-time draw-in of the underline accent when revealed */
.rzx-root.rzx-b .rzb-kw::after {
  content: "";
  display: block;
  height: 2px;
  margin-top: 1px;
  background: var(--red-line);
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left center;
}
.rzx-root.rzx-b.rzb-js .rzb-rv.rzb-in .rzb-kw::after {
  transform: scaleX(1);
  transition: transform .6s var(--ease) .25s;
}

/* ════════════════════════════════════════════════════════════
   § 02 PROOFLINE — recessed quiet strip
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-proofline {
  background: var(--paper);
  border-top: 2px solid var(--red);
  border-bottom: 1px solid var(--mist);
  padding: 28px 0;
}

.rzx-root.rzx-b .rzb-proofline__text {
  font-family: var(--disp);
  font-size: .95rem;
  letter-spacing: .05em;
  color: var(--ash);
  margin: 0;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px 28px;
}

/* Discrete pill-chips for rhythm */
.rzx-root.rzx-b .rzb-proof-pill {
  display: inline-block;
}

.rzx-root.rzx-b .rzb-proof-pill + .rzb-proof-pill::before {
  content: "·";
  color: var(--mist);
  margin-right: 28px;
  margin-left: -28px;
}

.rzx-root.rzx-b .rzb-proofline__text strong {
  color: var(--ink);
  font-weight: 600;
}

/* ════════════════════════════════════════════════════════════
   HEAD BLOCK
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-head {
  margin-bottom: clamp(36px, 4vw, 56px);
  max-width: 640px;
}

.rzx-root.rzx-b .rzb-head--c {
  margin-inline: auto;
  text-align: center;
}

/* ════════════════════════════════════════════════════════════
   § 03 PRODUCTS — asymmetric card family
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-card {
  background: var(--white);
  border: 1px solid var(--mist);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  /* Warm variant: give cards a subtle shadow at rest */
  box-shadow: 0 2px 12px -4px rgba(19,22,29,.06);
}

.rzx-root.rzx-b .rzb-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px -12px rgba(19,22,29,.18);
  border-color: var(--mist);
}

.rzx-root.rzx-b .rzb-card__img {
  position: relative;
  overflow: hidden;
  background: var(--paper-alt);
}

.rzx-root.rzx-b .rzb-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ease);
}

.rzx-root.rzx-b .rzb-card:hover .rzb-card__img img {
  transform: scale(1.04);
}

.rzx-root.rzx-b .rzb-card__body {
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 6px;
}

/* Use-case label — differentiating eyebrow per card (claim-safe, muted) */
.rzx-root.rzx-b .rzb-card__use {
  font-family: var(--disp);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ash-soft);
  margin-bottom: 4px;
  display: block;
}

.rzx-root.rzx-b .rzb-card__link {
  margin-top: auto;
  padding-top: 14px;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .86rem;
  color: var(--red);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.rzx-root.rzx-b .rzb-card__link svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
  transition: transform .25s var(--ease);
}

.rzx-root.rzx-b .rzb-card:hover .rzb-card__link svg {
  transform: translateX(4px);
}

/* Chips */
.rzx-root.rzx-b .rzb-chip {
  display: inline-flex;
  align-items: center;
  font-size: .7rem;
  font-weight: 700;
  color: var(--red);
  background: var(--red-soft);
  border: 1px solid var(--red-line);
  border-radius: 100px;
  padding: 4px 10px;
  font-family: var(--disp);
  letter-spacing: .04em;
}

.rzx-root.rzx-b .rzb-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 4px 0 0;
}

.rzx-root.rzx-b .rzb-chip--solo {
  display: inline-flex;
  margin-top: 6px;
}

/* Featured card (Home Internet) */
.rzx-root.rzx-b .rzb-card--feat .rzb-card__img {
  aspect-ratio: 16/11;
}

.rzx-root.rzx-b .rzb-card--feat .rzb-h3 {
  font-size: 1.7rem;
  letter-spacing: -0.02em;
}

.rzx-root.rzx-b .rzb-card--feat .rzb-card__body {
  padding: 28px 30px;
}

/* Layout grids */
.rzx-root.rzx-b .rzb-prodtop {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 20px;
}

.rzx-root.rzx-b .rzb-prodtop .rzb-card__img { aspect-ratio: 16/11; }

.rzx-root.rzx-b .rzb-prodbot {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 20px;
}

.rzx-root.rzx-b .rzb-prodbot .rzb-card__img { aspect-ratio: 16/10; }

/* ════════════════════════════════════════════════════════════
   § 04 WEDGE DIAGRAM — Tower-to-home designed element
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-wedge {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.rzx-root.rzx-b .rzb-wedge__art {
  background: var(--paper);
  border: 1px solid var(--mist);
  border-radius: 16px;
  padding: 32px 20px;
  box-shadow: 0 4px 24px -8px rgba(19,22,29,.07);
}

.rzx-root.rzx-b .rzb-diagram {
  width: 100%;
  height: auto;
  display: block;
}

/* Beam animation */
@keyframes rzb-beam-march {
  to { stroke-dashoffset: -32; }
}

.rzx-root.rzx-b .rzb-beam {
  stroke-dashoffset: 0;
  animation: rzb-beam-march 1.4s linear infinite;
}
.rzx-root.rzx-b .rzb-beam--2 { animation-duration: 1.8s; }
.rzx-root.rzx-b .rzb-beam--3 { animation-duration: 2.1s; }

/* Signal pulse dot */
@keyframes rzb-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: .35; }
}

.rzx-root.rzx-b .rzb-signal-pulse {
  transform-box: fill-box;
  transform-origin: center;
  animation: rzb-pulse 2.4s ease-in-out infinite;
}

.rzx-root.rzx-b .rzb-wedge__copy {
  /* text side */
}

.rzx-root.rzx-b .rzb-wedge__list {
  list-style: none;
  padding: 0;
  margin: 24px 0 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.rzx-root.rzx-b .rzb-wedge__list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--ash);
}

.rzx-root.rzx-b .rzb-wedge__list svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: var(--green);
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
  margin-top: 2px;
}

/* ════════════════════════════════════════════════════════════
   § 05 COMPARISON TABLE
   BeTheme bleed resets REQUIRED — keep these exact overrides.
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-tablewrap {
  border: 1px solid var(--mist);
  border-radius: 12px;
  overflow: hidden;
  background: var(--white);
  /* Warm variant: slight shadow on the table card */
  box-shadow: 0 4px 24px -8px rgba(19,22,29,.07);
}

.rzx-root.rzx-b .rzb-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
  min-width: 640px;
}

/* ── BeTheme scoped resets (MUST appear before per-cell rules) ── */
.rzx-root.rzx-b .rzb-table th,
.rzx-root.rzx-b .rzb-table td {
  border-top:    0 !important;
  border-left:   0 !important;
  border-right:  0 !important;
  border-bottom: 1px solid var(--mist) !important;
  padding: 18px 22px;
  text-align: left;
}

.rzx-root.rzx-b .rzb-table tbody tr:last-child > * {
  border-bottom: 0 !important;
}

/* thead defaults → transparent (BeTheme override) */
.rzx-root.rzx-b .rzb-table thead th {
  background: transparent !important;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .95rem;
  color: var(--ash);
  background: var(--paper-alt) !important; /* re-assert warm tone after transparent reset */
}

/* Redzone column — lit header re-asserted AFTER the transparent reset */
.rzx-root.rzx-b .rzb-table thead th.rzw {
  background: var(--red) !important;
  color: #fff !important;
  font-size: 1.05rem;
}

.rzx-root.rzx-b .rzb-table tbody th {
  font-weight: 700;
  color: var(--ink);
  background: transparent !important; /* BeTheme reset */
}

.rzx-root.rzx-b .rzb-table td.rzw {
  background: var(--red-soft);
  color: var(--ink);
  font-weight: 600;
}

.rzx-root.rzx-b .rzb-table td.soft {
  color: var(--ash-soft);
}

/* Zebra stripes for scanability */
.rzx-root.rzx-b .rzb-table tbody tr:nth-child(even) > * {
  background: var(--paper-alt);
}
/* Redzone column keeps its tint over zebra */
.rzx-root.rzx-b .rzb-table tbody tr:nth-child(even) td.rzw {
  background: var(--red-soft) !important;
}

.rzx-root.rzx-b .rzb-yes {
  color: var(--green);
  font-weight: 700;
  margin-right: 6px;
}

/* ════════════════════════════════════════════════════════════
   § 06 REVIEWS
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-revhead {
  text-align: center;
  margin-bottom: clamp(32px, 4vw, 52px);
}

.rzx-root.rzx-b .rzb-stars {
  color: var(--gold);
  letter-spacing: 2px;
  font-size: 16px;
  display: block;
  margin-bottom: 8px;
}

/* Desktop: 3-col masonry (broken into rows for warmth) */
.rzx-root.rzx-b .rzb-rev-desktop {
  columns: 3;
  column-gap: 22px;
}

.rzx-root.rzx-b .rzb-rev-mobile {
  display: none; /* shown only on mobile via media query */
}

.rzx-root.rzx-b .rzb-rev__c {
  break-inside: avoid;
  background: var(--white);
  border: 1px solid var(--mist);
  border-radius: 12px;
  padding: 26px;
  margin-bottom: 22px;
  box-shadow: 0 2px 12px -4px rgba(19,22,29,.05);
  transition: box-shadow .3s var(--ease), transform .3s var(--ease);
}

.rzx-root.rzx-b .rzb-rev__c:hover {
  box-shadow: 0 12px 32px -12px rgba(19,22,29,.16);
  transform: translateY(-2px);
}

/* Featured review: Dan Bailey hero size */
.rzx-root.rzx-b .rzb-rev__c--feat {
  font-size: 1.14rem;
  line-height: 1.55;
  border-left: 3px solid var(--red);
}

/* Theme header chip */
.rzx-root.rzx-b .rzb-rev__theme {
  display: inline-flex;
  font-family: var(--disp);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--red);
  background: var(--red-soft);
  border: 1px solid var(--red-line);
  border-radius: 100px;
  padding: 3px 10px;
  margin-bottom: 12px;
}

.rzx-root.rzx-b .rzb-rev__q {
  font-size: .98rem;
  line-height: 1.62;
  color: var(--graphite);
  margin: 12px 0 18px;
}

.rzx-root.rzx-b .rzb-rev__c--feat .rzb-rev__q {
  font-size: 1.12rem;
}

.rzx-root.rzx-b .rzb-rev__who {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Monogram avatar — SWAP SLOT: replace with real headshot when collected */
.rzx-root.rzx-b .rzb-rev__av {
  width: 42px;
  height: 42px;
  border-radius: 100px;
  background: var(--red-soft);
  color: var(--red);
  display: grid;
  place-items: center;
  font-family: var(--disp);
  font-weight: 800;
  font-size: 14px;
  flex: none;
  border: 1px solid var(--red-line);
}

.rzx-root.rzx-b .rzb-rev__nm {
  font-family: var(--disp);
  font-weight: 700;
  color: var(--ink);
  font-size: .88rem;
  line-height: 1.2;
}

.rzx-root.rzx-b .rzb-rev__tn {
  color: var(--ash-soft);
  font-size: .72rem;
}

/* Swiper dots */
.rzx-root.rzx-b .rzb-swiper-dots .swiper-pagination-bullet {
  background: var(--mist);
  opacity: 1;
}

.rzx-root.rzx-b .rzb-swiper-dots .swiper-pagination-bullet-active {
  background: var(--red);
}

/* ════════════════════════════════════════════════════════════
   § 07 HOW IT WORKS — 3-step strip
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  position: relative;
}

.rzx-root.rzx-b .rzb-step {
  padding: 0 28px;
  position: relative;
}

/* Directional chevron connector */
.rzx-root.rzx-b .rzb-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 20px;
  right: -14px;
  width: 22px;
  height: 22px;
  border-top: 2px solid var(--red-line);
  border-right: 2px solid var(--red-line);
  transform: rotate(45deg);
}

.rzx-root.rzx-b .rzb-step__n {
  width: 46px;
  height: 46px;
  border-radius: 100px;
  background: var(--red);
  color: #fff;
  font-family: var(--disp);
  font-weight: 700;
  font-size: 1.1rem;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
  box-shadow: 0 6px 18px -6px rgba(174,5,0,.35);
}

/* e3000 install badge — claim-safe, neutral device-outline placeholder */
.rzx-root.rzx-b .rzb-step__gear {
  margin: 16px 0 0;
}
.rzx-root.rzx-b .rzb-step__gear img {
  display: block;
  width: 100%;
  max-width: 230px;
  height: auto;
  border-radius: 10px;
  border: 1px solid var(--mist);
  background: #fff;
  padding: 12px 16px;
}
.rzx-root.rzx-b .rzb-step__gear figcaption {
  margin-top: 10px;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .01em;
  color: var(--ash);
}

.rzx-root.rzx-b .rzb-step__device {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--ash-soft);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}

/* ════════════════════════════════════════════════════════════
   § 08 MID-PAGE MOOD BAND — full-bleed photo breather
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-mood {
  position: relative;
  min-height: clamp(300px, 50vh, 520px);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.rzx-root.rzx-b .rzb-mood__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rzx-root.rzx-b .rzb-mood__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(19,22,29,.35) 0%,
    rgba(19,22,29,.65) 100%
  );
}

.rzx-root.rzx-b .rzb-mood__content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 32px clamp(20px, 5vw, 48px);
  max-width: 700px;
}

.rzx-root.rzx-b .rzb-mood__line {
  font-family: var(--disp);
  font-weight: 600;
  font-size: clamp(1.3rem, 1rem + 1.5vw, 2rem);
  color: #fff;
  margin: 0 0 24px;
  line-height: 1.2;
  text-shadow: 0 2px 12px rgba(0,0,0,.3);
  text-wrap: balance;
}

.rzx-root.rzx-b .rzb-mood__link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--disp);
  font-weight: 600;
  font-size: 1rem;
  color: #fff;
  border-bottom: 2px solid rgba(255,255,255,.5);
  padding-bottom: 3px;
  transition: border-color .25s var(--ease), color .25s var(--ease);
  -webkit-tap-highlight-color: transparent;
}

.rzx-root.rzx-b .rzb-mood__link:hover {
  border-color: #fff;
  color: #fff;
}

.rzx-root.rzx-b .rzb-mood__link svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
  transition: transform .25s var(--ease);
}

.rzx-root.rzx-b .rzb-mood__link:hover svg { transform: translateX(4px); }

/* ════════════════════════════════════════════════════════════
   § 09 WHY ROWS — alternating editorial with real photos
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-why {
  display: flex;
  flex-direction: column;
  gap: clamp(48px, 7vw, 88px);
}

.rzx-root.rzx-b .rzb-why__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

/* Text-right layout: copy left, photo right */
.rzx-root.rzx-b .rzb-why__row--img-right .rzb-why__copy { order: 1; }
.rzx-root.rzx-b .rzb-why__row--img-right .rzb-why__photo { order: 2; }

/* Text-left layout: photo left, copy right */
.rzx-root.rzx-b .rzb-why__row--img-left .rzb-why__photo { order: 1; }
.rzx-root.rzx-b .rzb-why__row--img-left .rzb-why__copy  { order: 2; }

.rzx-root.rzx-b .rzb-why__photo {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 40px -12px rgba(19,22,29,.15);
}

.rzx-root.rzx-b .rzb-why__photo img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform .7s var(--ease);
}

.rzx-root.rzx-b .rzb-why__row:hover .rzb-why__photo img {
  transform: scale(1.02);
}

/* keep the support photo's face in frame at any crop (portrait image in a landscape box) */
.rzx-root.rzx-b .rzb-why__photo img[src*="support"]{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 6%}
.rzx-root.rzx-b .rzb-why__photo img[src*="tower-rz-logo-antenna"]{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;object-position:50% 42%}

.rzx-root.rzx-b .rzb-why__icon {
  width: 36px;
  height: 36px;
  color: var(--red);
  margin-bottom: 16px;
}

.rzx-root.rzx-b .rzb-why__icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rzx-root.rzx-b .rzb-why__copy .rzb-h3 {
  font-size: 1.5rem;
  margin-bottom: 12px;
}

.rzx-root.rzx-b .rzb-why__copy .rzb-p {
  font-size: 1.04rem;
  line-height: 1.7;
}

/* ════════════════════════════════════════════════════════════
   § 10 RISK-REVERSAL — the ONE earned dark band + glow
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(55% 70% at 50% 0%, rgba(174,5,0,.28), transparent 68%);
}

/* Ridge oversized number */
.rzx-root.rzx-b .rzb-guarantee-hero {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin: 8px 0 12px;
}

.rzx-root.rzx-b .rzb-guarantee-num {
  font-family: var(--disp);
  font-weight: 700;
  font-size: clamp(4rem, 2rem + 6vw, 7.5rem);
  line-height: 1;
  color: #fff;
  letter-spacing: -0.04em;
}

.rzx-root.rzx-b .rzb-guarantee-unit {
  font-family: var(--disp);
  font-weight: 600;
  font-size: clamp(1.4rem, 0.8rem + 1.5vw, 2.4rem);
  color: rgba(255,255,255,.7);
  letter-spacing: .02em;
}

/* 6-chip trust row */
.rzx-root.rzx-b .rzb-trust {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
  margin-top: 44px;
}

.rzx-root.rzx-b .rzb-trust__i {
  width: 28px;
  height: 28px;
  color: #ff7468;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  margin-bottom: 10px;
  display: block;
}

.rzx-root.rzx-b .rzb-trust h4 {
  font-family: var(--disp);
  font-weight: 600;
  font-size: .95rem;
  color: #fff;
  margin: 0 0 5px;
  line-height: 1.2;
}

.rzx-root.rzx-b .rzb-trust p {
  font-size: .84rem;
  color: rgba(255,255,255,.58);
  margin: 0;
  line-height: 1.5;
}

/* ── Honest summer-deal countdown band (lives in the dark risk-reversal section) ── */
.rzx-root.rzx-b .rzb-deal {
  margin: 26px auto 4px;
  max-width: 520px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,116,104,.4);
  border-radius: 12px;
  padding: 18px 22px;
  text-align: center;
}
.rzx-root.rzx-b .rzb-deal[hidden] { display: none; }

.rzx-root.rzx-b .rzb-deal__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px 12px;
  margin: 0 0 14px;
}
.rzx-root.rzx-b .rzb-deal__tag {
  font-family: var(--disp);
  font-weight: 700;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  background: var(--red);
  border-radius: 100px;
  padding: 5px 12px;
}
.rzx-root.rzx-b .rzb-deal__msg {
  font-family: var(--disp);
  font-weight: 600;
  font-size: .95rem;
  color: #fff;
  line-height: 1.4;
}
.rzx-root.rzx-b .rzb-deal__msg #rbDealDate { color: #ff9a90; }

.rzx-root.rzx-b .rzb-deal__clock {
  display: inline-flex;
  align-items: stretch;
  gap: 10px;
}
.rzx-root.rzx-b .rzb-deal__unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 62px;
  padding: 10px 6px;
  background: rgba(19,22,29,.45);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
}
.rzx-root.rzx-b .rzb-deal__unit b {
  font-family: var(--disp);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1;
  color: #fff;
  letter-spacing: -0.02em;
}
.rzx-root.rzx-b .rzb-deal__unit i {
  font-family: var(--disp);
  font-style: normal;
  font-weight: 600;
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-top: 6px;
}

/* ════════════════════════════════════════════════════════════
   § 11 FAQ — native disclosure
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-faq {
  max-width: 780px;
  margin-inline: auto;
}

.rzx-root.rzx-b .rzb-q {
  border-bottom: 1px solid var(--mist);
}

.rzx-root.rzx-b .rzb-q summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 22px 2px;
  font-family: var(--disp);
  font-weight: 600;
  font-size: 1.08rem;
  color: var(--ink);
  transition: color .2s var(--ease);
}

.rzx-root.rzx-b .rzb-q summary::-webkit-details-marker { display: none; }

.rzx-root.rzx-b .rzb-q summary:hover { color: var(--red); }

.rzx-root.rzx-b .rzb-q summary svg {
  width: 20px;
  height: 20px;
  flex: none;
  color: var(--red);
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  transition: transform .3s var(--ease);
}

.rzx-root.rzx-b .rzb-q[open] summary svg { transform: rotate(45deg); }

.rzx-root.rzx-b .rzb-q__a {
  padding: 0 2px 22px;
  color: var(--ash);
  line-height: 1.65;
  font-size: 1rem;
  max-width: 68ch;
}

/* ════════════════════════════════════════════════════════════
   STICKY MOBILE BAR — Mechanic #10
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-bar {
  display: none; /* shown only ≤900px */
}

@media (max-width: 900px) {
  .rzx-root.rzx-b .rzb-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9990;
    background: var(--paper);
    border-top: 1px solid var(--mist);
    padding: 12px 16px;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
    box-shadow: 0 -4px 24px -8px rgba(19,22,29,.18);
    /* hidden by default, fades in via JS after opener leaves viewport */
    opacity: 0;
    transform: translateY(100%);
    transition: opacity .4s var(--ease), transform .4s var(--ease);
  }

  .rzx-root.rzx-b .rzb-bar.rzb-bar--on {
    opacity: 1;
    transform: translateY(0);
  }
}

.rzx-root.rzx-b .rzb-bar__cta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .9rem;
  background: var(--red);
  color: #fff;
  border-radius: 8px;
  padding: 13px 16px;
  justify-content: center;
  border: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background .2s var(--ease);
}

.rzx-root.rzx-b .rzb-bar__cta:active { background: var(--red-deep); }

.rzx-root.rzx-b .rzb-bar__cta svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}

.rzx-root.rzx-b .rzb-bar__phone {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: var(--paper-alt);
  border: 1px solid var(--mist);
  color: var(--graphite);
  flex: none;
  -webkit-tap-highlight-color: transparent;
  transition: background .2s var(--ease);
}

.rzx-root.rzx-b .rzb-bar__phone:active { background: var(--mist); }

.rzx-root.rzx-b .rzb-bar__phone svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rzx-root.rzx-b .rzb-bar__micro {
  display: none; /* shown on slightly wider mobile */
  font-family: var(--disp);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--ash-soft);
  text-transform: uppercase;
  line-height: 1.2;
  text-align: right;
  flex: none;
}

/* ════════════════════════════════════════════════════════════
   CAPTURE NET — timed overlay
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-cap {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%) translateY(140%);
  width: min(440px, calc(100vw - 32px));
  background: var(--white);
  border: 1px solid var(--mist);
  border-radius: 14px;
  box-shadow: 0 24px 64px -12px rgba(19,22,29,.28);
  padding: 26px;
  z-index: 9999;
  transition: transform .5s var(--ease);
}

.rzx-root.rzx-b .rzb-cap.rzb-cap--on {
  transform: translateX(-50%) translateY(0);
}

.rzx-root.rzx-b .rzb-cap__x {
  position: absolute;
  top: 12px;
  right: 14px;
  border: 0;
  background: none;
  font-size: 20px;
  color: var(--ash-soft);
  cursor: pointer;
  line-height: 1;
  padding: 4px;
}

.rzx-root.rzx-b .rzb-cap form {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.rzx-root.rzx-b .rzb-cap input {
  flex: 1;
  min-width: 200px;
  height: 46px;
  padding: 0 14px;
  border: 1px solid var(--mist);
  border-radius: 8px;
  font-family: var(--body);
  font-size: .95rem;
  color: var(--graphite);
  background: var(--paper);
}

.rzx-root.rzx-b .rzb-cap input:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px var(--red-soft);
}

/* ════════════════════════════════════════════════════════════
   § 02b BENEFIT / REGION MARQUEE — PIECE 3
   Two opposite-direction rows. Default visible & readable. CSS-only loop.
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-marquee {
  background: var(--paper);
  border-bottom: 1px solid var(--mist);
  padding: 18px 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}

.rzx-root.rzx-b .rzb-mq__row {
  overflow: hidden;
  /* edge fade */
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.rzx-root.rzx-b .rzb-mq__row:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
  border-radius: 6px;
}

.rzx-root.rzx-b .rzb-mq__track {
  display: flex;
  gap: 12px;
  width: max-content;
  will-change: transform;
}

/* ~40s hypnotic loop; each track duplicated 2× → translateX -50% is seamless */
@keyframes rzb-mq-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.rzx-root.rzx-b .rzb-mq__track--a {
  animation: rzb-mq-scroll 40s linear infinite;
}
.rzx-root.rzx-b .rzb-mq__track--b {
  animation: rzb-mq-scroll 40s linear infinite;
  animation-direction: reverse;
}

/* pause on hover / keyboard focus */
.rzx-root.rzx-b .rzb-mq__row:hover .rzb-mq__track,
.rzx-root.rzx-b .rzb-mq__row:focus-within .rzb-mq__track {
  animation-play-state: paused;
}

.rzx-root.rzx-b .rzb-mq__chip {
  flex: none;
  display: inline-flex;
  align-items: center;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .02em;
  color: var(--graphite);
  background: var(--white);
  border: 1px solid var(--mist);
  border-radius: 100px;
  padding: 9px 18px;
  white-space: nowrap;
}
/* brand accent used sparingly — only the local/region row gets a tinted dot */
.rzx-root.rzx-b .rzb-mq__chip--local::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 100px;
  background: var(--red);
  margin-right: 9px;
  flex: none;
}

/* ════════════════════════════════════════════════════════════
   § 04b BEFORE/AFTER SLIDER — PIECE 1
   ONE photo as both layers. Default = good (with-Redzone) state visible.
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-ba {
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
  border-radius: 12px;
  cursor: ew-resize;
  background: var(--ink);
  box-shadow: 0 8px 40px -12px rgba(19,22,29,.18);
  -webkit-user-select: none;
  user-select: none;
  touch-action: pan-y;
  max-width: 880px;
  margin-inline: auto;
}
.rzx-root.rzx-b .rzb-ba:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 3px;
}

.rzx-root.rzx-b .rzb-ba__before,
.rzx-root.rzx-b .rzb-ba__after {
  position: absolute;
  inset: 0;
}
.rzx-root.rzx-b .rzb-ba__before img,
.rzx-root.rzx-b .rzb-ba__after img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* before treatment */
.rzx-root.rzx-b .rzb-ba__before img {
  filter: grayscale(1) brightness(.55) contrast(.95);
}

/* after layer clipped from the left, revealed up to --pos */
.rzx-root.rzx-b .rzb-ba__after {
  clip-path: inset(0 calc(100% - var(--pos, 56%)) 0 0);
}

/* overlays */
.rzx-root.rzx-b .rzb-ba__ov {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 8px;
  padding: clamp(14px, 3vw, 26px);
  pointer-events: none;
}
.rzx-root.rzx-b .rzb-ba__ov--before {
  align-items: center;
  justify-content: center;
}
.rzx-root.rzx-b .rzb-ba__label {
  font-family: var(--disp);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(19,22,29,.55);
  border: 1px solid rgba(255,255,255,.18);
  padding: 6px 12px;
  border-radius: 100px;
}
.rzx-root.rzx-b .rzb-ba__ov--after .rzb-ba__label {
  background: var(--red);
  border-color: var(--red);
}
.rzx-root.rzx-b .rzb-ba__tag {
  font-family: var(--disp);
  font-weight: 600;
  font-size: .74rem;
  color: rgba(255,255,255,.82);
}
.rzx-root.rzx-b .rzb-ba__ov--before .rzb-ba__tag {
  color: rgba(255,255,255,.7);
}
.rzx-root.rzx-b .rzb-ba__tag--good { color: #d7ffe6; }

/* buffering spinner on the before side */
.rzx-root.rzx-b .rzb-ba__spin {
  width: 34px;
  height: 34px;
  border-radius: 100px;
  border: 3px solid rgba(255,255,255,.25);
  border-top-color: #fff;
  animation: rzb-ba-spin .9s linear infinite;
}
@keyframes rzb-ba-spin { to { transform: rotate(360deg); } }

/* divider handle at --pos */
.rzx-root.rzx-b .rzb-ba__handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--pos, 56%);
  width: 2px;
  background: #fff;
  transform: translateX(-1px);
  pointer-events: none;
}
.rzx-root.rzx-b .rzb-ba__grip {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  border-radius: 100px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  box-shadow: 0 4px 16px -4px rgba(19,22,29,.45);
}
.rzx-root.rzx-b .rzb-ba__grip svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: var(--ink);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* "Illustrative" badge */
.rzx-root.rzx-b .rzb-ba__illus {
  position: absolute;
  top: 12px;
  right: 12px;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(19,22,29,.5);
  border: 1px solid rgba(255,255,255,.2);
  padding: 4px 9px;
  border-radius: 6px;
  pointer-events: none;
}

/* drag hint chip — fades out on first interaction */
.rzx-root.rzx-b .rzb-ba__hint {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--disp);
  font-weight: 600;
  font-size: .74rem;
  color: var(--ink);
  background: rgba(255,255,255,.92);
  padding: 7px 14px;
  border-radius: 100px;
  box-shadow: 0 4px 14px -4px rgba(19,22,29,.35);
  pointer-events: none;
  opacity: 1;
  transition: opacity .4s var(--ease);
}
.rzx-root.rzx-b .rzb-ba__hint--gone { opacity: 0; }

/* ════════════════════════════════════════════════════════════
   § 06b COVERAGE-QUALIFIER QUIZ — PIECE 2
   ════════════════════════════════════════════════════════════ */
/* no-JS fallback: plain, centered, always-usable CTA */
.rzx-root.rzx-b .rzb-quiz--nojs {
  text-align: center;
}

.rzx-root.rzx-b .rzb-quiz {
  max-width: 640px;
  margin-inline: auto;
}
.rzx-root.rzx-b .rzb-quiz__card {
  background: var(--white);
  border: 1px solid var(--mist);
  border-radius: 16px;
  padding: clamp(22px, 4vw, 38px);
  box-shadow: 0 8px 40px -16px rgba(19,22,29,.16);
  min-height: 320px;
  display: flex;
  flex-direction: column;
}

/* progress + skip */
.rzx-root.rzx-b .rzb-quiz__top {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.rzx-root.rzx-b .rzb-quiz__bar {
  flex: 1;
  min-width: 140px;
  height: 6px;
  border-radius: 100px;
  background: var(--paper-alt);
  overflow: hidden;
}
.rzx-root.rzx-b .rzb-quiz__fill {
  display: block;
  height: 100%;
  width: 15%;
  background: var(--red);
  border-radius: 100px;
  transition: width .45s var(--ease);
}
.rzx-root.rzx-b .rzb-quiz__skip {
  font-family: var(--disp);
  font-weight: 600;
  font-size: .76rem;
  color: var(--ash-soft);
  border-bottom: 1px solid var(--mist);
  padding-bottom: 1px;
  white-space: nowrap;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}
.rzx-root.rzx-b .rzb-quiz__skip:hover { color: var(--red); border-color: var(--red); }

/* question */
.rzx-root.rzx-b .rzb-quiz__step {
  flex: 1;
  display: flex;
  flex-direction: column;
}
/* keep [hidden] steps actually hidden — the display:flex above otherwise defeats the attribute */
.rzx-root.rzx-b .rzb-quiz__step[hidden] { display: none !important; }
.rzx-root.rzx-b .rzb-quiz__q {
  font-family: var(--disp);
  font-weight: 700;
  font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem);
  color: var(--ink);
  margin: 0 0 22px;
  letter-spacing: -0.01em;
}

/* button-cards */
.rzx-root.rzx-b .rzb-quiz__opts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.rzx-root.rzx-b .rzb-quiz__opt {
  font-family: var(--disp);
  font-weight: 600;
  font-size: 1rem;
  color: var(--ink);
  background: var(--paper);
  border: 1.5px solid var(--mist);
  border-radius: 12px;
  padding: 18px 16px;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);
}
.rzx-root.rzx-b .rzb-quiz__opt:hover,
.rzx-root.rzx-b .rzb-quiz__opt:focus-visible {
  border-color: var(--red);
  background: var(--red-soft);
  transform: translateY(-2px);
  outline: none;
}
.rzx-root.rzx-b .rzb-quiz__opt--on {
  border-color: var(--red);
  background: var(--red-soft);
  color: var(--red);
}
.rzx-root.rzx-b .rzb-quiz__opt--soft {
  grid-column: 1 / -1;
  color: var(--ash);
  font-weight: 600;
}

/* loader */
.rzx-root.rzx-b .rzb-quiz__loader {
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 18px;
}
.rzx-root.rzx-b .rzb-quiz__spin {
  width: 40px;
  height: 40px;
  border-radius: 100px;
  border: 3px solid var(--paper-alt);
  border-top-color: var(--red);
  animation: rzb-ba-spin .9s linear infinite;
}
.rzx-root.rzx-b .rzb-quiz__loadline {
  font-family: var(--disp);
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--ink);
  margin: 0;
}
.rzx-root.rzx-b .rzb-quiz__loadbar {
  width: min(280px, 80%);
  height: 6px;
  border-radius: 100px;
  background: var(--paper-alt);
  overflow: hidden;
}
.rzx-root.rzx-b .rzb-quiz__loadbar span {
  display: block;
  height: 100%;
  width: 0;
  background: var(--red);
  border-radius: 100px;
}

/* summary */
.rzx-root.rzx-b .rzb-quiz__summary {
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 18px;
}
.rzx-root.rzx-b .rzb-quiz__sumline {
  font-family: var(--disp);
  font-weight: 600;
  font-size: clamp(1.15rem, 1rem + .7vw, 1.5rem);
  color: var(--ink);
  margin: 0;
  line-height: 1.35;
  max-width: 32ch;
}
.rzx-root.rzx-b .rzb-quiz__go {
  font-size: 1.05rem;
  padding: 17px 34px;
}
.rzx-root.rzx-b .rzb-quiz__or {
  font-size: .9rem;
  color: var(--ash);
  margin: 0;
}
.rzx-root.rzx-b .rzb-quiz__restart {
  border: 0;
  background: none;
  cursor: pointer;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .78rem;
  color: var(--ash-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rzx-root.rzx-b .rzb-quiz__restart:hover { color: var(--red); }

/* step swap motion (instant under reduced-motion via global rule) */
.rzx-root.rzx-b.rzb-js .rzb-quiz__step:not([hidden]) {
  animation: rzb-quiz-in .35s var(--ease);
}
@keyframes rzb-quiz-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}

/* ════════════════════════════════════════════════════════════
   § 04 SCROLL-TOWER — static stacked list (default) + pinned scrub stage
   STATIC-FIRST: the stacked list is always visible & readable. The pinned
   stage is hidden until JS adds .rzb-tower--on. Brand tokens for line art.
   ════════════════════════════════════════════════════════════ */
/* Pinned scrub stage — hidden by default (no-JS / reduced-motion / mobile) */
.rzx-root.rzx-b .rzb-tower__stage { display: none; }

/* Static stacked list — the readable default */
.rzx-root.rzx-b .rzb-tower__list {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 4vw, 44px);
  max-width: 760px;
  margin-inline: auto;
}
.rzx-root.rzx-b .rzb-tower__item {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: clamp(16px, 3vw, 28px);
  align-items: center;
}
.rzx-root.rzx-b .rzb-tower__ico {
  width: 88px;
  height: 88px;
  border-radius: 16px;
  background: var(--paper);
  border: 1px solid var(--mist);
  display: grid;
  place-items: center;
  box-shadow: 0 4px 24px -10px rgba(19,22,29,.1);
}
.rzx-root.rzx-b .rzb-tower__ico svg {
  width: 62%;
  height: 62%;
  display: block;
}
.rzx-root.rzx-b .rzb-tower__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 26px;
  padding: 0 6px;
  border-radius: 100px;
  background: var(--red-soft);
  border: 1px solid var(--red-line);
  color: var(--red);
  font-family: var(--disp);
  font-weight: 700;
  font-size: .82rem;
  margin-bottom: 8px;
}
.rzx-root.rzx-b .rzb-tower__txt .rzb-h3 { margin-bottom: 6px; }

/* ── Pinned scrub stage (only when JS enhances on wide screens) ── */
.rzx-root.rzx-b .rzb-tower--on .rzb-tower__list { display: none; }
.rzx-root.rzx-b .rzb-tower--on .rzb-tower__stage { display: block; }

.rzx-root.rzx-b .rzb-tower__sticky {
  position: relative;
  height: min(100vh, 720px);
  max-height: 720px;
  padding-top: 96px;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.rzx-root.rzx-b .rzb-tower__scene {
  position: relative;
  width: min(560px, 72%);
}
.rzx-root.rzx-b .rzb-tower__svg {
  width: 100%;
  height: auto;
  display: block;
}
.rzx-root.rzx-b .rzb-tower__cap {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  max-width: min(290px, 40vw);
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: rgba(243,241,236,.94);
  border: 1px solid var(--mist);
  border-radius: 12px;
  padding: 14px 18px;
  box-shadow: 0 10px 30px -16px rgba(19,22,29,.22);
}
.rzx-root.rzx-b .rzb-tower__cap--left  { left: clamp(8px, 4vw, 56px); }
.rzx-root.rzx-b .rzb-tower__cap--right { right: clamp(8px, 4vw, 56px); text-align: right; align-items: flex-end; }
.rzx-root.rzx-b .rzb-tower__cap p {
  font-family: var(--disp);
  font-weight: 600;
  font-size: clamp(1.15rem, 1rem + .8vw, 1.6rem);
  color: var(--ink);
  line-height: 1.25;
  margin: 0;
  text-wrap: balance;
}
.rzx-root.rzx-b .rzb-tower__cap .rzb-tower__num { margin-bottom: 0; }

/* ════════════════════════════════════════════════════════════
   § 06c e3000 PRODUCT SHOWCASE — premium product stage
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-stage {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 10vw, 140px) 0;
  background:
    radial-gradient(120% 90% at 50% -10%, #fff 0%, var(--paper) 42%, var(--paper-alt) 100%);
}
.rzx-root.rzx-b .rzb-stage__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(46% 42% at 50% 52%, rgba(174,5,0,.10), transparent 70%);
}
.rzx-root.rzx-b .rzb-stage__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 760px;
  margin-inline: auto;
}
.rzx-root.rzx-b .rzb-stage__h {
  font-family: var(--disp);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.02;
  color: var(--ink);
  margin: 0 0 16px;
  font-size: clamp(2.2rem, 1.4rem + 3.4vw, 4rem);
  text-wrap: balance;
}
.rzx-root.rzx-b .rzb-stage__sub {
  font-size: 1.12rem;
  line-height: 1.6;
  color: var(--ash);
  margin: 0 auto;
  max-width: 56ch;
  text-wrap: pretty;
}

/* glowing pedestal card holding the light-bg product photo */
.rzx-root.rzx-b .rzb-stage__pedestal {
  position: relative;
  margin: clamp(32px, 5vw, 56px) auto clamp(28px, 4vw, 44px);
  max-width: 620px;
  padding: clamp(20px, 4vw, 40px);
  border-radius: 24px;
  background:
    radial-gradient(70% 80% at 50% 30%, #fff 0%, var(--paper) 70%, var(--paper-alt) 100%);
  border: 1px solid var(--mist);
  box-shadow:
    0 30px 80px -30px rgba(174,5,0,.22),
    0 18px 50px -24px rgba(19,22,29,.20);
}
.rzx-root.rzx-b .rzb-stage__pedestal::after {
  /* soft reflection / floor glow under the device */
  content: "";
  position: absolute;
  left: 50%;
  bottom: clamp(10px, 2vw, 22px);
  transform: translateX(-50%);
  width: 64%;
  height: 26px;
  border-radius: 100px;
  background: radial-gradient(closest-side, rgba(19,22,29,.16), transparent 75%);
  filter: blur(2px);
  pointer-events: none;
}
.rzx-root.rzx-b .rzb-stage__pedestal img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  display: block;
}
/* gentle one-time float-in (JS reveal gate); reduced-motion neutralizes it */
.rzx-root.rzx-b.rzb-js .rzb-stage.rzb-rv .rzb-stage__pedestal {
  transform: translateY(18px) scale(.985);
  opacity: 0;
  transition: transform .7s var(--ease), opacity .7s var(--ease);
}
.rzx-root.rzx-b.rzb-js .rzb-stage.rzb-rv.rzb-in .rzb-stage__pedestal {
  transform: none;
  opacity: 1;
}

.rzx-root.rzx-b .rzb-stage__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 14px;
  margin: 0 0 clamp(28px, 4vw, 40px);
}
.rzx-root.rzx-b .rzb-stage__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--disp);
  font-weight: 600;
  font-size: .86rem;
  color: var(--graphite);
  background: var(--white);
  border: 1px solid var(--mist);
  border-radius: 100px;
  padding: 9px 16px;
}
.rzx-root.rzx-b .rzb-stage__chip svg {
  width: 16px;
  height: 16px;
  color: var(--red);
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}

/* ════════════════════════════════════════════════════════════
   SCROLL REVEAL
   ════════════════════════════════════════════════════════════ */
/* Reveal only runs when the .rzb-js gate is present — without JS everything
   stays VISIBLE (no .rzb-js class is added). PIECE 4 enhancement: small
   distance + soft blur, warm expo-out ease. */
.rzx-root.rzx-b.rzb-js .rzb-rv {
  opacity: 0;
  transform: translateY(22px);
  filter: blur(6px);
  transition: opacity .55s var(--ease), transform .55s var(--ease), filter .55s var(--ease);
}

.rzx-root.rzx-b.rzb-js .rzb-rv.rzb-in {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE — Mobile-first breakpoints
   ════════════════════════════════════════════════════════════ */
@media (max-width: 1080px) {
  /* Trust row: 3+3 */
  .rzx-root.rzx-b .rzb-trust {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 900px) {
  /* Opener split → stacked */
  .rzx-root.rzx-b .rzb-split {
    grid-template-columns: 1fr;
  }
  .rzx-root.rzx-b .rzb-split__img {
    aspect-ratio: 16/10;
    order: -1;
  }

  /* Products → stacked */
  .rzx-root.rzx-b .rzb-prodtop,
  .rzx-root.rzx-b .rzb-prodbot {
    grid-template-columns: 1fr;
  }

  /* Wedge → stacked */
  .rzx-root.rzx-b .rzb-wedge {
    grid-template-columns: 1fr;
  }

  /* Why rows → stacked (consistent order: photo top) */
  .rzx-root.rzx-b .rzb-why__row {
    grid-template-columns: 1fr;
  }
  .rzx-root.rzx-b .rzb-why__row--img-right .rzb-why__photo,
  .rzx-root.rzx-b .rzb-why__row--img-left .rzb-why__photo {
    order: -1;
  }
  .rzx-root.rzx-b .rzb-why__row--img-right .rzb-why__copy,
  .rzx-root.rzx-b .rzb-why__row--img-left .rzb-why__copy {
    order: 1;
  }

  /* Steps → stacked */
  .rzx-root.rzx-b .rzb-steps {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .rzx-root.rzx-b .rzb-step { padding: 0; }
  .rzx-root.rzx-b .rzb-step:not(:last-child)::after { display: none; }

  /* Trust → 2 col */
  .rzx-root.rzx-b .rzb-trust {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Reviews desktop masonry → hide; mobile swiper → show */
  .rzx-root.rzx-b .rzb-rev-desktop { display: none; }
  .rzx-root.rzx-b .rzb-rev-mobile  { display: block; }

  /* Mood band height */
  .rzx-root.rzx-b .rzb-mood {
    min-height: 260px;
  }

  /* Bar micro text */
  .rzx-root.rzx-b .rzb-bar__micro { display: block; }

  /* Guarantee hero number */
  .rzx-root.rzx-b .rzb-guarantee-num {
    font-size: clamp(3.5rem, 2rem + 5vw, 6rem);
  }
}

@media (max-width: 600px) {
  .rzx-root.rzx-b .rzb-trust { grid-template-columns: 1fr; }
  .rzx-root.rzx-b .rzb-actions { flex-direction: column; align-items: flex-start; gap: 16px; }
  .rzx-root.rzx-b .rzb-actions--c { align-items: center; }
  .rzx-root.rzx-b .rzb-cta { width: 100%; justify-content: center; }
  .rzx-root.rzx-b .rzb-bar__micro { display: none; }
  .rzx-root.rzx-b .rzb-cap form { flex-direction: column; }
  .rzx-root.rzx-b .rzb-cap input { min-width: unset; }
  .rzx-root.rzx-b .rzb-reassure { gap: 8px 16px; }

  /* Quiz option cards → single column on phones */
  .rzx-root.rzx-b .rzb-quiz__opts { grid-template-columns: 1fr; }

  /* Scroll-tower stacked item → icon on top, text below */
  .rzx-root.rzx-b .rzb-tower__item {
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 14px;
  }
}

/* ════════════════════════════════════════════════════════════
   ACCESSIBILITY — prefers-reduced-motion
   ════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .rzx-root.rzx-b * {
    animation: none !important;
    transition-duration: .01ms !important;
  }
  .rzx-root.rzx-b.rzb-js .rzb-rv {
    opacity: 1;
    transform: none;
  }
  .rzx-root.rzx-b .rzb-beam,
  .rzx-root.rzx-b .rzb-signal-pulse {
    animation: none !important;
  }

  /* PIECE 3 marquee → static, wrapped rows (no scroll, nothing off-screen) */
  .rzx-root.rzx-b .rzb-mq__row {
    -webkit-mask-image: none;
            mask-image: none;
  }
  .rzx-root.rzx-b .rzb-mq__track {
    width: auto;
    flex-wrap: wrap;
    justify-content: center;
  }
  /* hide the duplicate (aria-hidden) chips so the static set isn't doubled */
  .rzx-root.rzx-b .rzb-mq__chip[aria-hidden="true"] { display: none; }

  /* PIECE 4 keyword underline → no draw-in */
  .rzx-root.rzx-b .rzb-kw::after { transform: scaleX(1); }

  /* § 04 scroll-tower → never pin/scrub; always show the static stacked list */
  .rzx-root.rzx-b .rzb-tower__stage,
  .rzx-root.rzx-b .rzb-tower--on .rzb-tower__stage { display: none !important; }
  .rzx-root.rzx-b .rzb-tower__list,
  .rzx-root.rzx-b .rzb-tower--on .rzb-tower__list { display: flex !important; }

  /* e3000 showcase pedestal → no float-in, always visible */
  .rzx-root.rzx-b.rzb-js .rzb-stage.rzb-rv .rzb-stage__pedestal,
  .rzx-root.rzx-b.rzb-js .rzb-stage.rzb-rv.rzb-in .rzb-stage__pedestal {
    opacity: 1;
    transform: none;
  }
}

/* ════════════════════════════════════════════════════════════
   § 07b PLANS — real plans + prices (scoped)
   ════════════════════════════════════════════════════════════ */
.rzx-root.rzx-b .rzb-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px);margin-top:clamp(28px,4vw,48px)}
.rzx-root.rzx-b .rzb-plan{background:var(--white);border:1px solid var(--mist);border-radius:14px;padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;gap:9px;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.rzx-root.rzx-b .rzb-plan:hover{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(19,22,29,.22)}
.rzx-root.rzx-b .rzb-plan__tag{align-self:flex-start;font-family:var(--disp);font-size:.64rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red);background:var(--red-soft);border:1px solid var(--red-line);border-radius:100px;padding:5px 11px}
.rzx-root.rzx-b .rzb-plan__name{font-family:var(--disp);font-weight:700;font-size:1.4rem;color:var(--ink);margin:6px 0 0}
.rzx-root.rzx-b .rzb-plan__price{margin:2px 0 0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.rzx-root.rzx-b .rzb-plan__now{font-family:var(--disp);font-weight:700;font-size:2.4rem;color:var(--ink);line-height:1}
.rzx-root.rzx-b .rzb-plan__per{font-family:var(--disp);font-size:.95rem;color:var(--ash)}
.rzx-root.rzx-b .rzb-plan__reg{font-size:1rem;color:var(--ash-soft);text-decoration:line-through}
.rzx-root.rzx-b .rzb-plan__yr{font-size:.8rem;color:var(--ash-soft);margin:0}
.rzx-root.rzx-b .rzb-plan__speed{font-family:var(--disp);font-size:.92rem;color:var(--graphite);background:var(--paper-alt);border-radius:8px;padding:8px 12px;margin:8px 0 2px}
.rzx-root.rzx-b .rzb-plan__speed b{color:var(--ink)}
.rzx-root.rzx-b .rzb-plan__feats{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.rzx-root.rzx-b .rzb-plan__feats li{position:relative;padding-left:22px;font-size:.9rem;color:var(--ash);line-height:1.45}
.rzx-root.rzx-b .rzb-plan__feats li::before{content:"";position:absolute;left:0;top:6px;width:12px;height:12px;border-radius:50%;background:var(--red-soft);box-shadow:inset 0 0 0 2px var(--red)}
.rzx-root.rzx-b .rzb-plan__for{font-size:.86rem;color:var(--ash);margin:8px 0 0;flex:1}
.rzx-root.rzx-b .rzb-plan__cta{margin-top:14px;width:100%;justify-content:center}
.rzx-root.rzx-b .rzb-plans__note{max-width:680px;margin:clamp(22px,3vw,34px) auto 0;text-align:center;font-size:.8rem;color:var(--ash-soft);line-height:1.55}
@media (max-width:880px){.rzx-root.rzx-b .rzb-plans{grid-template-columns:1fr;max-width:430px;margin-left:auto;margin-right:auto}}

/* § 11b EMAIL LIST signup (scoped) */
.rzx-root.rzx-b .rzb-news__form{display:flex;gap:10px;max-width:480px;margin:clamp(20px,3vw,30px) auto 0;flex-wrap:wrap;justify-content:center}
.rzx-root.rzx-b .rzb-news__input{flex:1;min-width:220px;font-family:var(--body);font-size:1rem;padding:14px 16px;border:1px solid var(--mist);border-radius:8px;background:var(--white);color:var(--graphite)}
.rzx-root.rzx-b .rzb-news__input:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red)}
.rzx-root.rzx-b .rzb-news__btn{flex:none}
.rzx-root.rzx-b .rzb-news__msg{margin:14px 0 0;font-family:var(--disp);font-weight:600;font-size:.92rem;color:var(--red)}
.rzx-root.rzx-b .rzb-news__fine{margin:10px 0 0;font-size:.78rem;color:var(--ash-soft)}
@media (max-width:520px){.rzx-root.rzx-b .rzb-news__form{flex-direction:column}.rzx-root.rzx-b .rzb-news__btn{width:100%;justify-content:center}}

/* tower: pull heading + CTA closer to the pinned graphic */
.rzx-root.rzx-b .rzb-tower{padding-top:clamp(52px,6vw,80px);padding-bottom:clamp(36px,5vw,64px)}
.rzx-root.rzx-b .rzb-tower .rzb-head{margin-bottom:0}

/* restore breathing room before the (untouched) site testimonials section, which has padding-top:0 */


/* ── § 06c TWO SETUPS — fixed wireless vs portable (plan clarity) ── */
.rzx-root.rzx-b .rzb-setups{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.2vw,26px);max-width:880px;margin:clamp(30px,4vw,46px) auto 0;text-align:left}
.rzx-root.rzx-b .rzb-setup{background:var(--white);border:1px solid var(--mist);border-radius:16px;padding:clamp(20px,2.4vw,28px);display:flex;flex-direction:column;gap:9px;box-shadow:none}
.rzx-root.rzx-b .rzb-setup__art{margin:0 0 4px;background:var(--paper-alt);border:1px solid var(--mist);border-radius:12px;display:flex;align-items:center;justify-content:center;height:150px;overflow:hidden}
.rzx-root.rzx-b .rzb-setup__art svg{width:78%;height:auto;display:block}
.rzx-root.rzx-b .rzb-setup__art--photo{background:radial-gradient(120% 120% at 50% 0,#fff 0,var(--paper-alt) 100%)}
.rzx-root.rzx-b .rzb-setup__art--photo img{width:auto;max-width:74%;max-height:118px;height:auto;display:block;filter:drop-shadow(0 12px 22px rgba(19,22,29,.22))}
.rzx-root.rzx-b .rzb-setup__tag{align-self:flex-start;font-family:var(--disp);font-size:.64rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red);background:var(--red-soft);border:1px solid var(--red-line);border-radius:100px;padding:5px 11px}
.rzx-root.rzx-b .rzb-setup__h{font-family:var(--disp);font-size:clamp(1.06rem,1.5vw,1.24rem);font-weight:600;color:var(--ink);line-height:1.22;margin:2px 0 0}
.rzx-root.rzx-b .rzb-setup__p{font-size:.92rem;color:var(--ash);line-height:1.55;margin:0}
.rzx-root.rzx-b .rzb-setup__plans{margin:auto 0 0;padding-top:12px;border-top:1px solid var(--mist);font-family:var(--disp);font-size:.78rem;letter-spacing:.01em;color:var(--ash-soft)}
@media (max-width:720px){.rzx-root.rzx-b .rzb-setups{grid-template-columns:1fr}}

/* plan-card setup label */
.rzx-root.rzx-b .rzb-plan__setup{align-self:flex-start;font-family:var(--disp);font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ash);background:var(--paper-alt);border:1px solid var(--mist);border-radius:8px;padding:6px 10px;margin:2px 0 4px}
.rzx-root.rzx-b .rzb-plan__setup--portable{color:var(--red);background:var(--red-soft);border-color:var(--red-line)}

/* ── plans split into two clearly-separated product groups ── */
.rzx-root.rzx-b .rzb-plangroup{max-width:1060px;margin:clamp(26px,3.4vw,40px) auto 0}
.rzx-root.rzx-b .rzb-plangroup--alt{margin-top:clamp(32px,4.4vw,56px);padding-top:clamp(28px,3.6vw,44px);border-top:2px dashed var(--mist)}
.rzx-root.rzx-b .rzb-plangroup__head{display:flex;gap:14px;align-items:flex-start;max-width:720px;margin:0 auto clamp(20px,2.4vw,28px);text-align:left}
.rzx-root.rzx-b .rzb-plangroup__num{flex:none;width:36px;height:36px;border-radius:50%;background:var(--red);color:#fff;font-family:var(--disp);font-weight:700;font-size:1.1rem;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -6px rgba(174,5,0,.55)}
.rzx-root.rzx-b .rzb-plangroup__num--alt{background:var(--ink);box-shadow:0 6px 16px -6px rgba(19,22,29,.5)}
.rzx-root.rzx-b .rzb-plangroup__title{font-family:var(--disp);font-size:clamp(1.16rem,1.9vw,1.45rem);font-weight:600;color:var(--ink);line-height:1.2;margin:3px 0 5px}
.rzx-root.rzx-b .rzb-plangroup__sub{font-size:.95rem;color:var(--ash);line-height:1.55;margin:0}
.rzx-root.rzx-b .rzb-plans--two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px;margin-inline:auto}
.rzx-root.rzx-b .rzb-plans--one{grid-template-columns:minmax(0,360px);justify-content:center;max-width:360px;margin-inline:auto}
@media (max-width:680px){.rzx-root.rzx-b .rzb-plans--two{grid-template-columns:1fr}}

/* ════════ SPEC REBUILD — new components ════════ */
/* Internet Built for Mainers headline */
.rzx-root.rzx-b .rzx-mainers{font-size:clamp(2.1rem,6vw,3.6rem);line-height:1.05;text-align:center;margin:0}
.rzx-root.rzx-b .rzx-mainers--sign{font-size:0;line-height:0}
.rzx-root.rzx-b .rzx-mainers-sign{display:block;width:clamp(196px,24vw,320px);max-width:100%;height:auto;margin:0 auto}
.rzx-root.rzx-b .rzx-mainers-planline{margin-top:4px}
.rzx-root.rzx-b .rzx-mainers-sub{font-family:var(--disp);font-weight:600;font-size:clamp(1.1rem,2.6vw,1.7rem);color:var(--red);text-align:center;margin:8px 0 0;letter-spacing:.01em}

/* products uniform grid */
.rzx-root.rzx-b .rzb-prodgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;margin-top:clamp(22px,3vw,34px);max-width:920px;margin-left:auto;margin-right:auto}
.rzx-root.rzx-b .rzb-prodgrid .rzb-card{margin:0;flex:0 1 calc((100% - 24px)/2);max-width:calc((100% - 24px)/2)}
.rzx-root.rzx-b .rzb-prodgrid .rzb-card__img{height:auto;aspect-ratio:1.5/1}
.rzx-root.rzx-b .rzb-prodgrid .rzb-card__img img{width:100%;height:100%;object-fit:cover}
@media(max-width:860px){.rzx-root.rzx-b .rzb-prodgrid .rzb-card{flex:0 1 calc((100% - 24px)/2);max-width:calc((100% - 24px)/2)}}
@media(max-width:560px){.rzx-root.rzx-b .rzb-prodgrid .rzb-card{flex:0 1 100%;max-width:100%}}

/* static reviews — Trustindex look + Read more */
.rzx-root.rzx-b .rzx-revgrid{column-count:3;column-gap:20px;margin-top:clamp(22px,3vw,32px)}
@media(max-width:900px){.rzx-root.rzx-b .rzx-revgrid{column-count:2}}
@media(max-width:600px){.rzx-root.rzx-b .rzx-revgrid{column-count:1}}
.rzx-root.rzx-b .rzx-rev{break-inside:avoid;margin:0 0 20px;background:var(--white);border:1px solid var(--mist);border-radius:14px;padding:20px 22px;box-shadow:0 14px 34px -24px rgba(19,22,29,.3)}
.rzx-root.rzx-b .rzx-rev__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rzx-root.rzx-b .rzx-rev__stars{color:#fbbc05;font-size:1rem;letter-spacing:2px}
.rzx-root.rzx-b .rzx-rev__q{margin:0;font-size:.93rem;line-height:1.55;color:var(--ink);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rzx-root.rzx-b .rzx-rev.is-open .rzx-rev__q{-webkit-line-clamp:unset;display:block;overflow:visible}
.rzx-root.rzx-b .rzx-rev__more{background:none;border:0;color:var(--red);font-family:var(--disp);font-weight:600;font-size:.82rem;cursor:pointer;padding:8px 0 0;letter-spacing:.02em}
.rzx-root.rzx-b .rzx-rev__by{font-family:var(--disp);font-weight:600;font-size:.86rem;color:var(--ash);margin-top:10px;padding-top:10px;border-top:1px solid var(--mist)}

/* section icons for internet plans and mobile add-ons */
.rzx-root.rzx-b .rzb-plansec__icon,
.rzx-root.rzx-b .rzx-mobile__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--red);background:var(--red-soft);border:1px solid var(--red-line);border-radius:50%;margin:0 auto 14px}
.rzx-root.rzx-b .rzb-plansec__icon svg,
.rzx-root.rzx-b .rzx-mobile__icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
/* mobile service — quieter */
.rzx-root.rzx-b .rzx-mobile__h{font-size:clamp(1.25rem,2.4vw,1.7rem)}
.rzx-root.rzx-b .rzx-mgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:clamp(20px,2.6vw,30px);max-width:920px;margin-inline:auto}
.rzx-root.rzx-b .rzx-mplan{background:var(--white);border:1px solid var(--mist);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.rzx-root.rzx-b .rzx-mplan:hover{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(19,22,29,.22)}
.rzx-root.rzx-b .rzx-mplan__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.rzx-root.rzx-b .rzx-mplan__head h3{font-family:var(--disp);font-size:1rem;font-weight:600;color:var(--ink);margin:0}
.rzx-root.rzx-b .rzx-mplan__price{font-family:var(--disp);font-weight:700;font-size:1.25rem;color:var(--ink);margin:0;white-space:nowrap}
.rzx-root.rzx-b .rzx-mplan__price span{font-size:.7rem;font-weight:600;color:var(--ash-soft)}
.rzx-root.rzx-b .rzx-mplan__spec{font-size:clamp(.76rem,.84vw,.82rem);color:var(--red);font-weight:600;margin:8px 0 10px;white-space:nowrap}
.rzx-root.rzx-b .rzx-mplan__feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rzx-root.rzx-b .rzx-mplan__feats li{position:relative;padding-left:18px;font-size:.84rem;color:var(--ash);line-height:1.45}
.rzx-root.rzx-b .rzx-mplan__feats li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--red-soft);box-shadow:inset 0 0 0 2px var(--red)}
.rzx-root.rzx-b .rzx-mobile .rzb-plan__cta{margin-top:18px}
@media(min-width:761px){
  .rzx-root.rzx-b .rzx-mobile .rzx-mplan{min-height:310px}
  .rzx-root.rzx-b .rzx-mobile .rzb-plan__cta{margin-top:auto}
}
@media(max-width:760px){.rzx-root.rzx-b .rzx-mgrid{grid-template-columns:1fr;max-width:420px}}

/* item 2 — sticky comparison headers (column heads stay visible while scrolling the table on mobile) */
.rzx-root.rzx-b .rzb-table thead th{position:sticky;top:0;z-index:3;box-shadow:inset 0 -1px 0 var(--mist)}
@media(max-width:760px){.rzx-root.rzx-b .rzb-tablewrap{max-height:70vh;overflow:auto}}

/* item 11 — Self-Setup / Professional Install: centered, larger, two-color headlines */
.rzx-root.rzx-b .rzx-setupsec{padding-top:clamp(32px,4vw,52px);padding-bottom:clamp(36px,4.5vw,58px)}
.rzx-root.rzx-b .rzx-setupsec .rzb-head{margin-bottom:clamp(16px,2vw,24px)}
.rzx-root.rzx-b .rzx-setupsec .rzb-setups{max-width:920px;gap:clamp(16px,2vw,24px)}
.rzx-root.rzx-b .rzb-setup--v2{text-align:center;align-items:center}
.rzx-root.rzx-b a.rzb-setup--v2{color:inherit;text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease)}
.rzx-root.rzx-b a.rzb-setup--v2:hover{transform:none;border-color:var(--red-line);box-shadow:none}
.rzx-root.rzx-b a.rzb-setup--v2:focus-visible{outline:3px solid rgba(174,5,0,.28);outline-offset:4px}
.rzx-root.rzx-b .rzb-setup__title{font-family:var(--disp);font-weight:700;line-height:1.12;font-size:clamp(1.18rem,2.2vw,1.55rem);margin:0 0 8px;text-transform:uppercase;letter-spacing:.01em}
.rzx-root.rzx-b .rzb-setup__t1{color:var(--ink)}
.rzx-root.rzx-b .rzb-setup__t2{color:var(--red);white-space:nowrap}
.rzx-root.rzx-b .rzb-setup--v2 .rzb-setup__p{text-align:center;font-size:.94rem;line-height:1.5}


/* comparison table — collapse the reserved scrollbar box so the Redzone highlight reaches the card bottom (still scrolls via swipe/drag) */
.rzx-root.rzx-b .rzb-tablewrap{scrollbar-width:none;-ms-overflow-style:none}
.rzx-root.rzx-b .rzb-tablewrap::-webkit-scrollbar{display:none;width:0;height:0}

/* setup-box icons (transparent, no background) */
.rzx-root.rzx-b .rzb-setup__icon{display:block;height:62px;width:auto;margin:0 auto 16px;object-fit:contain}

/* Jim 6/9 — hero See Plans anchors to the plans section */
html{scroll-behavior:smooth}
#simple-plans{scroll-margin-top:198px}
/* phone-number buttons never wrap across lines */
a.button[href^="tel:"]{white-space:nowrap}
a.button[href^="tel:"] .button_label{white-space:nowrap;display:inline-flex;align-items:center;gap:7px}

/* mobile hamburger panel: half-screen slide-in (theme's native 250px layout, not full-screen) */
@media (max-width: 959px){
  .mfn-sidemenu-tmpl{width:250px !important;max-width:62vw !important;box-shadow:-14px 0 44px rgba(0,0,0,.38)}
}

/* ticker wrapper: no inherited root padding — sits flush against the deal banner */
#rzxTicker{padding-bottom:0 !important;padding-top:0 !important}

/* footer: Maine lake panorama behind a dark scrim (keeps text readable) */
#mfn-footer-template{background:linear-gradient(rgba(10,12,16,.42),rgba(10,12,16,.3)),url(/wp-content/uploads/rzx/footer-maine.jpg) center/cover no-repeat !important}
#mfn-footer-template section.mcb-section{background-color:transparent !important;background-image:none !important}
#mfn-footer-template .mcb-background-overlay{background:transparent !important}



/* photo icons in the setup boxes (van / device) */
.rzx-root.rzx-b .rzx-setupsec .rzb-setup--v2{align-self:stretch;padding:clamp(12px,1.5vw,16px);gap:10px}
.rzx-root.rzx-b .rzx-setupsec .rzb-setup__icon--photo{box-sizing:border-box;width:100%;max-width:100%;height:190px;max-height:none;margin:0 0 4px;padding:8px 12px;object-fit:contain;border:1px solid var(--mist);border-radius:12px;background:linear-gradient(180deg,#fdfcfa 0%,#f1eee8 100%);filter:none}
.rzx-root.rzx-b .rzx-setupsec .rzb-setup__icon--photo[src*="e3000"]{height:190px;max-width:100%;padding:47px 40px}
@media(max-width:720px){
  .rzx-root.rzx-b .rzx-setupsec{padding-top:34px;padding-bottom:44px}
  .rzx-root.rzx-b .rzx-setupsec .rzb-head{margin-bottom:16px}
  .rzx-root.rzx-b .rzx-setupsec .rzb-setups{max-width:420px}
  .rzx-root.rzx-b .rzx-setupsec .rzb-setup--v2{padding:14px;gap:10px}
  .rzx-root.rzx-b .rzx-setupsec .rzb-setup__icon--photo{height:160px;padding:6px 8px}
  .rzx-root.rzx-b .rzx-setupsec .rzb-setup__icon--photo[src*="e3000"]{height:148px;padding:40px 20px}
}
/* FAQ: bottom padding tuned so the visual gap after the closing line matches standard sections (closing line carries 15px margin) */
.rzx-root.rzx-b .rzx-faqsec{padding-bottom:clamp(52px,6.8vw,104px)}

/* "Finally, Internet Built for Mainers" CTA — sunset coast pre-cropped to band ratio; text sits over sky/water */
.rzx-root.rzx-b .rzx-ctacoast{background:linear-gradient(rgba(13,16,22,.40),rgba(13,16,22,.52)),url(/wp-content/uploads/rzx/cta-coast.jpg) 50% 50%/cover no-repeat !important}
/* "20 years serving Maine" trust band — forest path behind a dark scrim */
.rzx-root.rzx-b #rbRiskBand{background:linear-gradient(rgba(19,22,29,.55),rgba(19,22,29,.62)),url(/wp-content/uploads/rzx/trust-forest.jpg) 50% 50%/cover no-repeat !important}

/* Freedom plan: Most Popular highlight */
.rzx-root.rzx-b .rzb-plan--pop{position:relative;border:2px solid var(--red);box-shadow:0 18px 44px -22px rgba(174,5,0,.35)}
.rzx-root.rzx-b .rzb-plan__pop{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:var(--red);color:#fff;font-family:var(--disp);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:6px 14px;border-radius:100px;white-space:nowrap;box-shadow:0 6px 16px -6px rgba(174,5,0,.5)}
