/* ============================================================
   PRAXIS · The breathing law. The 8px spacing scale, defined once.
   Every fix below consumes tokens; no one-off pixel values.
   Loaded last (end of body) so token rhythm wins the cascade.
   ------------------------------------------------------------
   --sp-1  8px   inside a chip, icon to its label
   --sp-2 16px   kin: lines of one thought
   --sp-3 24px   siblings: related blocks, minimum CTA moat
   --sp-4 32px   cousins: distinct groups
   --sp-5 40px   neighbors: group to group
   --sp-6 48px   strangers: compact section break
   --sp-8 64px   section padding rhythm
   --sp-12 96px  grand section padding
   ============================================================ */
:root{
  --sp-1:8px; --sp-2:16px; --sp-3:24px; --sp-4:32px;
  --sp-5:40px; --sp-6:48px; --sp-8:64px; --sp-10:80px; --sp-12:96px;
}

/* --- Footer legal stacks: tagline, legal links, copyright breathe as siblings --- */
.fbottom{padding-top:var(--sp-4); gap:var(--sp-2);}
.flegal{gap:var(--sp-2);}
.pf-bottom{padding-top:var(--sp-4);}
.pf-bottom .pf-tag{margin-bottom:var(--sp-2);}
.pf-bottom .pf-legal{margin-bottom:var(--sp-2);}
.pf-contact{gap:var(--sp-2);}

/* --- Grand Design footer: the bottom stack gets its rhythm back --- */
footer .fnav{margin:var(--sp-4) 0 var(--sp-3); gap:var(--sp-2) var(--sp-3);}
footer .flegal{margin-top:0; margin-bottom:var(--sp-2);}
footer .fcopy{margin-top:var(--sp-2);}

/* --- CTA moats: a button deserves clear water on every side --- */
.ftop .fbtn{margin-top:var(--sp-3);}
.pxf-btn{margin-top:var(--sp-4);}

/* --- Grand Design closing CTA: stacked, moated, unmistakable --- */
.gd-close{text-align:center; margin:var(--sp-3) 0 var(--sp-5);}
.gd-close .gd-line{display:block; font-family:'Fraunces',Georgia,serif; font-size:22px; color:#EDEDED;}
.gd-close .gd-btn{display:inline-block; margin-top:var(--sp-3); padding:var(--sp-2) var(--sp-4); background:#C7A24C; color:#0F1722; border-radius:3px; text-decoration:none; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; transition:transform .3s ease, box-shadow .3s ease;}
.gd-close .gd-btn:hover{transform:translateY(-2px); box-shadow:0 14px 34px rgba(199,162,76,.25);}

/* --- The privacy-family footer tail: legal list, tagline, copyright --- */
footer .pxf-copy{margin-top:var(--sp-2);}

/* ============================================================
   PRAXIS · Branded cursor, site-wide (canonical copy from the homepage).
   The gold trailing dot (#cursordot) is injected + animated by
   /Assets/praxis-core.js. Touch devices fall back to the system cursor
   by design. Root-absolute image path so it resolves on every route.
   ============================================================ */
body{cursor:url('/Assets/Images/cursor-dot.png') 16 16, auto;}
a,button,summary,label,.navlink,.nbtn,.logo,.sound,.langwrap,.node-pill,.gate-btns button,[onclick]{cursor:url('/Assets/Images/cursor-dot.png') 16 16, pointer;}
#cursordot{position:fixed;top:0;left:0;width:6px;height:6px;border-radius:50%;background:#C7A24C;pointer-events:none;z-index:300;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s;box-shadow:0 0 7px rgba(199,162,76,.5);}
@media(pointer:coarse){
  body,a,button,summary,label,.navlink,.nbtn,.logo,.sound,.langwrap,.node-pill,.gate-btns button,[onclick]{cursor:auto;}
  #cursordot{display:none;}
}
