/* Zeni Virtual — approved 2026 redesign foundation (mockups 01–17).
   Phase 2: global tokens, shared shell, navigation, footer, responsive primitives.
   Individual page layout replacements belong to phases 3–5. */
:root{
  --zeni-lilac:#6B4FA0;--zeni-lilac-soft:#F1EBFA;--zeni-lavender:#C8B8E8;
  --zeni-green:#2D6E3A;--zeni-sage:#7DBE8A;--zeni-green-soft:#E2F0E7;
  --zeni-ink:#26282B;--zeni-muted:#5C6066;--zeni-ash:#F3F3F1;
  --zeni-border:#E4E4E0;--zeni-white:#fff;
  --zeni-radius:24px;--zeni-radius-sm:20px;--zeni-pill:999px;
  --zeni-font-heading:'Fraunces',Georgia,'Times New Roman',serif;
  --zeni-font-body:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --zeni-focus:0 0 0 3px rgba(107,79,160,.22);
  /* Map legacy public styles to the approved palette. */
  --zv-lilac:#C8B8E8;--zv-lilac-deep:#6B4FA0;
  --zv-green:#7DBE8A;--zv-green-deep:#2D6E3A;
  --zv-ash:#F3F3F1;--zv-ash-dark:#5C6066;--zv-ink:#26282B;
  --zv-border:#E4E4E0;--zv-shadow:0 10px 28px rgba(38,40,43,.045);
  --zv-shadow-soft:0 5px 16px rgba(38,40,43,.035);--zv-radius:28px;--zv-radius-sm:22px;
  /* Map the client portal without changing its data-bound behaviour. */
  --client-purple:#6B4FA0;--client-purple-dark:#513A83;
  --client-purple-soft:#F1EBFA;--client-green:#2D6E3A;
  --client-green-soft:#E2F0E7;--client-ink:#26282B;
  --client-muted:#5C6066;--client-line:#E4E4E0;
  --client-canvas:#fff;--client-radius:22px;
  --client-shadow:0 6px 24px rgba(38,40,43,.045);
  --client-shadow-soft:0 3px 12px rgba(38,40,43,.03);
}
html{scroll-padding-top:86px}
body.zeni-design-v2,body.zeni-design-v2.bg-soft{font-family:var(--zeni-font-body);color:var(--zeni-ink);background:#fff;line-height:1.6}
.zeni-design-v2 h1,.zeni-design-v2 h2,.zeni-design-v2 h3,.zeni-design-v2 .display-1,.zeni-design-v2 .display-2,.zeni-design-v2 .display-3,.zeni-design-v2 .display-4,.zeni-design-v2 .display-5{font-family:var(--zeni-font-heading);font-weight:400;letter-spacing:-.025em}
.zeni-design-v2 h4,.zeni-design-v2 h5,.zeni-design-v2 h6{letter-spacing:-.01em}
.zeni-design-v2 p{overflow-wrap:break-word}
.zeni-design-v2 :where(img,video,iframe){max-width:100%}
.zeni-design-v2 img{height:auto}
.zeni-design-v2 :is(button,input,select,textarea,a):focus-visible{outline:2px solid var(--zeni-lilac);outline-offset:3px}
.zeni-design-v2 .btn,.zeni-design-v2 .btn-brand{border-radius:var(--zeni-pill);font-weight:600;box-shadow:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.zeni-design-v2 .btn-brand,.zeni-design-v2 .btn-primary{color:#fff;background:var(--zeni-lilac);border:1px solid var(--zeni-lilac)}
.zeni-design-v2 .btn-brand:hover,.zeni-design-v2 .btn-primary:hover{background:#513A83;border-color:#513A83;color:#fff;transform:translateY(-1px)}
.zeni-design-v2 .btn-ghost-dark,.zeni-design-v2 .btn-outline-primary{background:#fff;color:var(--zeni-lilac);border:1px solid var(--zeni-border);box-shadow:none}
.zeni-design-v2 .btn-ghost-dark:hover,.zeni-design-v2 .btn-outline-primary:hover{background:var(--zeni-lilac-soft);border-color:var(--zeni-lavender);color:#513A83}
.zeni-design-v2 :is(.card,.feature-card,.blog-card,.client-card){border-color:var(--zeni-border);box-shadow:0 5px 20px rgba(38,40,43,.035)}
.zeni-design-v2 :is(.form-control,.form-select){border-color:var(--zeni-border);border-radius:14px;min-height:44px}
.zeni-design-v2 :is(.form-control,.form-select):focus{border-color:var(--zeni-lilac);box-shadow:var(--zeni-focus)}
.zeni-design-v2 .eyebrow,.zeni-design-v2 .badge-soft{background:var(--zeni-lilac-soft);color:var(--zeni-lilac)}
.zeni-design-v2 .bg-primary{background-color:var(--zeni-lilac)!important}
.zeni-design-v2 .text-primary{color:var(--zeni-lilac)!important}
.zeni-design-v2 .link-primary{color:var(--zeni-lilac)!important}
.zeni-design-v2 .client-portal-body{background:#fff}
/* Website header: screenshot 01 — flat white bar, compact approved mark, discreet nav. */
.zeni-public-body .site-header{background:#fff;backdrop-filter:none;border-bottom:1px solid var(--zeni-border);box-shadow:none;z-index:1040}
.zeni-public-body .zeni-nav{min-height:76px;padding:.62rem 0}
.zeni-public-body .zeni-nav-inner{display:flex;flex-wrap:nowrap;gap:1.1rem;max-width:1280px}
.zeni-public-body .zeni-public-brand{flex:0 0 auto;min-width:0;gap:.7rem!important;padding:0;margin:0;text-decoration:none;color:var(--zeni-ink)}
.zeni-public-body .site-logo,.zeni-design-v2 .client-app-logo{width:43px;height:43px;max-height:43px;object-fit:contain;border:0;padding:0;border-radius:10px;background:transparent;box-shadow:none}
.zeni-public-body .brand-wordmark,.zeni-design-v2 .zeni-footer-brand>span{font-family:var(--zeni-font-heading);font-size:1.38rem;font-weight:500;letter-spacing:-.025em;white-space:nowrap}
.zeni-public-body .zeni-nav-collapse{min-width:0;gap:1.3rem}
.zeni-public-body .zeni-nav-links{gap:clamp(.1rem,.7vw,.6rem);padding:0;box-shadow:none;min-width:0}
.zeni-public-body .nav-pill{display:inline-flex;align-items:center;justify-content:center;padding:.42rem .52rem!important;border-radius:var(--zeni-pill);background:transparent!important;color:var(--zeni-muted);white-space:nowrap;font-size:.93rem;font-weight:500;letter-spacing:0}
.zeni-public-body .nav-pill:hover,.zeni-public-body .nav-pill.active{color:var(--zeni-lilac);background:var(--zeni-lilac-soft)!important}
.zeni-public-body .zeni-nav-home-item,.zeni-public-body .zeni-nav-account-item{display:none}
.zeni-public-body .zeni-nav-actions{display:flex;align-items:center;justify-content:flex-end;gap:clamp(.45rem,1vw,.85rem);flex:0 0 auto}
.zeni-public-body .zeni-nav-login{font-size:.92rem;font-weight:600;color:var(--zeni-ink);text-decoration:none;white-space:nowrap;padding:.45rem .2rem}
.zeni-public-body .zeni-nav-login:hover{color:var(--zeni-lilac)}
.zeni-public-body .header-cta-btn{max-width:none;min-height:43px;min-width:0;padding:.68rem 1.23rem;border:1px solid var(--zeni-lilac);line-height:1.15;white-space:nowrap;font-size:.87rem;text-align:center}
.zeni-public-body .header-currency-item{max-width:128px;min-width:0}
.zeni-public-body .header-currency-item :is(select,.form-select){max-width:100%;min-width:0;min-height:40px;padding:.35rem 1.4rem .35rem .48rem;font-size:.82rem;border-radius:var(--zeni-pill);color:var(--zeni-ink)}
.zeni-public-body .nav-toggle-btn{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:13px;border:1px solid var(--zeni-border);font-size:1.25rem;box-shadow:none;background:#fff;color:var(--zeni-ink)}
.zeni-public-body .navbar-toggler:focus{box-shadow:var(--zeni-focus)}
.zeni-public-body .zeni-message-bell .zeni-message-bell-button{border-radius:var(--zeni-pill);box-shadow:none}
/* Portal shared top bar: screenshot 11 — typography/colour, not the later page layout. */
.zeni-design-v2.client-portal-body{background:#fff}
.zeni-design-v2 .client-app-header{background:#fff;backdrop-filter:none;box-shadow:none;border-color:var(--zeni-border)}
.zeni-design-v2 .client-app-header-inner{height:73px}
.zeni-design-v2 .client-app-brand strong{font-family:var(--zeni-font-heading);font-weight:500;font-size:1.25rem;letter-spacing:-.02em}
.zeni-design-v2 .client-app-brand small{font-size:.68rem;letter-spacing:.11em;font-weight:600}
.zeni-design-v2 :is(.client-header-action,.client-header-profile,.client-header-bell .zeni-message-bell-button){border-radius:var(--zeni-pill);box-shadow:none}
.zeni-design-v2 .client-header-avatar{border-radius:50%;color:var(--zeni-lilac);background:var(--zeni-lilac-soft)}
.zeni-design-v2 .client-sidebar{background:#fff;border:1px solid var(--zeni-border);box-shadow:none}
.zeni-design-v2 .client-sidebar-link.active{background:var(--zeni-lilac-soft);color:var(--zeni-lilac)}
.zeni-design-v2 .client-card{border:1px solid var(--zeni-border);box-shadow:none}
.zeni-design-v2 .client-app-footer{color:var(--zeni-muted)}
.zeni-design-v2 .client-app-footer-inner{border-color:var(--zeni-border)}
/* Approved simple white site footer, 4 columns with functioning newsletter. */
.zeni-public-body .zeni-footer{margin-top:5rem;background:#fff;border-top:1px solid var(--zeni-border);color:var(--zeni-muted);padding:0;box-shadow:none}
.zeni-footer .container{max-width:1200px}
.zeni-footer .footer-cta-panel{margin:0 0 4.25rem;padding:2.3rem 2.7rem;border-radius:28px;background:var(--zeni-lilac-soft);border:1px solid #e9e0f7;box-shadow:none;color:var(--zeni-ink);transform:translateY(-2rem)}
.zeni-footer .footer-cta-panel h2{font-family:var(--zeni-font-heading);font-weight:400;font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.13;color:var(--zeni-ink)}
.zeni-footer .footer-cta-copy,.zeni-footer .footer-cta-copy *{color:var(--zeni-muted)}
.zeni-footer .footer-cta-button{min-height:48px;padding:.7rem 1.4rem}
.zeni-footer-grid{padding-bottom:3.5rem}
.zeni-footer-brand{display:inline-flex;align-items:center;gap:.72rem;color:var(--zeni-ink);text-decoration:none}
.zeni-footer-brand:hover{color:var(--zeni-lilac)}
.zeni-footer-brand .footer-logo{width:42px;height:42px}
.zeni-footer-motto{font-size:.95rem;color:var(--zeni-green);font-weight:600;margin:1rem 0 .3rem}
.zeni-footer .footer-copy,.zeni-footer .zeni-footer-intro{font-size:.87rem;line-height:1.65;color:var(--zeni-muted)}
.zeni-footer .footer-title{font-family:var(--zeni-font-body);font-size:.89rem;font-weight:700;line-height:1.3;color:var(--zeni-ink);margin:0 0 .9rem}
.zeni-footer .footer-links{display:grid;gap:.45rem;margin:0}
.zeni-footer .footer-links a{color:var(--zeni-muted);font-size:.86rem;line-height:1.35;text-decoration:none;display:inline-block;overflow-wrap:anywhere;padding:.1rem 0}
.zeni-footer .footer-links a:hover{color:var(--zeni-lilac);text-decoration:underline;text-underline-offset:3px}
.zeni-footer .btn-footer-pill{width:36px;height:36px;border-radius:50%;border:1px solid var(--zeni-border);background:#fff;color:var(--zeni-lilac);box-shadow:none}
.zeni-footer .btn-footer-pill:hover{background:var(--zeni-lilac-soft);border-color:var(--zeni-lavender)}
.zeni-footer .footer-mini-card{border:0;background:transparent;padding:0;box-shadow:none;border-radius:0}
.zeni-footer-newsletter{display:grid;gap:.6rem}
.zeni-footer-newsletter .footer-form-control{min-height:43px;width:100%;padding:.65rem .9rem;border-radius:12px;border:1px solid var(--zeni-border);color:var(--zeni-ink);background:#fff;font-size:.85rem}
.zeni-footer .btn-footer-submit{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:43px;padding:.7rem 1rem;border-radius:var(--zeni-pill);background:var(--zeni-green);border:1px solid var(--zeni-green);color:white}
.zeni-footer .btn-footer-submit:hover{background:#20542c;border-color:#20542c;color:#fff}
.zeni-footer .footer-bottom{padding:1.3rem 0 1.9rem;margin:0!important;border-top:1px solid var(--zeni-border);font-size:.8rem;color:var(--zeni-muted)}
/* Shared responsive pattern: readable content, no sideways scroll, real buttons. */
@media (max-width:1399.98px){
  .zeni-public-body .zeni-nav-inner{max-width:calc(100% - 2rem)}
  .zeni-public-body .zeni-nav-collapse{gap:.5rem}
  .zeni-public-body .nav-pill{font-size:.85rem;padding:.4rem .35rem!important}
  .zeni-public-body .header-currency-item{max-width:99px}
}
@media (max-width:1199.98px){
  html{scroll-padding-top:74px}
  .zeni-public-body .zeni-nav-inner{max-width:100%;padding-inline:clamp(1rem,3vw,2rem);gap:.75rem}
  .zeni-public-body .zeni-nav-collapse{display:block;position:absolute;top:calc(100% + 3px);left:clamp(.75rem,3vw,2rem);right:clamp(.75rem,3vw,2rem);z-index:1041;max-width:none;width:auto;max-height:calc(100dvh - 92px);overflow:auto;overscroll-behavior:contain;box-shadow:0 15px 35px rgba(38,40,43,.13);border:1px solid var(--zeni-border);border-radius:20px;background:#fff;padding:.65rem}
  .zeni-public-body .zeni-nav-collapse:not(.show):not(.collapsing){display:none}
  .zeni-public-body .zeni-nav-links{display:flex;flex-direction:column;align-items:stretch!important;gap:.1rem;margin:0!important;padding:0}
  .zeni-public-body .zeni-nav-home-item{display:list-item}
  .zeni-public-body .zeni-nav-account-item{display:none}
  .zeni-public-body .nav-pill{display:block;width:100%;text-align:left;white-space:normal;padding:.75rem .85rem!important;border-radius:12px;font-size:.96rem}
  .zeni-public-body .zeni-nav-actions{display:flex;flex-wrap:wrap;justify-content:stretch;align-items:center;gap:.65rem;padding:.75rem .2rem .2rem;border-top:1px solid var(--zeni-border);margin-top:.6rem}
  .zeni-public-body .zeni-nav-login{flex:1 1 auto;padding:.65rem;text-align:center;border:1px solid var(--zeni-border);border-radius:var(--zeni-pill)}
  .zeni-public-body .header-cta-btn{flex:1 1 160px;white-space:normal}
  .zeni-public-body .header-currency-item{max-width:none;flex:1 1 100%;order:3}
  .zeni-public-body .header-currency-item :is(select,.form-select){width:100%;max-width:100%}
  .zeni-public-body .zeni-message-bell{flex:0 0 auto}
}
@media (max-width:767.98px){
  .zeni-public-body .zeni-nav{min-height:65px;padding:.5rem 0}
  .zeni-public-body .site-logo{width:38px;height:38px}
  .zeni-public-body .brand-wordmark{font-size:1.2rem}
  .zeni-design-v2 .client-app-brand strong{font-size:1.05rem}
  .zeni-design-v2 .client-app-header-inner{height:65px}
  .zeni-footer .footer-cta-panel{padding:1.65rem;transform:translateY(-1rem);margin-bottom:2.5rem}
  .zeni-footer .footer-cta-button{width:100%;justify-content:center}
  .zeni-footer-grid{padding-bottom:2rem}
  .zeni-public-body .zeni-footer{margin-top:3rem}
  .zeni-design-v2 :is(.card,.blog-card,.client-card){border-radius:20px}
  .zeni-design-v2 .table-responsive{-webkit-overflow-scrolling:touch}
}
@media (max-width:359px){.zeni-public-body .brand-wordmark{font-size:1.05rem}.zeni-public-body .zeni-nav-inner{padding-inline:.65rem}}
@media (prefers-reduced-motion:reduce){.zeni-design-v2 *{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Match Bootstrap's xl collapse breakpoint exactly: no desktop hamburger. */
@media(min-width:1200px){.zeni-public-body .navbar-expand-xl .nav-toggle-btn{display:none}}

.zeni-public-body .zeni-nav-account-dropdown .zeni-nav-login{background:transparent;border:0;cursor:pointer}
.zeni-public-body .zeni-nav-account-dropdown .dropdown-menu{border:1px solid var(--zeni-border);border-radius:14px;box-shadow:0 10px 25px rgba(38,40,43,.12)}
.zeni-public-body .zeni-nav-account-dropdown .dropdown-item{padding:.65rem 1rem;border-radius:10px;color:var(--zeni-ink)}
.zeni-public-body .zeni-nav-account-dropdown .dropdown-item:hover{background:var(--zeni-lilac-soft);color:var(--zeni-lilac)}

/* Phase 6: accessible skip navigation on public, login and client portal layouts. */
.zeni-skip-link{position:fixed;z-index:30000;top:max(.5rem, env(safe-area-inset-top));left:max(.5rem, env(safe-area-inset-left));max-width:calc(100vw - 1rem);padding:.65rem 1rem;background:#26282B;color:#fff!important;border:2px solid #fff;border-radius:12px;box-shadow:0 0 0 3px #6B4FA0;font-weight:700;text-decoration:none;transform:translateY(-180%);opacity:0;pointer-events:none}
.zeni-skip-link:focus,.zeni-skip-link:focus-visible{transform:none;opacity:1;pointer-events:auto;outline:3px solid #C8B8E8;outline-offset:3px}
#main-content:focus{outline:none}
