/* Rentl site footer (option E, "Live status") + optional closing CTA block.
   Shared by every marketing page. Everything is scoped under .cta-strip and
   .site-footer because several pages already use .btn-cta-primary,
   .cta-actions, .footer-inner etc. for other things. Link this AFTER the
   page's own <style> so equal-specificity rules resolve here.
   Markup: design_handoff_footer/Footer Reference.html. Behaviour: footer.js. */

/* Tokens: FIELD identity by default (exact handoff values, independent of the
   page's own --accent-mid, which differs on some pages). */
.cta-strip,.site-footer{
  --ft-deep:#0F1411;--ft-cream:#F2F2EE;
  --ft-accent:#1F5F3F;--ft-accent-deep:#15482F;--ft-mint:#9BC2A9;--ft-live:#5FD08F;
  --ft-sans:'Geist',-apple-system,system-ui,sans-serif;
  --ft-mono:'JetBrains Mono',ui-monospace,monospace;
  --ft-wordmark:'Fraunces',Georgia,serif;
  --ft-display:var(--ft-sans);--ft-display-weight:600;--ft-radius-sm:2px;
  --ft-60:rgba(255,255,255,.6);--ft-55:rgba(255,255,255,.55);--ft-50:rgba(255,255,255,.5);
  --ft-rule:rgba(255,255,255,.12);--ft-rule-soft:rgba(255,255,255,.1);--ft-rule-panel:rgba(255,255,255,.14);
  --ft-ease-out:cubic-bezier(.2,.8,.2,1);--ft-ease-spring:cubic-bezier(.2,.9,.2,1.3);
  font-family:var(--ft-sans);line-height:normal;-webkit-font-smoothing:antialiased;
}
/* index.html's identity switch: civic and ledger take the page's own tokens */
:root[data-identity="civic"] :is(.cta-strip,.site-footer),
:root[data-identity="ledger"] :is(.cta-strip,.site-footer){
  --ft-deep:var(--bg-deep);--ft-cream:var(--bg);
  --ft-accent:var(--accent);--ft-accent-deep:var(--accent-deep);--ft-mint:var(--accent-mid);
  --ft-sans:var(--sans);--ft-display:var(--display);--ft-display-weight:var(--display-weight);--ft-radius-sm:var(--radius-sm);
}
:root[data-identity="civic"] .cta-strip h2 em,
:root[data-identity="ledger"] .cta-strip h2 em{font-style:italic;text-decoration:none}

.cta-strip *,.site-footer *{box-sizing:border-box}
.cta-strip a,.site-footer a{text-decoration:none;cursor:pointer}

/* ---------- 1. CTA block (sits directly above the footer, same bg) ---------- */
.cta-strip{background:var(--ft-deep);color:var(--ft-cream);padding:6rem 1.5rem 4rem;margin-bottom:0;text-align:left}
.cta-strip .cta-inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:5rem;align-items:end}
.cta-strip h2{font-family:var(--ft-display);font-weight:var(--ft-display-weight);font-size:clamp(2.4rem,5vw,4.6rem);line-height:.98;letter-spacing:-.035em;text-wrap:balance;color:var(--ft-cream);margin:0}
.cta-strip h2 em{color:var(--ft-mint);font-style:normal;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.cta-strip .cta-actions{display:flex;justify-content:flex-start;gap:10px;flex-wrap:wrap;margin-top:2.25rem}
.cta-strip .btn{font-family:var(--ft-sans);font-size:15px;font-weight:500;line-height:normal;min-width:0;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--ft-radius-sm);border:1px solid transparent;white-space:nowrap;cursor:pointer;opacity:1;transition:background .15s ease,border-color .15s ease}
/* beats index.html's modern.css soft-corners rule (8px); spec is 2px */
.cta-strip .cta-actions .btn{border-radius:var(--ft-radius-sm)}
.cta-strip .btn .icon{width:14px;height:14px;transition:transform .25s}
.cta-strip .btn:hover .icon{transform:translateX(4px)}
.cta-strip .btn:focus-visible{outline:2px solid var(--ft-mint);outline-offset:3px}
.cta-strip .btn-cta-primary{background:var(--ft-accent);border-color:var(--ft-accent);color:#fff;padding:14px 28px}
.cta-strip .btn-cta-primary:hover{background:var(--ft-accent-deep);border-color:var(--ft-accent-deep);color:#fff;opacity:1}
.cta-strip .btn-cta-ghost{background:transparent;color:var(--ft-cream);border-color:rgba(255,255,255,.28);padding:14px 24px}
.cta-strip .btn-cta-ghost:hover{background:transparent;color:var(--ft-cream);border-color:rgba(255,255,255,.7)}
.cta-strip .cta-status{border:1px solid var(--ft-rule-panel);border-radius:18px;overflow:hidden;transition:transform .15s ease-out;will-change:transform}
.cta-strip .cta-status>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.2rem 1.5rem;border-bottom:1px solid var(--ft-rule-soft)}
.cta-strip .cta-status>div:last-child{border-bottom:0}
.cta-strip .cta-status span{font-family:var(--ft-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ft-55);display:flex;align-items:center}
.cta-strip .cta-status b{font-family:var(--ft-mono);font-weight:500;font-size:28px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ft-cream)}
.cta-strip .cta-status b small{font-size:13px;color:var(--ft-50);margin-left:6px}
.cta-strip .cta-live{width:8px;height:8px;border-radius:50%;background:var(--ft-live);margin-right:8px;flex:none;animation:ctaPulse 2s infinite}
@keyframes ctaPulse{0%{box-shadow:0 0 0 0 rgba(95,208,143,.6)}70%,100%{box-shadow:0 0 0 8px rgba(95,208,143,0)}}

/* ---------- 2. Footer ---------- */
.site-footer{background:var(--ft-deep);color:var(--ft-cream);padding:0 1.5rem;margin:0;border:0;overflow:hidden}
.site-footer.no-cta{padding-top:3rem}
.site-footer .footer-inner{max-width:1240px;margin:0 auto;display:block}
.site-footer .footer-top{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:2.5rem;padding:3rem 0 3.5rem;margin:0;border-top:1px solid var(--ft-rule)}
.site-footer.no-cta .footer-top{border-top:0;padding-top:0}
.site-footer .nav-logo{display:inline-flex;align-items:center;gap:10px;color:var(--ft-cream)}
.site-footer .nav-logo-icon{width:30px;height:30px;display:block;flex:none}
.site-footer .nav-logo-text{font-family:var(--ft-wordmark);font-weight:500;font-size:22px;letter-spacing:-.025em;font-optical-sizing:auto;color:var(--ft-cream)}
.site-footer .nav-dot{color:var(--ft-accent);font-style:italic}
.site-footer .footer-brand p{font-size:14px;color:var(--ft-60);margin:1rem 0 0;line-height:1.6;max-width:300px}
.site-footer .footer-app-badges{display:flex;gap:8px;margin-top:1.25rem;flex-wrap:wrap}
.site-footer .footer-app-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:rgba(255,255,255,.04);color:var(--ft-cream);font-size:12.5px;line-height:1.15;transition:background .15s}
.site-footer a.footer-app-badge:hover{background:rgba(255,255,255,.1)}
.site-footer .footer-app-badge svg{width:14px;height:14px}
.site-footer .footer-app-badge small{display:block;font-size:9.5px;color:var(--ft-50);font-family:var(--ft-mono);text-transform:uppercase;letter-spacing:.06em}
.site-footer .footer-app-badge strong{font-weight:500}
.site-footer .footer-col h4{font-family:var(--ft-mono);font-size:11px;font-weight:500;color:var(--ft-55);margin:0 0 1rem;text-transform:uppercase;letter-spacing:.08em}
.site-footer .footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
/* hover flip: label slides up, mint duplicate slides in from below */
.site-footer .footer-col a{font-size:15px;color:var(--ft-cream);display:inline-block;overflow:hidden;vertical-align:top;position:relative}
.site-footer .footer-col a span{display:block;transition:transform .35s var(--ft-ease-out)}
.site-footer .footer-col a span::after{content:attr(data-t);position:absolute;left:0;top:100%;color:var(--ft-mint)}
.site-footer .footer-col a:hover span,.site-footer .footer-col a:focus-visible span{transform:translateY(-100%)}
.site-footer a:focus-visible{outline:2px solid var(--ft-mint);outline-offset:3px}
/* oversized wordmark, cropped by .footer-bottom */
.site-footer .footer-mark{display:flex;font-family:var(--ft-wordmark);font-weight:500;font-optical-sizing:auto;font-size:clamp(7rem,25vw,22.5rem);line-height:.78;letter-spacing:-.055em;color:var(--ft-cream);margin:0 0 -.15em -.045em;user-select:none;-webkit-user-select:none;white-space:nowrap}
/* Each letter is <span><b>R</b></span>: the span is a stationary hover target
   (its box never reaches the link columns) and only the <b> glyph lifts. Text
   hit-tests by the font's full ascent, which at this size reaches well above
   the letter; if the moving glyph were the target, a lifted letter would sit
   over the links and follow the cursor, so its hover would stick. */
.site-footer .footer-mark{pointer-events:none}
.site-footer .footer-mark>span{display:block;pointer-events:auto}
.site-footer .footer-mark b{display:block;font-weight:inherit;pointer-events:none;transition:transform .5s var(--ft-ease-spring),color .3s}
.site-footer .footer-mark i{color:var(--ft-accent);font-style:italic}
@media(hover:hover){.site-footer .footer-mark>span:hover b{transform:translateY(-.11em);color:var(--ft-mint)}}
.site-footer .footer-bottom{position:relative;z-index:1;background:var(--ft-deep);border-top:1px solid var(--ft-rule);padding:1.4rem 0;margin:0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:12px;color:var(--ft-55)}
/* paints the bar's background past .footer-inner so the R's serif, which pokes out
   left of the container, is cropped cleanly too (footer{overflow:hidden} clips it) */
.site-footer .footer-bottom::before{content:"";position:absolute;inset:0 -100vw;background:var(--ft-deep);z-index:-1}
.site-footer .footer-legal{display:flex;gap:1.5rem}
.site-footer .footer-legal a{color:var(--ft-55)}
.site-footer .footer-legal a:hover{color:rgba(255,255,255,.85)}
.site-footer .stripe-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ft-55)}
.site-footer .stripe-badge svg{width:13px;height:13px}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .cta-strip .cta-inner{grid-template-columns:minmax(0,1fr);gap:2.5rem}
  .cta-strip .cta-status{max-width:520px}
}
@media(max-width:760px){
  .cta-strip{padding:4rem 1.25rem 3rem}
  .cta-strip .cta-status b{font-size:22px}
  .site-footer{padding:0 1.25rem}
  .site-footer.no-cta{padding-top:3rem}
  .site-footer .footer-top{grid-template-columns:1fr 1fr;gap:2rem 1.25rem;padding:2.5rem 0}
  .site-footer.no-cta .footer-top{padding-top:0}
  .site-footer .footer-brand{grid-column:1/-1}
  .site-footer .footer-brand p{max-width:none}
  .site-footer .footer-legal{flex-wrap:wrap;gap:.5rem 1.1rem}
}
/* clears the sticky mobile CTA bar, only on pages that have one */
@media(max-width:640px){body:has(.mcta) .site-footer{padding-bottom:74px}}
@media(max-width:420px){
  .cta-strip,.site-footer{padding-left:1rem;padding-right:1rem}
  .cta-strip .cta-actions .btn{flex:1}
  .cta-strip .cta-status>div{padding:1rem 1.1rem}
}
@media(prefers-reduced-motion:reduce){
  .cta-strip .cta-live{animation:none}
  .site-footer .footer-mark b,.site-footer .footer-col a span,.cta-strip .cta-status,.cta-strip .btn .icon{transition:none}
  .site-footer .footer-col a:hover span,.site-footer .footer-col a:focus-visible span{transform:none;color:var(--ft-mint)}
  .site-footer .footer-mark>span:hover b{transform:none}
  .cta-strip .btn:hover .icon{transform:none}
}
