/* ===========================================================================
   RentGuard CA — shared design system
   Dark by default; [data-theme="light"] on <html> flips to the light palette.
   No build step, no external dependencies. Loaded by every page.
   =========================================================================== */

:root{
  /* dark (default) */
  --bg:#0e1420;
  --bg-deep:#080d16;
  --card:#161e2d;
  --card-2:#1c2537;
  --line:#2a3547;
  --line-soft:#212b3c;
  --ink:#e8edf5;
  --ink-soft:#9aa8bd;
  --ink-faint:#6b7a91;
  --brand:#4a9eff;
  --brand-dark:#3585e0;
  --brand-wash:rgba(74,158,255,.12);
  --accent:#34d399;
  --accent-wash:rgba(52,211,153,.12);
  --warn:#e8b45a;
  --warn-bg:rgba(232,180,90,.10);
  --warn-line:rgba(232,180,90,.38);
  --danger:#f87171;
  --lock:#c084fc;
  --lock-wash:rgba(192,132,252,.12);
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.22);
  --shadow-lift:0 2px 4px rgba(0,0,0,.4), 0 14px 38px rgba(0,0,0,.30);

  --radius:12px;
  --radius-sm:8px;
  --wrap:760px;
  --t:170ms cubic-bezier(.4,0,.2,1);
  --t-slow:280ms cubic-bezier(.4,0,.2,1);
}

[data-theme="light"]{
  --bg:#f6f8fb;
  --bg-deep:#eef2f8;
  --card:#ffffff;
  --card-2:#f8fafc;
  --line:#dfe4ec;
  --line-soft:#eaeef4;
  --ink:#1a2332;
  --ink-soft:#4a5568;
  --ink-faint:#77839a;
  --brand:#1f5da0;
  --brand-dark:#174a82;
  --brand-wash:#e8f0fa;
  --accent:#0d7a4f;
  --accent-wash:rgba(13,122,79,.09);
  --warn:#a06a12;
  --warn-bg:#fdf3e2;
  --warn-line:#e8b45a;
  --danger:#b03535;
  --lock:#7c3aed;
  --lock-wash:rgba(124,58,237,.08);
  --shadow:0 1px 2px rgba(26,35,50,.05), 0 6px 18px rgba(26,35,50,.06);
  --shadow-lift:0 2px 4px rgba(26,35,50,.07), 0 12px 30px rgba(26,35,50,.10);
}

*{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  transition:background var(--t), color var(--t);
}

a{color:var(--brand);text-decoration-color:color-mix(in srgb, var(--brand) 35%, transparent);text-underline-offset:2px;transition:color var(--t),text-decoration-color var(--t)}
a:hover{color:var(--brand-dark);text-decoration-color:currentColor}
[data-theme="light"] a:hover{color:var(--brand-dark)}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.wrap-wide{max-width:1040px;margin:0 auto;padding:0 20px}

/* ------------------------------------------------------- announcement bar
   Injected by JS when a promo in PROMOS is live, so a sale needs no HTML
   edits. Sits above the sticky header and scrolls away with the page. */

.announce{
  background:linear-gradient(90deg, var(--brand-dark), var(--brand));
  color:#fff;font-size:.86rem;font-weight:600;
  animation:rise var(--t-slow) both;
}
[data-theme="light"] .announce{background:linear-gradient(90deg,#174a82,#1f5da0)}
.announce-inner{
  max-width:1040px;margin:0 auto;padding:9px 44px 9px 20px;
  display:flex;align-items:center;justify-content:center;gap:14px;
  flex-wrap:wrap;position:relative;text-align:center;
}
.announce-cta{
  color:#fff;text-decoration:none;font-weight:800;white-space:nowrap;
  border-bottom:1px solid rgba(255,255,255,.5);
  transition:border-color var(--t),opacity var(--t);
}
.announce-cta:hover{color:#fff;border-color:#fff;opacity:.9}
.announce-x{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  background:transparent;border:0;color:#fff;opacity:.7;
  font-size:1.3rem;line-height:1;cursor:pointer;padding:2px 8px;border-radius:6px;
  transition:opacity var(--t),background var(--t);
}
.announce-x:hover{opacity:1;background:rgba(255,255,255,.15)}
@media(max-width:560px){
  .announce-inner{padding:8px 38px 8px 14px;gap:8px;font-size:.8rem}
}

/* ---------------------------------------------------------------- header */

header.site{
  background:color-mix(in srgb, var(--card) 85%, transparent);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:50;
  transition:background var(--t),border-color var(--t);
}
header.site .bar{
  max-width:1040px;margin:0 auto;padding:11px 20px;
  display:flex;align-items:center;gap:18px;
}
.logo{font-weight:800;font-size:1.1rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none;white-space:nowrap;flex-shrink:0}
.logo span{color:var(--brand)}
.logo:hover{color:var(--ink)}

nav.main{
  display:flex;align-items:center;gap:4px;
  margin-left:auto;
  overflow-x:auto;scrollbar-width:none;
}
nav.main::-webkit-scrollbar{display:none}
nav.main a{
  font-size:.86rem;font-weight:600;color:var(--ink-soft);text-decoration:none;
  padding:7px 11px;border-radius:var(--radius-sm);white-space:nowrap;
  transition:color var(--t),background var(--t);
}
nav.main a:hover{color:var(--ink);background:var(--card-2)}
nav.main a.here{color:var(--brand);background:var(--brand-wash)}

.theme-toggle{
  flex-shrink:0;width:34px;height:34px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--card-2);color:var(--ink-soft);cursor:pointer;font-size:.95rem;
  transition:color var(--t),border-color var(--t),background var(--t),transform var(--t);
}
.theme-toggle:hover{color:var(--ink);border-color:var(--brand);transform:translateY(-1px)}
.theme-toggle .icon-sun{display:none}
[data-theme="light"] .theme-toggle .icon-sun{display:block}
[data-theme="light"] .theme-toggle .icon-moon{display:none}

.nav-cta{
  flex-shrink:0;font-size:.84rem;font-weight:700;text-decoration:none;
  padding:8px 14px;border-radius:var(--radius-sm);
  background:var(--brand);color:#fff;
  transition:background var(--t),transform var(--t),box-shadow var(--t);
}
.nav-cta:hover{background:var(--brand-dark);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow)}

@media(max-width:720px){
  header.site .bar{gap:10px;padding:10px 14px}
  nav.main a{padding:6px 8px;font-size:.8rem}
  .nav-cta{display:none}
}

/* ---------------------------------------------------------------- hero */

.hero{padding:48px 0 6px;animation:rise var(--t-slow) both}
.hero.center{text-align:center;padding-bottom:14px}
.hero.center p{margin-left:auto;margin-right:auto}
.hero h1{font-size:2.1rem;letter-spacing:-.025em;line-height:1.2;margin-bottom:12px}
.hero p{color:var(--ink-soft);max-width:60ch;font-size:1.02rem}
@media(max-width:560px){.hero{padding-top:32px}.hero h1{font-size:1.65rem}}

.pill{
  display:inline-block;background:var(--brand-wash);color:var(--brand);
  border:1px solid color-mix(in srgb, var(--brand) 25%, transparent);
  border-radius:999px;padding:3px 12px;font-size:.76rem;font-weight:700;margin-bottom:12px;
}
.pill.accent{background:var(--accent-wash);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 25%, transparent)}
.pill.lock{background:var(--lock-wash);color:var(--lock);border-color:color-mix(in srgb, var(--lock) 25%, transparent)}

.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.hero.center .hero-actions{justify-content:center}

/* ---------------------------------------------------------------- cards */

.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;margin:22px 0;
  transition:border-color var(--t),background var(--t),box-shadow var(--t),transform var(--t);
}
.card h2{font-size:1.15rem;margin-bottom:14px;letter-spacing:-.01em}
.card h3{font-size:1rem;margin-bottom:8px}
.card > p + p{margin-top:10px}
.card.hover:hover{border-color:color-mix(in srgb, var(--brand) 40%, var(--line));box-shadow:var(--shadow-lift);transform:translateY(-2px)}

.section-head{margin:44px 0 4px;text-align:center}
.section-head h2{font-size:1.5rem;letter-spacing:-.02em;margin-bottom:8px}
.section-head p{color:var(--ink-soft);max-width:56ch;margin:0 auto}

/* ---------------------------------------------------------------- forms */

.grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}
@media(max-width:560px){.grid{grid-template-columns:1fr}}

label{display:block;font-size:.85rem;font-weight:600;margin-bottom:5px}
label small{font-weight:400;color:var(--ink-soft)}

input,select,textarea{
  width:100%;padding:10px 12px;font-size:1rem;font-family:inherit;
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--card-2);color:var(--ink);
  transition:border-color var(--t),box-shadow var(--t),background var(--t);
}
input::placeholder,textarea::placeholder{color:var(--ink-faint)}
input:hover,select:hover{border-color:color-mix(in srgb, var(--brand) 35%, var(--line))}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px var(--brand-wash);
}
select{cursor:pointer}

button{font-family:inherit}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 22px;font-size:1rem;font-weight:700;text-decoration:none;
  border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;
  transition:background var(--t),color var(--t),border-color var(--t),transform var(--t),box-shadow var(--t);
}
.btn:active{transform:translateY(1px) scale(.995)}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-dark);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{color:var(--ink);border-color:var(--brand);background:var(--card-2);transform:translateY(-2px)}
.btn-lock{background:var(--lock);color:#fff}
.btn-lock:hover{background:color-mix(in srgb, var(--lock) 82%, #000);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.btn-block{width:100%}

button.primary{
  width:100%;margin-top:16px;padding:13px;font-size:1.05rem;font-weight:700;
  color:#fff;background:var(--brand);border:0;border-radius:var(--radius-sm);cursor:pointer;
  transition:background var(--t),transform var(--t),box-shadow var(--t);
}
button.primary:hover{background:var(--brand-dark);transform:translateY(-2px);box-shadow:var(--shadow-lift)}
button.primary:active{transform:translateY(0)}

.copy-btn{
  margin-top:8px;padding:9px 16px;font-size:.9rem;font-weight:600;
  border:1px solid var(--brand);background:transparent;color:var(--brand);
  border-radius:var(--radius-sm);cursor:pointer;
  transition:background var(--t),color var(--t),transform var(--t);
}
.copy-btn:hover{background:var(--brand);color:#fff;transform:translateY(-1px)}
.copy-btn.done{background:var(--accent);border-color:var(--accent);color:#fff}

/* ---------------------------------------------------------------- results */

.result{
  display:none;
  animation:rise var(--t-slow) both;
}
.result.show{display:block}

.headline-number{
  font-size:2.6rem;font-weight:800;color:var(--accent);letter-spacing:-.03em;line-height:1.1;
  animation:pop var(--t-slow) both;
}
.headline-sub{color:var(--ink-soft);margin-bottom:14px}

table.facts{width:100%;border-collapse:collapse;font-size:.95rem;margin:10px 0}
table.facts td{padding:9px 4px;border-bottom:1px solid var(--line-soft);vertical-align:top;transition:background var(--t)}
table.facts tr:last-child td{border-bottom:0}
table.facts tr:hover td{background:var(--card-2)}
table.facts td:first-child{color:var(--ink-soft);width:46%}
table.facts td:last-child{font-weight:600}

.note{
  background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--radius-sm);
  padding:12px 14px;font-size:.9rem;margin:12px 0;
  animation:rise var(--t) both;
}
.note strong{display:block;margin-bottom:2px}
.note.info{background:var(--brand-wash);border-color:color-mix(in srgb, var(--brand) 28%, transparent)}
.danger{color:var(--danger)}
.muted{color:var(--ink-soft);font-size:.85rem}

/* ---------------------------------------------------------------- details */

details{
  border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:12px 16px;margin:10px 0;background:var(--card-2);
  transition:border-color var(--t),background var(--t);
}
details:hover{border-color:color-mix(in srgb, var(--brand) 32%, var(--line))}
details summary{
  font-weight:700;cursor:pointer;list-style:none;
  display:flex;align-items:flex-start;gap:10px;
  transition:color var(--t);
}
details summary::-webkit-details-marker{display:none}
details summary::before{
  content:"›";flex-shrink:0;color:var(--brand);font-size:1.3rem;line-height:1.1;
  transition:transform var(--t-slow);
}
details[open] summary::before{transform:rotate(90deg)}
details summary:hover{color:var(--brand)}
details[open] summary{margin-bottom:10px}
details[open] > *:not(summary){animation:rise var(--t) both}
.screener li{margin:8px 0 8px 20px;font-size:.95rem}

/* ---------------------------------------------------------------- notice textarea */

textarea#notice-text{
  min-height:300px;font-family:Georgia,"Times New Roman",serif;font-size:.92rem;
  margin-top:10px;line-height:1.5;
}

/* ---------------------------------------------------------------- paywall bait */

.locked{
  position:relative;overflow:hidden;
  border:1px solid color-mix(in srgb, var(--lock) 34%, var(--line));
  border-radius:var(--radius);
  background:linear-gradient(160deg, var(--lock-wash), transparent 60%), var(--card);
  margin:22px 0;
  transition:border-color var(--t),box-shadow var(--t);
}
.locked:hover{border-color:color-mix(in srgb, var(--lock) 55%, var(--line));box-shadow:var(--shadow-lift)}
.locked-head{padding:20px 24px 0;position:relative;z-index:2}
.locked-head h2,.locked-head h3{margin-bottom:6px}
.locked-body{
  padding:14px 24px 20px;position:relative;
  filter:blur(5px);opacity:.55;user-select:none;pointer-events:none;
  transition:filter var(--t-slow),opacity var(--t-slow);
}
.locked:hover .locked-body{filter:blur(4px);opacity:.62}
.locked-overlay{
  position:absolute;inset:auto 0 0 0;z-index:3;
  padding:20px 24px 22px;
  background:linear-gradient(to top, var(--card) 58%, transparent);
  text-align:center;
}
.locked-overlay .lock-icon{font-size:1.4rem;display:block;margin-bottom:6px}
.locked-overlay p{color:var(--ink-soft);font-size:.9rem;max-width:44ch;margin:0 auto 14px}
.locked-overlay strong{color:var(--ink)}

/* ---------------------------------------------------------------- pricing */

.tiers{display:grid;gap:18px;grid-template-columns:repeat(3,1fr);margin:26px 0;align-items:start}
@media(max-width:900px){.tiers{grid-template-columns:1fr;max-width:460px;margin-left:auto;margin-right:auto}}

.tier{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 22px;display:flex;flex-direction:column;height:100%;
  transition:border-color var(--t),box-shadow var(--t),transform var(--t);
}
.tier:hover{border-color:color-mix(in srgb, var(--brand) 42%, var(--line));box-shadow:var(--shadow-lift);transform:translateY(-3px)}
.tier.featured{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand), var(--shadow)}
.tier.featured:hover{transform:translateY(-4px)}
.tier-name{font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}
.tier.featured .tier-name{color:var(--brand)}
.tier-price{font-size:2.15rem;font-weight:800;letter-spacing:-.03em;line-height:1.05}
.tier-price .per{font-size:.9rem;font-weight:600;color:var(--ink-soft);letter-spacing:0}
.tier-was{color:var(--ink-faint);text-decoration:line-through;font-size:.9rem;margin-top:4px}
.tier-alt{color:var(--ink-soft);font-size:.85rem;margin-top:4px}
.tier-note{
  display:inline-block;margin-top:8px;padding:2px 10px;border-radius:999px;
  background:var(--accent-wash);color:var(--accent);
  font-size:.74rem;font-weight:700;
}
.tier-note[hidden],.tier-was[hidden]{display:none}
.tier-blurb{color:var(--ink-soft);font-size:.9rem;margin:14px 0 16px;padding-bottom:16px;border-bottom:1px solid var(--line-soft)}
.tier ul{list-style:none;margin-bottom:20px;flex:1}
.tier li{font-size:.9rem;padding:6px 0 6px 24px;position:relative}
.tier li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:800}
.tier li.no{color:var(--ink-faint)}
.tier li.no::before{content:"—";color:var(--ink-faint)}
.tier li.star::before{content:"★";color:var(--lock)}
.tier .btn{width:100%;margin-top:auto}

.compare{width:100%;border-collapse:collapse;font-size:.9rem;margin:8px 0 4px}
.compare th,.compare td{padding:11px 10px;border-bottom:1px solid var(--line-soft);text-align:left;transition:background var(--t)}
.compare tbody tr:hover td{background:var(--card-2)}
.compare th{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line)}
.compare td:not(:first-child),.compare th:not(:first-child){text-align:center;width:17%}
.compare .yes{color:var(--accent);font-weight:800}
.compare .no{color:var(--ink-faint)}
.compare tr.group td{
  background:var(--card-2);font-weight:800;font-size:.76rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-soft);
}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* billing toggle */
.billing-toggle{display:inline-flex;background:var(--card-2);border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px;margin:0 auto}
.billing-toggle button{
  border:0;background:transparent;color:var(--ink-soft);cursor:pointer;
  padding:7px 18px;border-radius:999px;font-size:.86rem;font-weight:700;
  transition:background var(--t),color var(--t);
}
.billing-toggle button:hover{color:var(--ink)}
.billing-toggle button.on{background:var(--brand);color:#fff}
.toggle-row{display:flex;justify-content:center;margin:22px 0 6px}

/* referral steps */
.steps{display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin:20px 0}
@media(max-width:720px){.steps{grid-template-columns:1fr}}
.step{background:var(--card-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px;transition:border-color var(--t),transform var(--t)}
.step:hover{border-color:color-mix(in srgb, var(--brand) 40%, var(--line));transform:translateY(-2px)}
.step-num{
  width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;
  display:grid;place-items:center;font-size:.82rem;font-weight:800;margin-bottom:10px;
}
.step h3{font-size:.95rem;margin-bottom:5px}
.step p{font-size:.88rem;color:var(--ink-soft)}

.reward-table{width:100%;border-collapse:collapse;font-size:.92rem;margin:6px 0}
.reward-table td,.reward-table th{padding:11px 10px;border-bottom:1px solid var(--line-soft);text-align:left}
.reward-table th{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.reward-table tr:last-child td{border-bottom:0}
.reward-table td:last-child{font-weight:700;color:var(--accent);text-align:right}

/* ---------------------------------------------------------------- CTA */

.cta{
  background:linear-gradient(135deg, var(--brand-dark), color-mix(in srgb, var(--brand-dark) 60%, #0a1628));
  color:#fff;border:0;
}
[data-theme="light"] .cta{background:linear-gradient(135deg,#1f5da0,#174a82)}
.cta h2{color:#fff}
.cta p{opacity:.92;font-size:.95rem;margin-bottom:14px}
.cta a{color:#ffd591}
.cta form{display:flex;gap:10px;flex-wrap:wrap}
.cta input{flex:1;min-width:200px;border:0;background:rgba(255,255,255,.94);color:#1a2332}
.cta input:focus{box-shadow:0 0 0 3px rgba(255,184,77,.5)}
.cta button[type=submit]{
  padding:10px 22px;font-weight:700;border:0;border-radius:var(--radius-sm);
  background:#ffb84d;color:#1a2332;cursor:pointer;
  transition:background var(--t),transform var(--t),box-shadow var(--t);
}
.cta button[type=submit]:hover{background:#ffc76d;transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.3)}
.cta button[type=submit]:disabled{opacity:.6;cursor:wait;transform:none}
.ref-line{margin-top:12px;font-size:.85rem;opacity:.9}
.ref-line input{
  max-width:190px;min-width:0;flex:0 0 auto;padding:7px 10px;font-size:.88rem;
  background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3);
}
.ref-line input::placeholder{color:rgba(255,255,255,.55)}

/* ---------------------------------------------------------------- guides */

.article{max-width:70ch}
.article h2{font-size:1.35rem;margin:34px 0 12px;letter-spacing:-.02em}
.article h3{font-size:1.05rem;margin:24px 0 8px}
.article p{margin-bottom:14px;color:var(--ink)}
.article ul,.article ol{margin:0 0 16px 22px}
.article li{margin-bottom:8px}
.article .lead{font-size:1.05rem;color:var(--ink-soft)}
.article code{background:var(--card-2);border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:.88em}
.article blockquote{
  border-left:3px solid var(--brand);background:var(--card-2);
  padding:12px 16px;margin:0 0 16px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  color:var(--ink-soft);font-size:.94rem;
}
.toc{background:var(--card-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 20px;margin:20px 0}
.toc strong{display:block;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}
.toc ol{margin:0 0 0 20px}
.toc li{margin-bottom:4px;font-size:.92rem}

/* ---------------------------------------------------------------- ads
   Slots are empty containers. Drop an ad network's <ins>/<script> inside a
   [data-ad-slot] element when one is signed up; nothing is loaded today.
   Members: adding class "is-member" to <body> removes every slot (see JS). */

.ad-rail{
  display:none;
  position:fixed;top:50%;transform:translateY(-50%);
  width:160px;min-height:600px;z-index:10;
}
.ad-rail.left{left:max(12px, calc(50% - 620px))}
.ad-rail.right{right:max(12px, calc(50% - 620px))}
.ad-slot{
  width:100%;height:100%;min-height:600px;
  border:1px dashed var(--line);border-radius:var(--radius-sm);
  background:var(--card-2);
  display:grid;place-items:center;
  color:var(--ink-faint);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
}
.ad-inline{
  margin:22px 0;min-height:100px;
  border:1px dashed var(--line);border-radius:var(--radius-sm);
  background:var(--card-2);
  display:grid;place-items:center;
  color:var(--ink-faint);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
}
.ad-label{font-size:.62rem;letter-spacing:.14em;color:var(--ink-faint);text-align:center;margin-bottom:4px;text-transform:uppercase}

/* Side rails need ~1200px before they stop crowding the 760px column. */
@media(min-width:1200px){ body:not(.is-member) .ad-rail{display:block} }
/* Mobile has no room for rails, so it gets the single inline slot instead. */
@media(min-width:721px){ .ad-inline{display:none} }
body.is-member .ad-rail,
body.is-member .ad-inline,
body.is-member .ad-label{display:none !important}

.ad-free-note{font-size:.78rem;color:var(--ink-faint);text-align:center;margin:8px 0 0}

/* ---------------------------------------------------------------- footer */

footer.site{
  border-top:1px solid var(--line);background:var(--bg-deep);
  margin-top:52px;padding:36px 0 46px;
  color:var(--ink-soft);font-size:.82rem;
  transition:background var(--t),border-color var(--t);
}
footer.site .cols{
  max-width:1040px;margin:0 auto;padding:0 20px 24px;
  display:grid;gap:26px;grid-template-columns:1.6fr 1fr 1fr;
}
@media(max-width:720px){footer.site .cols{grid-template-columns:1fr 1fr;gap:20px}}
footer.site h4{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-bottom:10px}
footer.site ul{list-style:none}
footer.site li{margin-bottom:6px}
footer.site a{text-decoration:none;color:var(--ink-soft)}
footer.site a:hover{color:var(--brand)}
footer.site .legal{max-width:1040px;margin:0 auto;padding:22px 20px 0;border-top:1px solid var(--line)}
footer.site .legal p{margin-bottom:8px;max-width:78ch;font-size:.78rem}
.foot-brand{font-weight:800;font-size:1rem;color:var(--ink);letter-spacing:-.02em;margin-bottom:8px}
.foot-brand span{color:var(--brand)}

/* ---------------------------------------------------------------- misc */

.center{text-align:center}
.stack-sm > * + *{margin-top:8px}
hr.soft{border:0;border-top:1px solid var(--line-soft);margin:26px 0}

@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}

/* Honour the OS setting — no motion for anyone who asked for none. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;
  }
  .card.hover:hover,.tier:hover,.step:hover,.btn:hover,button.primary:hover{transform:none}
}
