/* ============================================================
   Rankfinity — Obsidian Glass core
   Shared design system for every page except the front page,
   which ships its own inline copy and is deliberately untouched.
   ============================================================ */

:root{
  --ink:#06080B; --ink-2:#0A0E13; --ink-deep:#04060A;
  --panel:rgba(255,255,255,.035); --panel-2:rgba(255,255,255,.055);
  --hair:rgba(255,255,255,.09); --hair-2:rgba(255,255,255,.16);

  --teal:#2DD4BF; --blue:#3B82F6; --sky:#38BDF8;
  --grad:linear-gradient(100deg,#2DD4BF 0%,#38BDF8 45%,#3B82F6 100%);

  --paper:#E9EEF4; --muted:#8B98A8; --dim:#5C6875;

  --h1:#10B981; --h2:#EAB308; --h3:#F97316; --h4:#EF4444;

  --maxw:1180px; --r-sm:7px; --r-btn:11px; --r:14px; --r-lg:22px;
}

/* ── Ground ───────────────────────────────────────────────── */

body.rf{
  background:var(--ink);
  color:var(--paper);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.rf a{color:inherit;text-decoration:none}
body.rf ::selection{background:rgba(45,212,191,.28)}

/* ── Type ─────────────────────────────────────────────────── */

.rf-display,
body.rf h1,body.rf h2,body.rf h3,body.rf h4{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:600;
  letter-spacing:-.022em;
  line-height:1.06;
  color:var(--paper);
}
body.rf h1{font-size:clamp(2.3rem,5vw,3.9rem)}
body.rf h2{font-size:clamp(2rem,4.4vw,3.35rem)}
body.rf h3{font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.2}
body.rf h4{font-size:1.1rem;line-height:1.25}

.rf-mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.rf-grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

.rf-eyebrow{
  font-family:'Playfair Display',Georgia,serif;font-style:italic;
  font-size:1.02rem;letter-spacing:.012em;color:var(--muted);font-weight:500;
  display:flex;align-items:center;gap:.62rem;margin-bottom:1.35rem;
}
.rf-eyebrow::before{
  content:"";width:7px;height:7px;border-radius:2px;
  background:var(--dot,var(--teal));box-shadow:0 0 12px var(--dot,var(--teal));flex:none;
}

.rf-lede{font-size:clamp(1rem,1.5vw,1.14rem);color:var(--muted);max-width:64ch;line-height:1.68}
.rf-fine{font-size:.82rem;color:var(--dim);line-height:1.55}

/* ── Layout ───────────────────────────────────────────────── */

.rf-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.rf-sec{padding:clamp(72px,9vw,124px) 0;position:relative}
.rf-sec--tight{padding:clamp(56px,6vw,80px) 0}
.rf-sec-head{max-width:66ch;margin-bottom:clamp(36px,4.5vw,58px)}
.rf-sec-head h2{margin-bottom:1rem}
.rf-rule{height:1px;background:linear-gradient(90deg,transparent,var(--hair) 12%,var(--hair) 88%,transparent)}

.rf-glow{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(680px 320px at 22% 0%,rgba(45,212,191,.13),transparent 68%),
    radial-gradient(560px 300px at 82% 12%,rgba(59,130,246,.11),transparent 70%);
}
.rf-sec > .rf-wrap{position:relative;z-index:1}

/* ── Buttons ──────────────────────────────────────────────── */

.rf-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.86rem 1.5rem;border-radius:var(--r-btn);
  font-size:.93rem;font-weight:500;letter-spacing:-.005em;
  border:1px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .18s,background .18s,border-color .18s;
}
.rf-btn--primary{background:var(--grad);color:#04070A;font-weight:600;box-shadow:0 4px 24px -6px rgba(45,212,191,.5)}
.rf-btn--primary:hover{transform:translateY(-2px);box-shadow:0 10px 34px -8px rgba(45,212,191,.66)}
.rf-btn--ghost{background:var(--panel);border-color:var(--hair-2);color:var(--paper)}
.rf-btn--ghost:hover{background:var(--panel-2);border-color:rgba(45,212,191,.45);transform:translateY(-2px)}
.rf-btn--sm{padding:.6rem 1.05rem;font-size:.85rem}

/* ── Panels & grids ───────────────────────────────────────── */

.rf-panel{
  padding:1.6rem 1.5rem;border-radius:var(--r-lg);
  background:var(--panel);border:1px solid var(--hair);
  transition:transform .22s cubic-bezier(.2,.8,.3,1),border-color .22s;
}
.rf-panel:hover{transform:translateY(-4px);border-color:var(--hair-2)}

.rf-grid{display:grid;gap:16px}
.rf-grid--2{grid-template-columns:repeat(2,1fr)}
.rf-grid--3{grid-template-columns:repeat(3,1fr)}
.rf-grid--4{grid-template-columns:repeat(4,1fr)}

/* ── Pricing plans ────────────────────────────────────────── */

.rf-plan{
  padding:1.85rem 1.7rem;border-radius:var(--r-lg);
  background:var(--panel);border:1px solid var(--hair);
  display:flex;flex-direction:column;position:relative;
  transition:transform .22s cubic-bezier(.2,.8,.3,1),border-color .22s;
}
.rf-plan:hover{transform:translateY(-4px);border-color:var(--hair-2)}
.rf-plan--best{
  background:linear-gradient(170deg,rgba(45,212,191,.09),rgba(59,130,246,.05));
  border-color:rgba(45,212,191,.42);box-shadow:0 14px 50px -22px rgba(45,212,191,.55);
}
.rf-plan-flag{
  position:absolute;top:-1px;right:1.5rem;
  font-family:'JetBrains Mono',monospace;font-size:.58rem;
  letter-spacing:.13em;text-transform:uppercase;
  padding:.28rem .6rem;border-radius:0 0 var(--r-sm) var(--r-sm);
  background:var(--grad);color:#04070A;font-weight:700;
}
.rf-plan-name{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:600;margin-bottom:.35rem;letter-spacing:-.015em}
.rf-plan-for{font-size:.82rem;color:var(--dim);margin-bottom:1.35rem;line-height:1.5;min-height:2.4em}
.rf-plan-price{display:flex;align-items:baseline;gap:.35rem;margin-bottom:.35rem}
.rf-plan-price .num{font-family:'JetBrains Mono',monospace;font-size:2.45rem;font-weight:700;letter-spacing:-.045em}
.rf-plan-price .per{font-size:.85rem;color:var(--muted)}
.rf-plan-sub{font-size:.78rem;color:var(--dim);margin-bottom:1.5rem;min-height:1.4em}
.rf-plan ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:.62rem;margin:0 0 1.7rem;flex:1}
.rf-plan li{font-size:.855rem;color:var(--muted);padding-left:1.4rem;position:relative;line-height:1.5}
.rf-plan li::before{
  content:"";position:absolute;left:0;top:.42em;width:9px;height:5px;
  border-left:1.6px solid var(--teal);border-bottom:1.6px solid var(--teal);transform:rotate(-45deg);
}
.rf-plan li.off{color:var(--dim);opacity:.55}
.rf-plan li.off::before{border-left:0;border-color:var(--dim);transform:none;top:.66em;height:0}
.rf-plan .rf-btn{width:100%}

.rf-note{
  display:flex;gap:.9rem;align-items:flex-start;margin-top:26px;
  padding:1.15rem 1.3rem;border-radius:var(--r);
  background:var(--panel);border:1px solid var(--hair);
}
.rf-note svg{width:19px;height:19px;flex:none;margin-top:.18rem;fill:none;stroke:var(--teal);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rf-note p{margin:0;font-size:.87rem;color:var(--muted);line-height:1.62}
.rf-note b{color:var(--paper);font-weight:600}

/* ── Tables ───────────────────────────────────────────────── */

.rf-table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--hair)}
.rf-table{width:100%;border-collapse:collapse;font-size:.87rem;min-width:640px}
.rf-table th,.rf-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--hair)}
.rf-table th{
  font-family:'JetBrains Mono',monospace;font-size:.68rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-weight:500;
  background:rgba(255,255,255,.02);
}
.rf-table td{color:var(--muted)}
.rf-table td:first-child{color:var(--paper);font-weight:500}
.rf-table tr:last-child td{border-bottom:0}
.rf-table .yes{color:var(--h1)}
.rf-table .part{color:var(--h2)}
.rf-table .no{color:var(--dim)}

/* ── FAQ ──────────────────────────────────────────────────── */

.rf-faq{border-top:1px solid var(--hair)}
.rf-faq details{border-bottom:1px solid var(--hair)}
.rf-faq summary{
  list-style:none;cursor:pointer;padding:1.15rem 0;
  display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  font-size:1rem;font-weight:500;color:var(--paper);
}
.rf-faq summary::-webkit-details-marker{display:none}
.rf-faq summary::after{content:"+";font-family:'JetBrains Mono',monospace;color:var(--teal);font-size:1.15rem;flex:none;transition:transform .2s}
.rf-faq details[open] summary::after{transform:rotate(45deg)}
.rf-faq p{margin:0 0 1.15rem;color:var(--muted);font-size:.92rem;max-width:72ch}

/* ── Blog ─────────────────────────────────────────────────── */

.rf-post-card{
  display:flex;flex-direction:column;height:100%;
  padding:1.5rem;border-radius:var(--r-lg);
  background:var(--panel);border:1px solid var(--hair);
  transition:transform .22s cubic-bezier(.2,.8,.3,1),border-color .22s;
}
.rf-post-card:hover{transform:translateY(-4px);border-color:rgba(45,212,191,.4)}
.rf-post-meta{
  font-family:'JetBrains Mono',monospace;font-size:.66rem;
  letter-spacing:.11em;text-transform:uppercase;color:var(--dim);margin-bottom:.9rem;
}
.rf-post-card h3{margin:0 0 .7rem}
.rf-post-card p{margin:0 0 1.2rem;font-size:.89rem;color:var(--muted);flex:1}
.rf-post-more{font-size:.85rem;color:var(--teal);font-weight:500}

.rf-article{max-width:none}
.rf-article p,.rf-article li{color:var(--muted);font-size:1.02rem;line-height:1.75;max-width:68ch}
.rf-article h2{margin:2.6rem 0 1rem;font-size:clamp(1.6rem,3vw,2.1rem)}
.rf-article h3{margin:2rem 0 .8rem}
.rf-article strong{color:var(--paper);font-weight:600}
.rf-article a{color:var(--teal);border-bottom:1px solid rgba(45,212,191,.35)}
.rf-article img{max-width:100%;height:auto;border-radius:var(--r);border:1px solid var(--hair);margin:1.8rem 0}
.rf-article blockquote{
  margin:1.8rem 0;padding:.2rem 0 .2rem 1.4rem;
  border-left:2px solid var(--teal);color:var(--paper);font-style:normal;
}

/* ── Responsive ───────────────────────────────────────────── */

@media(max-width:980px){
  .rf-grid--4{grid-template-columns:repeat(2,1fr)}
  .rf-grid--3{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .rf-grid--2,.rf-grid--3,.rf-grid--4{grid-template-columns:1fr}
  .rf-plan--best{order:-1}
  .rf-wrap{padding:0 18px}
}

/* ============================================================
   Page furniture built with native Elementor widgets
   ============================================================ */

.rf-eyebrow-w p{
  font-family:'Playfair Display',Georgia,serif;font-style:italic;
  font-size:1.02rem;letter-spacing:.012em;color:#8B98A8;font-weight:500;
  display:flex;align-items:center;gap:.62rem;margin:0;
}
.rf-eyebrow-w p::before{
  content:"";width:7px;height:7px;border-radius:2px;
  background:var(--dot,#2DD4BF);box-shadow:0 0 12px var(--dot,#2DD4BF);flex:none;
}

.rf-h1 .elementor-heading-title,
.rf-h2 .elementor-heading-title{
  font-family:'Playfair Display',Georgia,serif;font-weight:600;
  letter-spacing:-.022em;line-height:1.06;color:#E9EEF4;
}
.rf-lede-w p{font-size:1.08rem;color:#8B98A8;line-height:1.68;margin:0 0 .9rem;max-width:64ch}
.rf-lede-center p{max-width:58ch;margin-left:auto;margin-right:auto;text-align:center}
.rf-lede-w p:last-child{margin-bottom:0}
.rf-lede-w strong{color:#E9EEF4;font-weight:500}

/* plan card internals */
.rf-planname .elementor-heading-title{
  font-family:'Playfair Display',Georgia,serif;font-size:1.4rem;font-weight:600;
  letter-spacing:-.015em;color:#E9EEF4;
}
.rf-planfor p{font-size:.82rem;color:#5C6875;line-height:1.5;margin:0;min-height:2.4em}
.rf-planprice p{
  display:flex;align-items:baseline;gap:.35rem;margin:0;
  font-family:'JetBrains Mono',ui-monospace,monospace;
}
.rf-planprice .num{font-size:2.45rem;font-weight:700;letter-spacing:-.045em;color:#E9EEF4;font-variant-numeric:tabular-nums}
.rf-planprice .num.grad{background:linear-gradient(100deg,#2DD4BF 0%,#38BDF8 45%,#3B82F6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.rf-planprice .per{font-family:'Inter',sans-serif;font-size:.85rem;color:#8B98A8;font-weight:400}
.rf-plansub p{font-size:.78rem;color:#5C6875;margin:0;min-height:1.4em}

.rf-planlist .elementor-icon-list-text{font-size:.855rem;color:#8B98A8;line-height:1.5}
.rf-planlist .elementor-icon-list-icon{margin-top:.15em}
.rf-planlist-off .elementor-icon-list-text{color:#5C6875;opacity:.6}

.rf-flag p{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.58rem;
  letter-spacing:.13em;text-transform:uppercase;font-weight:700;
  color:#04070A;margin:0;padding:.28rem .6rem;border-radius:0 0 7px 7px;
  background:linear-gradient(100deg,#2DD4BF 0%,#38BDF8 45%,#3B82F6 100%);
  position:absolute;top:0;right:1.5rem;
}

/* buttons rendered by the Elementor button widget */
.rf-b-primary .elementor-button{
  background:linear-gradient(100deg,#2DD4BF 0%,#38BDF8 45%,#3B82F6 100%);
  color:#04070A;font-weight:600;border-radius:11px;border:1px solid transparent;
  font-family:'Inter',sans-serif;font-size:.93rem;padding:.86rem 1.5rem;
  box-shadow:0 4px 24px -6px rgba(45,212,191,.5);
  transition:transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .18s;
}
.rf-b-primary .elementor-button:hover{transform:translateY(-2px);box-shadow:0 10px 34px -8px rgba(45,212,191,.66);color:#04070A}
.rf-b-ghost .elementor-button{
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.16);color:#E9EEF4;
  border-radius:11px;font-family:'Inter',sans-serif;font-size:.93rem;font-weight:500;padding:.86rem 1.5rem;
  transition:transform .18s cubic-bezier(.2,.8,.3,1),background .18s,border-color .18s;
}
.rf-b-ghost .elementor-button:hover{background:rgba(255,255,255,.055);border-color:rgba(45,212,191,.45);transform:translateY(-2px);color:#E9EEF4}
.rf-b-block .elementor-button{width:100%}

/* native accordion restyled */
.rf-acc .elementor-accordion-item{border:0;border-bottom:1px solid rgba(255,255,255,.09)}
.rf-acc .elementor-accordion-item:first-child{border-top:1px solid rgba(255,255,255,.09)}
.rf-acc .elementor-tab-title{
  background:transparent;padding:1.15rem 0;
  font-family:'Inter',sans-serif;font-size:1rem;font-weight:500;
}
.rf-acc .elementor-tab-title a{color:#E9EEF4}
.rf-acc .elementor-tab-content{
  background:transparent;border:0;padding:0 0 1.2rem;
  color:#8B98A8;font-size:.92rem;line-height:1.7;max-width:72ch;
}
.rf-acc .elementor-accordion-icon{color:#2DD4BF}

/* ============================================================
   Blog: archive cards and single-post body
   ============================================================ */

.rf-archive .elementor-post{
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.09);
  border-radius:22px;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .22s cubic-bezier(.2,.8,.3,1),border-color .22s;
}
.rf-archive .elementor-post:hover{transform:translateY(-4px);border-color:rgba(45,212,191,.4)}
.rf-archive .elementor-post__thumbnail__link{margin:0}
.rf-archive .elementor-post__thumbnail{border-radius:0}
.rf-archive .elementor-post__text{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;flex:1}
.rf-archive .elementor-post__title{margin:0 0 .6rem}
.rf-archive .elementor-post__title a{color:#E9EEF4}
.rf-archive .elementor-post__title a:hover{color:#2DD4BF}
.rf-archive .elementor-post__meta-data{
  border:0;padding:0;margin:0 0 .8rem;font-variant-numeric:tabular-nums;
}
.rf-archive .elementor-post__excerpt{flex:1}
.rf-archive .elementor-post__excerpt p{margin:0}
.rf-archive .elementor-post__read-more{margin-top:1.1rem;align-self:flex-start}
.rf-archive .elementor-post__card{background:transparent;box-shadow:none}
.rf-archive .e-load-more-message,
.rf-archive .elementor-pagination{margin-top:2.4rem}

.rf-postmeta .elementor-post-info__item{font-variant-numeric:tabular-nums}
.rf-postmeta .elementor-post-info__terms-list-item{color:#2DD4BF}

.rf-article{color:#8B98A8}
.rf-article p,.rf-article li{font-size:1.04rem;line-height:1.78;color:#8B98A8}
.rf-article p{margin:0 0 1.3rem}
.rf-article h2{
  font-family:'Playfair Display',Georgia,serif;font-weight:600;color:#E9EEF4;
  font-size:clamp(1.65rem,3vw,2.15rem);line-height:1.12;letter-spacing:-.02em;
  margin:2.9rem 0 1rem;
}
.rf-article h3{
  font-family:'Playfair Display',Georgia,serif;font-weight:600;color:#E9EEF4;
  font-size:1.32rem;line-height:1.2;margin:2.1rem 0 .8rem;
}
.rf-article strong{color:#E9EEF4;font-weight:600}
.rf-article a{color:#2DD4BF;border-bottom:1px solid rgba(45,212,191,.35)}
.rf-article a:hover{border-bottom-color:#2DD4BF}
.rf-article ul,.rf-article ol{margin:0 0 1.4rem;padding-left:1.3rem}
.rf-article li{margin-bottom:.5rem}
.rf-article ul li::marker{color:#2DD4BF}
.rf-article img{max-width:100%;height:auto;border-radius:14px;border:1px solid rgba(255,255,255,.09);margin:2rem 0}
.rf-article figure{margin:2rem 0}
.rf-article figcaption{font-size:.82rem;color:#5C6875;margin-top:.6rem}
.rf-article blockquote{
  margin:2rem 0;padding:.1rem 0 .1rem 1.5rem;
  border-left:2px solid #2DD4BF;color:#E9EEF4;font-style:normal;
}
.rf-article code{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.88em;
  background:rgba(255,255,255,.055);padding:.12em .4em;border-radius:5px;color:#E9EEF4;
}
.rf-article pre{
  background:#0A0E13;border:1px solid rgba(255,255,255,.09);border-radius:14px;
  padding:1.2rem 1.3rem;overflow-x:auto;margin:2rem 0;
}
.rf-article pre code{background:transparent;padding:0}
.rf-article table{
  width:100%;border-collapse:collapse;font-size:.9rem;margin:2rem 0;
  border:1px solid rgba(255,255,255,.09);border-radius:14px;overflow:hidden;
}
.rf-article th,.rf-article td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.09)}
.rf-article th{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.68rem;
  letter-spacing:.1em;text-transform:uppercase;color:#5C6875;font-weight:500;
  background:rgba(255,255,255,.02);
}
.rf-article td:first-child{color:#E9EEF4;font-weight:500}
.rf-article tr:last-child td{border-bottom:0}
.rf-article hr{border:0;height:1px;margin:2.6rem 0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.09) 12%,rgba(255,255,255,.09) 88%,transparent)}

/* ============================================================
   Module pages: bento cells, spec rows, cross-links
   ============================================================ */

.rf-cell-t .elementor-heading-title{
  font-family:'Playfair Display',Georgia,serif;font-weight:600;color:#E9EEF4;
  font-size:1.28rem;line-height:1.2;letter-spacing:-.015em;
}
.rf-cell-b p{font-size:.92rem;color:#8B98A8;line-height:1.62;margin:0}
.rf-cell-b strong{color:#E9EEF4;font-weight:500}

.rf-spec p{margin:0 0 1.15rem;font-size:.96rem;color:#8B98A8;line-height:1.7}
.rf-spec p:last-child{margin-bottom:0}
.rf-spec strong{color:#E9EEF4;font-weight:500}
.rf-spec code{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.86em;
  padding:.12em .42em;border-radius:5px;background:rgba(255,255,255,.055);color:#E9EEF4;
}
.rf-spec code.good{color:#2DD4BF;background:rgba(45,212,191,.1)}
.rf-spec code.bad{color:#EF4444;background:rgba(239,68,68,.1)}

.rf-figure p{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums;
  font-size:2.9rem;font-weight:700;letter-spacing:-.045em;margin:0;
  background:linear-gradient(100deg,#2DD4BF 0%,#38BDF8 45%,#3B82F6 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.rf-figure-k p{font-size:.85rem;color:#5C6875;line-height:1.5;margin:.4rem 0 0}

.rf-xlink .elementor-icon-list-text{
  font-family:'Inter',system-ui,sans-serif;font-size:.95rem;color:#8B98A8;
}
.rf-xlink .elementor-icon-list-item:hover .elementor-icon-list-text{color:#2DD4BF}

.rf-measure{max-width:760px}
.rf-article{max-width:760px}

/* ============================================================
   First band clearance
   The global header is transparent and sits in normal flow on
   every page except the front one. The bands were padded for a
   solid bar, which left roughly 200px of empty space above the
   first eyebrow. Trimming the first band closes it.
   ============================================================ */

/* Scoped to page and post documents on purpose. The header and footer are
   also rendered as .elementor wrappers with an .e-parent container inside,
   so an unscoped selector padded the header bar itself and stretched it
   down the page. */
body.rf .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child,
body.rf .elementor[data-elementor-type="single-post"] > .e-con.e-parent:first-child,
body.rf .elementor[data-elementor-type="archive"] > .e-con.e-parent:first-child{
  --padding-top:74px;
}
@media (max-width:767px){
  body.rf .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child,
  body.rf .elementor[data-elementor-type="single-post"] > .e-con.e-parent:first-child,
  body.rf .elementor[data-elementor-type="archive"] > .e-con.e-parent:first-child{
    --padding-top:48px;
  }
}

/* ============================================================
   macOS window chrome, the site's core motif

   Lifted from the landing page rule for rule so the module pages
   read as the same product rather than as a lookalike. The landing
   defines these inside its own inline stylesheet, which never loads
   anywhere else, so the same class names are re-declared here for
   every other page. Values are copied, not approximated.
   ============================================================ */

:root{
  --mac-r:#FF5F57;
  --mac-y:#FEBC2E;
  --mac-g:#28C840;
}

.win{
  border-radius:16px;overflow:hidden;
  background:linear-gradient(180deg,#0E1218,#090C11);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 22px 60px -30px rgba(0,0,0,.9),
             0 0 0 1px rgba(255,255,255,.02) inset;
}
.win-bar{
  position:relative;
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 13px;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.014);
}
.lights{display:flex;gap:7px}
.lights i{width:11px;height:11px;border-radius:50%;display:block}
.lights i:nth-child(1){background:var(--mac-r)}
.lights i:nth-child(2){background:var(--mac-y)}
.lights i:nth-child(3){background:var(--mac-g)}
.win-tools{display:flex;gap:12px;opacity:.4}
.win-tools svg{
  width:14px;height:14px;stroke:#E9EEF4;fill:none;
  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}
.win-body{padding:16px}

/* ── Faux-UI atoms used inside the windows ─────────────────────── */

.ui-stack{display:flex;flex-direction:column;gap:11px}
.ui-pill{
  display:flex;align-items:center;gap:.5rem;
  padding:.62rem .8rem;border-radius:10px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  font-size:.82rem;color:#E9EEF4;
}
.ui-pill svg{width:14px;height:14px;flex:none;stroke:#3B82F6;fill:none;stroke-width:1.6}
.ui-lbl{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.68rem;letter-spacing:.05em;color:#8B98A8;
  display:flex;align-items:center;gap:.45rem;
}
.ui-lbl::before{content:"";width:6px;height:6px;border-radius:50%;background:#3B82F6;flex:none}
.ui-line{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.ui-key{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.73rem;color:#8B98A8}
.ui-num{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.73rem;color:#E9EEF4;font-weight:500;
  font-variant-numeric:tabular-nums;
}
.ui-ok{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.66rem;color:#10B981;
  border:1px solid rgba(16,185,129,.35);background:rgba(16,185,129,.1);
  padding:.14rem .42rem;border-radius:5px;white-space:nowrap;
}
.ui-chips{display:flex;flex-wrap:wrap;gap:6px}
.ui-chip{
  font-size:.73rem;padding:.28rem .58rem;border-radius:7px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09);color:#8B98A8;
}
.ui-chip.on{background:rgba(45,212,191,.12);border-color:rgba(45,212,191,.34);color:#2DD4BF}
.skel{background:rgba(255,255,255,.045);border-radius:9px;height:38px;border:1px solid rgba(255,255,255,.03)}
.skel-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}

.ui-cap{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  color:#5C6875;margin:0;padding:0;
}

/* The window is a figure beside the copy, and drops below it on tablet. */
.rf-hero-win{width:100%}
@media(max-width:1024px){
  .rf-hero-win{max-width:520px}
}


/* ============================================================
   Live geo-grid scan, the landing page's signature component

   Copied rule for rule from the landing's inline stylesheet so the
   module pages show the same product surface rather than a lookalike.
   The landing builds the dots with JavaScript on scroll; here they are
   rendered server-side in their final state, so there is no animation
   to wait for and no script to load.

   The four marker colours are the map-surface variants of the heat
   scale: saturated so they read against a light map rather than the
   near-black page ground.
   ============================================================ */

:root{
  --m1:#1E9E4C;
  --m2:#F0A111;
  --m3:#EF7118;
  --m4:#E23A30;
}

.win-title{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.66rem;letter-spacing:.08em;color:#5C6875;
  position:absolute;left:50%;transform:translateX(-50%);pointer-events:none;
}

.scan-sub{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:1rem}
.scan-kw{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.72rem;color:#8B98A8}
.scan-live{
  display:flex;align-items:center;gap:.42rem;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.66rem;color:#10B981;letter-spacing:.1em;white-space:nowrap;
}
.scan-live i{
  width:6px;height:6px;border-radius:50%;background:#10B981;
  box-shadow:0 0 9px #10B981;animation:rf-pulse 1.9s ease-in-out infinite;
}
@keyframes rf-pulse{0%,100%{opacity:1}50%{opacity:.28}}
@media (prefers-reduced-motion:reduce){
  .scan-live i{animation:none}
}

.grid-stage{
  position:relative;aspect-ratio:1/1;border-radius:14px;overflow:hidden;
  border:1px solid rgba(255,255,255,.09);
  background:radial-gradient(circle at 50% 44%,#F7FAFD 0%,#EAF0F7 62%,#E3EAF3 100%);
}
.citymap{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  user-select:none;pointer-events:none;
}
.scan-radius{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.scan-radius circle{fill:none;stroke:rgba(13,124,113,.5);stroke-width:.7;stroke-dasharray:2.4 2.6}

.map-zoom{
  position:absolute;top:10px;right:10px;z-index:4;display:flex;flex-direction:column;
  border:1px solid #D7DFE9;border-radius:8px;overflow:hidden;
  background:#FFFFFF;box-shadow:0 2px 8px rgba(15,23,42,.16);
}
.map-zoom span{
  width:23px;height:22px;display:flex;align-items:center;justify-content:center;
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.82rem;font-weight:600;
  color:#5C6B80;user-select:none;
}
.map-scale{
  position:absolute;left:10px;bottom:8px;z-index:4;display:flex;align-items:flex-end;gap:6px;
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.56rem;color:#3E4B5C;
  letter-spacing:.04em;text-shadow:0 0 4px rgba(255,255,255,.9);
}
.map-scale i{width:34px;height:5px;border:1px solid rgba(62,75,92,.75);border-top:0;display:block}
.map-attr{
  position:absolute;left:50%;transform:translateX(-50%);bottom:8px;z-index:4;
  font-family:'Inter',sans-serif;font-size:.55rem;color:#5C6B80;letter-spacing:.01em;
  text-shadow:0 0 4px rgba(255,255,255,.9);white-space:nowrap;
}
.map-coord{
  position:absolute;right:10px;bottom:8px;z-index:4;
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.56rem;color:#4A5768;
  letter-spacing:.04em;background:rgba(255,255,255,.8);padding:2px 6px;border-radius:6px;
  box-shadow:0 1px 4px rgba(15,23,42,.12);
}

.grid-dots{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr);padding:9%}
.gd{display:flex;align-items:center;justify-content:center}
.gd i{
  width:84%;aspect-ratio:1/1;max-width:41px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:clamp(.6rem,1.5vw,.78rem);font-weight:700;font-style:italic;
  color:#F7FAFD;background:rgba(15,23,42,.10);
  box-shadow:0 2px 7px rgba(15,23,42,.32);
}
.gd[data-h="1"] i{background:var(--m1)}
.gd[data-h="2"] i{background:var(--m2)}
.gd[data-h="3"] i{background:var(--m3)}
.gd[data-h="4"] i{background:var(--m4)}

.pin{
  position:absolute;top:50%;left:50%;width:27px;height:37px;
  transform:translate(-50%,-88%);z-index:3;
  filter:drop-shadow(0 3px 5px rgba(15,23,42,.35));
}

.scan-legend{
  display:flex;justify-content:center;gap:.9rem;margin-top:12px;flex-wrap:wrap;
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.63rem;color:#5C6875;
}
.scan-legend span{display:flex;align-items:center;gap:.32rem}
.scan-legend i{width:8px;height:8px;border-radius:2px;flex:none}

.scan-foot{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(255,255,255,.09);border-radius:14px;overflow:hidden;margin-top:12px;
}
.sf{background:#080B0F;padding:.85rem .7rem;text-align:center}
.sf-k{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.6rem;
  letter-spacing:.13em;text-transform:uppercase;color:#5C6875;margin-bottom:.28rem;
}
.sf-v{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:1.16rem;
  font-weight:700;letter-spacing:-.02em;color:#E9EEF4;font-variant-numeric:tabular-nums;
}

@media(max-width:600px){
  .scan-foot{grid-template-columns:1fr 1fr}
  .win-title{display:none}
}


/* ============================================================
   Window contents for the remaining module pages

   The answer panel is copied from the landing rule for rule. The
   tracker table, the share-of-voice bars and the report list are new,
   built from the same atoms so they read as the same interface.
   ============================================================ */

/* ── AI answer panel, from the landing ───────────────────────────── */

.ans-q{
  font-size:.95rem;line-height:1.55;padding:.75rem .9rem;border-radius:11px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);
  margin-bottom:14px;color:#E9EEF4;
}
.ans-model{
  display:flex;align-items:center;gap:.5rem;margin-bottom:10px;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.66rem;letter-spacing:.1em;color:#5C6875;
}
.ans-model i{
  width:16px;height:16px;border-radius:5px;flex:none;opacity:.85;
  background:linear-gradient(100deg,#2DD4BF 0%,#38BDF8 45%,#3B82F6 100%);
}
.ans-body{font-size:.885rem;line-height:1.72;color:#8B98A8}
.ans-body .rival{
  color:#E9EEF4;font-weight:600;background:rgba(239,68,68,.14);
  border-bottom:1px solid rgba(239,68,68,.5);padding:.03rem .22rem;border-radius:3px;
}
.ans-body .you{
  color:#E9EEF4;font-weight:600;background:rgba(16,185,129,.14);
  border-bottom:1px solid rgba(16,185,129,.55);padding:.03rem .22rem;border-radius:3px;
}
.ans-src{
  margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.09);
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.68rem;color:#5C6875;line-height:1.75;
}
.ans-extract{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(255,255,255,.09);border-radius:11px;overflow:hidden;margin-top:14px;
}
.ax{background:#090C11;padding:.7rem .5rem;text-align:center}
.ax-k{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.55rem;
  letter-spacing:.1em;text-transform:uppercase;color:#5C6875;margin-bottom:.25rem;
}
.ax-v{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.86rem;font-weight:700;color:#E9EEF4}

/* ── Tracker table ─────────────────────────────────────────── */

.trk{width:100%;border-collapse:collapse;font-size:.76rem}
.trk th{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.55rem;
  letter-spacing:.11em;text-transform:uppercase;color:#5C6875;font-weight:500;
  text-align:left;padding:0 .5rem .55rem;
}
.trk th:not(:first-child),.trk td:not(:first-child){text-align:right}
.trk td{
  padding:.5rem;border-top:1px solid rgba(255,255,255,.06);
  color:#E9EEF4;vertical-align:middle;
}
.trk td:first-child{color:#8B98A8;max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trk .num{font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums;font-weight:600}
.trk .up{color:#10B981}
.trk .down{color:#EF4444}
.trk .flat{color:#5C6875}
.trk-feat{
  display:inline-block;font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.1rem .3rem;border-radius:4px;margin-left:.3rem;vertical-align:middle;
  color:#EAB308;border:1px solid rgba(234,179,8,.3);background:rgba(234,179,8,.09);
}

/* ── Share of voice bars ───────────────────────────────────── */

.sov{display:flex;flex-direction:column;gap:11px}
.sov-row{display:grid;grid-template-columns:1fr auto;gap:.5rem .8rem;align-items:baseline}
.sov-name{font-size:.82rem;color:#8B98A8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sov-row.me .sov-name{color:#E9EEF4;font-weight:500}
.sov-pct{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.76rem;
  color:#E9EEF4;font-weight:600;font-variant-numeric:tabular-nums;
}
.sov-track{
  grid-column:1/-1;height:6px;border-radius:99px;
  background:rgba(255,255,255,.06);overflow:hidden;
}
.sov-track i{display:block;height:100%;border-radius:99px;background:rgba(255,255,255,.22)}
.sov-row.me .sov-track i{background:linear-gradient(100deg,#2DD4BF 0%,#38BDF8 45%,#3B82F6 100%)}
.sov-meta{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.58rem;
  color:#5C6875;letter-spacing:.04em;
}

/* ── Saved report list ────────────────────────────────────── */

.rep{display:flex;flex-direction:column;gap:7px}
.rep-row{
  display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  padding:.6rem .75rem;border-radius:9px;
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06);
}
.rep-name{font-size:.79rem;color:#E9EEF4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rep-date{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.6rem;
  color:#5C6875;white-space:nowrap;
}
.rep-free{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.55rem;
  color:#2DD4BF;border:1px solid rgba(45,212,191,.3);background:rgba(45,212,191,.1);
  padding:.1rem .32rem;border-radius:4px;white-space:nowrap;
}

.ui-center{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.95rem;padding:26px 0 22px;text-align:center;
}
.ui-center svg{width:38px;height:38px;stroke:#E9EEF4;fill:none;stroke-width:1.1;opacity:.9}
.ui-center .cap{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.76rem;color:#8B98A8;letter-spacing:.02em;
}
.ui-share{display:flex;align-items:center;gap:8px;margin-top:2px}
.ui-share .lnk{
  flex:1;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.7rem;color:#5C6875;
  padding:.5rem .65rem;border-radius:8px;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ui-share .cp{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.68rem;color:#2DD4BF;
  padding:.5rem .6rem;border-radius:8px;background:rgba(45,212,191,.1);
  border:1px solid rgba(45,212,191,.3);white-space:nowrap;
}
.ui-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}
.ui-bar i{
  display:block;height:100%;border-radius:99px;
  background:linear-gradient(100deg,#2DD4BF 0%,#38BDF8 45%,#3B82F6 100%);
}

@media(max-width:600px){
  .ans-extract{grid-template-columns:1fr 1fr}
}

/* The map is served as WebP with a JPEG fallback, so the wrapper needs
   the same absolute fill the bare image had. */
.grid-stage picture{position:absolute;inset:0;display:block;width:100%;height:100%}
