/* Letter Desk shared shell: tokens, sticky navbar, text-size toggle, navy footer, tip jar.
   Source of truth: deploy/ld-shell/ (copied into each site's public/ by deploy/ld-shell/apply.py). */
/* Atkinson Hyperlegible (Braille Institute, SIL OFL 1.1, see fonts/OFL.txt), self-hosted latin subset from @fontsource/atkinson-hyperlegible 5.3.0. Same-origin only. */
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/AtkinsonHyperlegible-Regular.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/AtkinsonHyperlegible-Bold.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/AtkinsonHyperlegible-Italic.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:italic;font-weight:700;font-display:swap;src:url(fonts/AtkinsonHyperlegible-BoldItalic.woff2) format("woff2")}
:root{
  --ink:#111827; --ink2:#374151; --bg:#f7f5f0; --line:#d6d3cc;
  --gov:#1a4480; --gov-dk:#162e51; --gov-lt:#d9e8f6; --gov-acc:#97c4f0;
  --fs:20px;
}
html.big{--fs:24px}
body{margin:0;font:var(--fs)/1.6 "Atkinson Hyperlegible",Verdana,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
:focus-visible{outline:4px solid #f59e0b;outline-offset:3px}
.ld-wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.ld-skip{position:absolute;left:-999px}.ld-skip:focus{left:12px;top:12px;background:#fff;color:var(--ink);padding:10px;z-index:9}

.ld-top{background:#162e51;color:#fff;position:sticky;top:0;z-index:5;box-shadow:0 2px 10px rgba(0,0,0,.25);font-size:var(--fs);line-height:1.6}
.ld-top .ld-wrap{display:flex;align-items:center;gap:20px;min-height:76px;flex-wrap:wrap}
.ld-brand{color:#fff;text-decoration:none;font-weight:800;font-size:1.15em;margin-right:auto}
.ld-brand span{color:#97c4f0}
.ld-nav{display:flex;gap:4px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.ld-nav a{display:inline-flex;align-items:center;min-height:52px;padding:0 14px;border-radius:10px;color:#fff;text-decoration:none;font-weight:700;font-size:.85em;border-bottom:4px solid transparent}
.ld-nav a:hover{background:rgba(255,255,255,.12)}
.ld-nav a[aria-current=page]{border-bottom-color:#97c4f0}
.ld-size{display:flex;gap:8px;align-items:center;font-size:.8em}
.ld-size button{font:inherit;font-weight:700;min-width:52px;min-height:48px;border-radius:10px;border:2px solid #fff;background:transparent;color:#fff;cursor:pointer}
.ld-size button.ld-aplus{font-size:1.25em}
.ld-size button[aria-pressed=true]{background:#fff;color:#111827}
@media(max-width:640px){.ld-size-l{display:none}.ld-top .ld-wrap{gap:8px 10px;padding-top:8px}.ld-size{order:2}.ld-brand{font-size:1em}.ld-size button{min-width:48px}}
@media(max-width:1100px){.ld-top nav{order:3;width:100%}.ld-nav{overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}.ld-nav a{white-space:nowrap}}

.ld-foot{background:#162e51;color:#dbe4ef;font-size:calc(var(--fs) * .85);line-height:1.6;margin-top:24px}
.ld-foot a{color:#fff}
.ld-fgrid{display:grid;grid-template-columns:1.3fr 1.2fr 1.2fr 1.1fr;gap:32px;padding-top:44px;padding-bottom:36px}
@media(max-width:960px){.ld-fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ld-fgrid{grid-template-columns:1fr}}
.ld-foot h2{font-size:1em;color:#fff;margin:0 0 10px}
.ld-foot ul{list-style:none;margin:0;padding:0}
.ld-foot li{margin:0 0 10px}
.ld-foot p{margin:0 0 12px}
.ld-fbrand{font-weight:800;font-size:1.25em;text-decoration:none}
.ld-fbrand span{color:#97c4f0}
.ld-tip{margin:16px 0 0}
.ld-tip[hidden]{display:none!important}
.ld-foot a.ld-tipbtn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:8px 18px;border-radius:10px;border:2px solid #97c4f0;color:#fff;font-weight:700;text-decoration:none;background:transparent}
.ld-foot a.ld-tipbtn:hover{background:rgba(255,255,255,.12)}
.ld-fbar{border-top:1px solid #2f4a70;padding:18px 0 28px;font-size:.9em}
.ld-fbar p{margin:0 0 6px}
@media print{
  html,html.big{--fs:16px}
  .ld-top,.ld-foot,.ld-skip,.ld-size,.ld-tip{display:none!important}
}
/* A+ on laptop widths: keep brand and text size on one row, links as a scroll strip below */
@media(max-width:1400px){html.big .ld-top nav{order:3;width:100%}html.big .ld-nav{overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}html.big .ld-nav a{white-space:nowrap}}
