/* FSA command palette (left sidebar). Loaded on every public (indexable) page. Same design as preview-palette.html (054d447).
   Open by default on desktop (260px, always open, no collapse); overlay drawer under 768px. No search, no keyboard shortcuts. */
:root{--sb-w:260px;--sb-rail:60px;--fsb-navy:#0B1D33;--fsb-gold:#D4A843;--fsb-gold-l:#E8C566;--fsb-border:#1E3A5F}
.fsa-sb{box-sizing:border-box;position:fixed;top:0;left:0;bottom:0;width:var(--sb-w);z-index:1100;background:var(--fsb-navy);color:#fff;border-right:1px solid var(--fsb-border);display:flex;flex-direction:column;font-family:'DM Sans',sans-serif;transition:width .2s ease,transform .2s ease}
.fsa-sb-in{display:flex;flex-direction:column;height:100%;min-height:0}
.fsa-sb-head{display:flex;align-items:center;gap:10px;height:72px;padding:0 10px 0 8px;flex:none;border-bottom:1px solid rgba(255,255,255,.08)}
.fsa-sb-tog{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:0;border-radius:8px;color:#fff;cursor:pointer}
.fsa-sb-tog:hover{background:rgba(255,255,255,.08);color:var(--fsb-gold-l)}
.fsa-sb-tog svg{width:22px;height:22px}
.fsa-sb-brand{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:18px;line-height:1.1;color:#fff;white-space:nowrap;overflow:hidden}
.fsa-sb-brand span{color:var(--fsb-gold)}
.fsa-sb-body{flex:1;overflow-y:auto;padding:8px}
.fsa-sb h2{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--fsb-gold);margin:10px 12px 6px}
.fsa-sb ul{list-style:none;margin:0;padding:0}
.fsa-sb .sec>button,.fsa-sb .grp>button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:10px 12px;background:none;border:0;border-radius:8px;font:600 15px 'DM Sans',sans-serif;color:#fff;text-align:left;cursor:pointer}
.fsa-sb .grp>button{font-size:14px;color:rgba(255,255,255,.8);padding-left:20px}
.fsa-sb .sec>button:hover,.fsa-sb .grp>button:hover{background:rgba(255,255,255,.07)}
.fsa-sb .chev{flex:none;width:8px;height:8px;border-right:2px solid var(--fsb-gold);border-bottom:2px solid var(--fsb-gold);transform:rotate(45deg);transition:transform .15s}
.fsa-sb button[aria-expanded="true"]>.chev{transform:rotate(-135deg)}
.fsa-sb .sub[hidden]{display:none}.fsa-sb .sub{padding-bottom:4px}
.fsa-sb .sub a{display:flex;align-items:center;min-height:44px;padding:8px 12px 8px 20px;border-radius:8px;font-size:14px;line-height:1.35;color:rgba(255,255,255,.85)}
.fsa-sb .grp .sub a{padding-left:32px}
.fsa-sb .sub a:hover{background:rgba(212,168,67,.14);color:var(--fsb-gold-l)}
.fsa-sb .ext{margin-left:6px;color:var(--fsb-gold);font-size:12px}
.fsa-sb .sec+.sec{border-top:1px solid rgba(255,255,255,.07)}
.fsa-sb button:focus-visible,.fsa-sb a:focus-visible{outline:2px solid var(--fsb-gold);outline-offset:2px}
.fsa-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fsa-sb-bg{position:fixed;inset:0;background:rgba(6,17,31,.5);z-index:1090}.fsa-sb-bg[hidden]{display:none}
.nav-toggle{display:none!important}
.fsa-sb-book{display:none}
@media(min-width:768px){
  body{padding-left:var(--sb-w);transition:padding-left .2s ease}
  body>nav,.nav{left:var(--sb-w)!important;right:0;width:auto!important;transition:all .4s ease,left .2s ease}
}
@media(max-width:767.98px){
  .fsa-sb{transform:translateX(-100%);box-shadow:none;width:min(300px,86vw)}
  html.sb-mopen .fsa-sb{transform:none;box-shadow:0 24px 64px rgba(6,17,31,.45)}
  .fsa-sb-mtog{position:fixed;top:14px;left:12px;z-index:1080;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:8px;background:var(--fsb-navy);color:#fff;cursor:pointer;box-shadow:0 2px 8px rgba(6,17,31,.25)}
  .fsa-sb-mtog svg{width:22px;height:22px}
  .fsa-sb-mtog:focus-visible{outline:2px solid var(--fsb-gold);outline-offset:2px}
  body>nav,.nav{padding-left:68px!important;padding-right:128px!important}
  html.fsa-sb-nonav body{padding-top:64px}
  .fsa-sb-book{position:fixed;top:14px;right:12px;z-index:1080;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:8px;background:var(--fsb-gold);color:var(--fsb-navy)!important;font:600 14px 'DM Sans',sans-serif;text-decoration:none;box-shadow:0 2px 8px rgba(6,17,31,.25)}
  .fsa-sb-book:focus-visible{outline:2px solid var(--fsb-navy);outline-offset:2px}
}
@media(min-width:768px){.fsa-sb-mtog{display:none}.fsa-sb-tog{display:none}.fsa-sb-head{padding-left:16px}}
.fsa-sb-mtog span{font:600 14px 'DM Sans',sans-serif;margin-left:6px}
@media(max-width:767.98px){.fsa-sb-mtog{width:auto!important;padding:0 12px;border:1px solid var(--fsb-gold)!important}body>nav,.nav{padding-left:112px!important}}
.fsa-sb .top>a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border-radius:8px;font:600 15px 'DM Sans',sans-serif;color:#fff;text-decoration:none}
.fsa-sb .top>a:hover{background:rgba(255,255,255,.07)}
.fsa-sb .cta{border-top:0!important;margin-top:10px}.fsa-sb .cta>a{background:var(--fsb-gold);color:var(--fsb-navy)!important;justify-content:center}
.fsa-sb .cta>a:hover{background:var(--fsb-gold-l)}
.fsa-sb a[aria-current="page"]{color:var(--fsb-gold-l);box-shadow:inset 3px 0 0 var(--fsb-gold)}
@media (prefers-reduced-motion:reduce){.fsa-sb,body,body>nav,.nav,.fsa-sb .chev{transition:none!important}}
@media print{.fsa-sb,.fsa-sb-mtog,.fsa-sb-bg,.fsa-sb-book{display:none!important}body{padding-left:0!important;padding-top:0!important}body>nav,.nav{left:0!important}}

/* QA v1 fix 5: one brand + one above-fold Book CTA on desktop where the top nav exists */
@media (min-width:768px){html:not(.fsa-sb-nonav) .nav .nav-logo{display:none}html:not(.fsa-sb-nonav) .nav .nav-cta{display:none}html[data-fsa-home] .fsa-sb .cta{display:none}}
/* gap close: homepage phones keep only the hero Book button above the fold */
@media (max-width:767.98px){html[data-fsa-home] .fsa-sb-book{display:none!important}}

/* Senior-friendly featured link: FSA Intelligence (John via GC 10/20). Large target, >=16px text, high contrast, visible focus ring. */
.fsa-sb-feat{padding:8px 4px 4px}
.fsa-sb .fsa-sb-tracker{display:flex;flex-direction:column;gap:6px;min-height:64px;padding:14px 16px;border:2px solid #fff;border-radius:10px;background:#fff;color:var(--fsb-navy)!important;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.fsa-sb-tracker .tt{font:700 18px/1.25 'DM Sans',sans-serif;text-decoration:underline;text-underline-offset:3px}
.fsa-sb-tracker .td{font:500 16px/1.4 'DM Sans',sans-serif;color:#1A2B40}
.fsa-sb-tracker .tn{font:600 16px/1.3 'DM Sans',sans-serif;color:var(--fsb-navy)}
.fsa-sb .fsa-sb-tracker:hover{background:#FFF6DD;border-color:var(--fsb-gold)}
.fsa-sb .fsa-sb-tracker:focus-visible{outline:4px solid var(--fsb-gold);outline-offset:3px}

/* t721u: same top-level links on every page. Pages without their own top nav get .fsa-top from fsa-sidebar.js */
.fsa-top{background:#fff;border-bottom:1px solid #DDE3EA;font-family:'DM Sans',sans-serif}
.fsa-top{display:flex;flex-wrap:wrap;align-items:center}
.fsa-top a.fsa-top-home{font:700 18px/44px 'DM Sans',sans-serif;margin-left:16px}
.fsa-top a.fsa-top-home,.fsa-top a.fsa-top-home:link{display:inline-block}
.fsa-top-home span{color:#8A6416}
.fsa-top ul{list-style:none;margin:0;padding:8px 16px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.fsa-top a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;font:600 16px 'DM Sans',sans-serif;color:#0B1D33;text-decoration:none}
.fsa-top a:hover{background:#F1F4F8;text-decoration:underline}
.fsa-top a:focus-visible{outline:3px solid #0B1D33;outline-offset:2px}
@media(min-width:768px){.fsa-top-cta,body>nav .nav-cta{display:none!important}}
@media(max-width:767.98px){html.fsa-sb-nonav body{padding-top:72px}.fsa-top-cta{display:none!important}}
/* QA 1 v5/v6/hub-v1 fix: on phones the script-added top nav already sits below the fixed toggles (body padding-top:72px), so it doesn't need the toggle side-padding. The home link gets its own full-width row (max 2 lines, >=44px, no overflow). */
@media(max-width:767.98px){html.fsa-sb-nonav body>nav.fsa-top{padding-left:0!important;padding-right:0!important}.fsa-top a.fsa-top-home{flex:1 0 auto;max-width:calc(100% - 32px);min-height:44px;line-height:44px}}
