/* ============================================================
   LPJH — Site Footer (rebuild)
   Light surface: cream page, linen CTA band, hairline structure.
   Class prefix: .lpjh-ftcta (band) / .lpjh-ft (footer)
   Production copy — enqueue after brand-tokens.css. Mark image expected at
   assets/img/lpjh-mark-black.png relative to this file's parent directory.
   The .lpjh-ft--m / .lpjh-ftcta--m aliases exist only so the design canvas can
   show the mobile layout beside the desktop one; the media query is what ships.
   ============================================================ */

/* ---------- CTA BAND ---------- */
.lpjh-ftcta{background:var(--tr-linen);border-top:1px solid var(--tr-border)}
.lpjh-ftcta__inner{max-width:1360px;margin:0 auto;padding:4.5rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:3.5rem}
.lpjh-ftcta__eyebrow{margin:0 0 1rem;font-family:var(--tr-font-body);font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--tr-accent)}
.lpjh-ftcta__h{margin:0;font-family:var(--tr-font-display);font-size:2.6rem;font-weight:500;line-height:1.06;letter-spacing:-.01em;color:var(--tr-heading);max-width:16em;text-wrap:pretty}
.lpjh-ftcta__p{margin:1.1rem 0 0;font-family:var(--tr-font-body);font-size:.95rem;line-height:1.8;color:var(--tr-text-muted);max-width:36em}
.lpjh-ftcta__act{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}
.lpjh-ftcta__btn{display:inline-flex;align-items:center;height:3.15rem;padding:0 2rem;background:var(--tr-accent);border:1px solid var(--tr-accent);border-radius:0;color:var(--tr-on-accent);font-family:var(--tr-font-body);font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background-color .26s ease,border-color .26s ease}
.lpjh-ftcta__btn:hover,.lpjh-ftcta__btn.is-hover{background:var(--tr-accent-hover);border-color:var(--tr-accent-hover)}
.lpjh-ftcta__or{font-family:var(--tr-font-body);font-size:.78rem;letter-spacing:.02em;color:var(--tr-text-muted)}
.lpjh-ftcta__or a{color:var(--tr-heading);text-decoration:none;border-bottom:1px solid var(--tr-border);transition:color .26s ease,border-color .26s ease}
.lpjh-ftcta__or a:hover{color:var(--tr-accent);border-color:var(--tr-accent)}
.lpjh-ftcta[data-tone="quiet"]{background:var(--tr-cream)}
.lpjh-ftcta[data-tone="quiet"] .lpjh-ftcta__h{font-size:2rem}

/* ---------- FOOTER ---------- */
.lpjh-ft{position:relative;overflow:hidden;background:var(--tr-cream);border-top:1px solid var(--tr-border);color:var(--tr-text)}
.lpjh-ft[data-surface="linen"]{background:var(--tr-linen)}
.lpjh-ft__mark{position:absolute;right:-7rem;bottom:-6rem;width:460px;height:460px;background:url(../img/lpjh-mark-black.png) center/contain no-repeat;opacity:.04;pointer-events:none}
.lpjh-ft__inner{position:relative;max-width:1360px;margin:0 auto;padding:0 2rem}
.lpjh-ft__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;padding:5rem 0 3.25rem}
.lpjh-ft__col{padding:0 2.5rem;border-left:1px solid var(--tr-border)}
.lpjh-ft__col:first-child{padding-left:0;border-left:0}
.lpjh-ft__col:last-child{padding-right:0}
.lpjh-ft[data-hairlines="off"] .lpjh-ft__col{border-left:0}

/* Brand column */
.lpjh-ft__logo{display:inline-block;margin:0 0 1.5rem}
.lpjh-ft__logo img{height:54px;width:auto;display:block}
.lpjh-ft__tag{margin:0 0 1.75rem;font-family:var(--tr-font-display);font-size:1.2rem;font-weight:500;line-height:1.35;letter-spacing:-.01em;color:var(--tr-heading);max-width:20em}
.lpjh-ft__meta{margin:0 0 1.6rem;font-family:var(--tr-font-body);font-size:.8rem;line-height:1.95;color:var(--tr-text-muted);font-style:normal}
.lpjh-ft__meta a{color:var(--tr-text-muted);text-decoration:none;transition:color .26s ease}
.lpjh-ft__meta a:hover{color:var(--tr-accent)}
.lpjh-ft__meta strong{display:block;margin-top:.9rem;font-family:var(--tr-font-body);font-size:.64rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--tr-stone-400)}

/* Social — hairline squares, icon + accessible label */
.lpjh-ft__social{display:flex;gap:.6rem}
.lpjh-ft__social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--tr-border);border-radius:0;color:var(--tr-stone-400);font-size:.95rem;text-decoration:none;transition:color .26s ease,border-color .26s ease,background-color .26s ease}
.lpjh-ft__social a:hover,.lpjh-ft__social a.is-hover{color:var(--tr-on-accent);background:var(--tr-accent);border-color:var(--tr-accent)}
.lpjh-ft__social--text{display:flex;flex-direction:column;gap:.7rem}
.lpjh-ft__social--text a{width:auto;height:auto;border:0;justify-content:flex-start;font-family:var(--tr-font-body);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tr-text)}
.lpjh-ft__social--text a:hover{background:none;color:var(--tr-accent)}

/* Link columns */
.lpjh-ft__eyebrow{margin:0 0 1.5rem;font-family:var(--tr-font-body);font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--tr-accent)}
.lpjh-ft__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}
.lpjh-ft__link{display:inline-block;font-family:var(--tr-font-body);font-size:.82rem;font-weight:500;letter-spacing:.02em;color:var(--tr-text);text-decoration:none;background-image:linear-gradient(var(--tr-accent),var(--tr-accent));background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:color .26s ease,background-size .4s cubic-bezier(.19,1,.22,1)}
.lpjh-ft__link:hover,.lpjh-ft__link.is-hover{color:var(--tr-accent);background-size:100% 1px}

/* Legal row */
.lpjh-ft__legal{border-top:1px solid var(--tr-border)}
.lpjh-ft__legal-inner{max-width:1360px;margin:0 auto;padding:1.5rem 2rem;display:flex;align-items:baseline;justify-content:space-between;gap:2rem;font-family:var(--tr-font-body);font-size:.72rem;letter-spacing:.04em;color:var(--tr-stone-400)}
.lpjh-ft__legal-links{display:flex;align-items:baseline;gap:1.5rem}
.lpjh-ft__legal a{color:var(--tr-stone-500);text-decoration:none;transition:color .26s ease}
.lpjh-ft__legal a:hover{color:var(--tr-accent)}

/* ---------- MOBILE ---------- */
@media (max-width:899px){
  .lpjh-ftcta__inner{flex-direction:column;align-items:flex-start;gap:2rem;padding:3.5rem 1.25rem}
  .lpjh-ftcta__act{align-items:flex-start;text-align:left}
  .lpjh-ftcta__h{font-size:2rem}
  .lpjh-ft__inner{padding:0 1.25rem}
  .lpjh-ft__grid{grid-template-columns:1fr;padding:3.5rem 0 2rem}
  .lpjh-ft__col{padding:2rem 0 0;border-left:0;border-top:1px solid var(--tr-border)}
  .lpjh-ft__col:first-child{padding-top:0}
  .lpjh-ft__legal-inner{flex-direction:column;align-items:flex-start;gap:.9rem;padding:1.35rem 1.25rem 2rem}
  .lpjh-ft__mark{right:-9rem;bottom:-8rem;width:380px;height:380px}
}
.lpjh-ft--m .lpjh-ft__inner{padding:0 1.25rem}
.lpjh-ft--m .lpjh-ft__grid{grid-template-columns:1fr;padding:3.5rem 0 2rem}
.lpjh-ft--m .lpjh-ft__col{padding:2rem 0 0;border-left:0;border-top:1px solid var(--tr-border)}
.lpjh-ft--m .lpjh-ft__col:first-child{padding-top:0;border-top:0}
.lpjh-ft--m .lpjh-ft__legal-inner{flex-direction:column;align-items:flex-start;gap:.9rem;padding:1.35rem 1.25rem 2rem}
.lpjh-ftcta--m .lpjh-ftcta__inner{flex-direction:column;align-items:flex-start;gap:2rem;padding:3.5rem 1.25rem}
.lpjh-ftcta--m .lpjh-ftcta__act{align-items:flex-start;text-align:left}
.lpjh-ftcta--m .lpjh-ftcta__h{font-size:1.9rem}

/* ---------- FOCUS ---------- */
.lpjh-ft a:focus-visible,.lpjh-ftcta a:focus-visible{outline:2px solid var(--tr-focus);outline-offset:3px}
.lpjh-ft__link.is-focus{outline:2px solid var(--tr-focus);outline-offset:3px}
