:root{--bg:#fbfaf7;--ink:#16161d;--mut:#6b6b76;--line:#e8e5de;--acc:#d33a40;--acc2:#1a5fd0;--card:#fff;--focus:#1a5fd0;--field:#86837b}
*{box-sizing:border-box}body{margin:0;font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}
a{color:inherit}.wrap{max-width:960px;margin:0 auto;padding:0 20px}
.top{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:5}.nav{display:flex;justify-content:space-between;align-items:center;height:60px;gap:16px}
.logo{font-weight:800;text-decoration:none;letter-spacing:-.02em;font-size:18px}.logo span{color:#e5484d}
nav{display:flex;gap:18px;font-size:14px;flex-wrap:wrap}nav a{text-decoration:none;color:var(--mut)}nav a:hover{color:var(--ink)}nav .pill{color:#fff;background:var(--ink);padding:6px 12px;border-radius:99px}
.hero{padding:56px 0 28px}.hero.sm{padding:40px 0 16px}.hero h1{font-size:clamp(32px,5vw,52px);line-height:1.05;letter-spacing:-.03em;margin:0 0 12px}.hero p{color:var(--mut);margin:0}
.cta{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.btn{display:inline-block;background:var(--acc);color:#fff;text-decoration:none;padding:11px 18px;border-radius:10px;font-weight:600;border:0;cursor:pointer;font-size:15px}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.controls{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 6px;position:sticky;top:60px;background:var(--bg);padding:10px 0;z-index:4}
.controls input[type=text],#q{flex:1 1 220px}input,select,textarea{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.chk{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--mut)}
.muted{color:var(--mut);font-size:14px}.list{display:flex;flex-direction:column;gap:10px;margin:10px 0 40px}
.card{display:flex;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;transition:.15s}.card:hover{border-color:#cfcabe;box-shadow:0 4px 18px rgba(0,0,0,.05)}
.date{width:64px;text-align:center;flex-shrink:0;border-right:1px solid var(--line);padding-right:14px}.date b{display:block;font-size:15px}.date small{color:var(--mut)}
.body{flex:1;min-width:0}.body h3{margin:0;font-size:17px;letter-spacing:-.01em}.body h3 a{text-decoration:none}.body h3 a:hover{text-decoration:underline}
.meta,.fee{margin:2px 0 0;font-size:13px;color:var(--mut)}.t{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:2px 7px;border-radius:6px;background:#eef2ff;color:#3b5bdb;margin-right:4px}.t.fellowship{background:#ecfdf3;color:#067647}.t.lab{background:#fff4e5;color:#b54708}
.b{font-size:12px;font-weight:700;padding:4px 9px;border-radius:99px;background:#f1efe9;color:var(--mut);white-space:nowrap}.b.hot{background:#fde8e8;color:#c92a2a}.b.soon{background:#fff4e5;color:#b54708}.b.free{background:#e7f8ee;color:#067647}.b.tba{background:#f3f3f6}
.news{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:var(--ink);color:#fff;border-radius:18px;padding:28px;margin-bottom:30px}.news h2{margin:0}.news p{margin:4px 0 0;color:#bbb}.nl{display:flex;gap:8px;flex-wrap:wrap}.nl input{min-width:240px}.ok{color:#8ce99a!important;width:100%}
.foot{color:var(--mut);font-size:13px;padding-bottom:40px}
.detail h1{font-size:32px;letter-spacing:-.02em;line-height:1.15}.detail table{width:100%;border-collapse:collapse;margin:20px 0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.detail th,.detail td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}.detail th{width:190px;color:var(--mut);font-weight:600;font-size:14px}.crumb{margin-top:24px;font-size:14px;color:var(--mut)}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.tier{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.tier.hl{border:2px solid var(--acc)}.price{font-size:24px;font-weight:800;margin:0}
.contact{display:flex;flex-direction:column;gap:10px;max-width:520px;margin:30px 0 40px}
@media(max-width:640px){nav a:not(.pill){display:none}.date{width:52px}.right{display:none}}
[hidden]{display:none!important}
html{scroll-behavior:smooth}#subscribe{scroll-margin-top:16px}.nl{flex-direction:column;min-width:min(400px,100%)}
@media(max-width:640px){nav{flex-wrap:nowrap;gap:8px}nav .pill{white-space:nowrap;padding:6px 10px}.logo{font-size:16px}}
.sd-sub{display:flex;flex-wrap:wrap;gap:8px;width:min(420px,100%)}
.sd-sub input[type=email]{flex:1 1 200px;min-width:0;padding:12px 14px;border-radius:10px;border:1px solid #444;background:#fff;color:#111;font-size:16px}
.sd-sub .btn{flex:0 0 auto;border:0;cursor:pointer;font-size:16px}
.sd-msg{flex-basis:100%;margin:2px 0 0;font-size:14px;color:#ccc;min-height:1em}.sd-msg.ok{color:#7ee2a8}.sd-msg.err{color:#ffb4a6}.sd-msg a{color:#fff}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.nl{gap:14px}.nl iframe{max-width:100%}
.nav{display:flex;align-items:center;justify-content:space-between;gap:10px}.logo{white-space:nowrap;flex:0 0 auto}
@media(max-width:640px){nav{flex-wrap:nowrap;gap:6px;align-items:center}nav a.pill{white-space:nowrap;padding:6px 10px;font-size:13px}nav a.pill:not(.sub){display:none}.logo{font-size:16px}}
nav a.pill:hover,nav a.pill:focus,nav a.pill:active{color:#fff;opacity:.9}
.trouble{margin:6px 0 0;font-size:13px;color:#bbb}.trouble a{color:#fff}
.bh-embed{display:block;min-height:52px}
.sd-plain{margin-top:2px}
@media(max-width:480px){.top .nav{height:56px;gap:8px;flex-wrap:nowrap}.logo{white-space:nowrap;font-size:16px;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}nav{flex-wrap:nowrap!important;gap:6px;flex:0 0 auto}nav a:not(.sub){display:none!important}nav a.sub{white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.2}}
.sd-plain .btn{background:var(--acc);color:#fff}
.b.feat{background:#fff6db;color:#8a5a00;border:1px solid #f1d58a;font-size:11px;padding:2px 8px;vertical-align:middle;letter-spacing:.02em}
.featured{margin:6px 0 22px}.featured h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:0 0 8px;font-weight:700}
.flist{display:flex;flex-direction:column;gap:10px}.card.is-feat{border-color:#f1d58a;box-shadow:0 0 0 1px #f8e7b3 inset}
.detail .b.feat{margin-left:6px}
@media(max-width:480px){.featured{margin:0 0 18px}}
.detail td,.detail p.muted{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:480px){.detail th{width:96px;padding:10px}.detail td{padding:10px}.detail h1{font-size:26px}}
.news{position:relative}.news>#newsletter{position:absolute;top:0;left:0;width:0;height:0;scroll-margin-top:16px}
.bigsearch{position:relative;margin:22px 0 4px;max-width:none;width:100%}
.bigsearch #q{width:100%;font-size:19px;padding:17px 18px 17px 54px;border:2px solid var(--ink);border-radius:14px;background:#fff;box-shadow:0 6px 22px rgba(0,0,0,.07);-webkit-appearance:none;appearance:none}
.bigsearch #q:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 4px rgba(229,72,77,.15)}
.bigsearch .sicon{position:absolute;left:18px;top:19px;color:var(--ink);pointer-events:none}
.qhint{display:inline-block;margin:8px 2px 0;font-size:14px;font-weight:600;color:var(--acc2);text-decoration:none}.qhint[hidden]{display:none}
#results{scroll-margin-top:60px}
@media(max-width:480px){.bigsearch{margin-top:18px}.bigsearch #q{font-size:16px;padding:15px 10px 15px 44px}.bigsearch .sicon{left:13px;top:16px}}
.sec{font-size:22px;letter-spacing:-.01em;margin:8px 0 12px}.pricing .tier{display:flex;flex-direction:column;min-width:0}.pricing .tier ul{padding-left:18px;margin:12px 0 16px;flex:1}.pricing .tier li{margin:4px 0;font-size:15px}.pricing .tier .btn{align-self:flex-start}.price .per{font-size:15px;font-weight:600;color:var(--mut)}.alt{margin:4px 0 0;color:var(--mut);font-size:15px}.alt b{color:var(--ink)}
.founding{margin:16px 0 8px;padding:16px 18px;border-radius:14px;background:#fff6db;border:1px solid #f1d58a}.founding h3{margin:0 0 4px;font-size:17px;color:#6b4600}.founding p{margin:0;font-size:15px}.freenote{margin:12px 0 0}.contact .next{margin:0}.contact select{width:100%}
@media(max-width:480px){.pricing{grid-template-columns:1fr}.pricing .tier .btn{align-self:stretch;text-align:center}}
/* ===== /printable (v2, 2026-10-20) ===== */
.pt-hero h1{margin-bottom:10px}.pt-hero .pt-sub{font-size:17px;color:var(--mut);margin:0 0 12px;max-width:640px}
.pt-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:14px;color:var(--mut)}.pt-meta a{color:var(--acc2);font-weight:600;text-decoration:none}.pt-meta a:hover{text-decoration:underline}
.pt-chk{color:#067647;font-weight:600}
.pt{margin:14px 0 40px}
.pt-bar{position:sticky;top:60px;z-index:4;display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:0 0 18px;box-shadow:0 4px 18px rgba(0,0,0,.04)}
.pt-bar button{font:inherit;cursor:pointer}
.pt-row1,.pt-row2{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.seg{display:inline-flex;background:#f1efe9;border-radius:10px;padding:3px}.seg button{border:0;background:transparent;color:var(--mut);font-size:14px;font-weight:600;padding:7px 16px;border-radius:8px}.seg button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.pt-count{font-size:14px;color:var(--mut);font-variant-numeric:tabular-nums}.pt-count b{color:var(--ink)}
.pt-paper{margin-left:auto}.pt-paper select{font-size:14px;padding:8px 10px;border-radius:10px;color:var(--ink)}
.pt-print{padding:10px 16px;font-size:15px;white-space:nowrap}
.pt-only{font-size:13px;color:var(--mut);font-weight:600}
.chip{font-size:13px;font-weight:600;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:99px;padding:6px 13px;line-height:1.2;transition:.12s}.chip:hover{border-color:#bdb7aa}
.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.pt-txtbtns{margin-left:auto;display:flex;gap:4px}.tbtn{border:0;background:none;color:var(--acc2);font-size:13px;font-weight:600;padding:6px 8px;border-radius:8px}.tbtn:hover{background:#eef2ff}
.pt-head{display:none}.pt-foot{font-size:12px;color:var(--mut);margin:12px 0 0}
/* list rows */
.pt-grp{margin:0 0 22px}.pt-mh{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);font-weight:700;margin:0 0 8px;padding:0 2px}.pt-mh span{text-transform:none;letter-spacing:0;font-weight:500;margin-left:6px}
.pt-rows{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pt-r{display:grid;grid-template-columns:36px 64px minmax(0,1fr) 112px 84px;grid-template-areas:"ck date main type fee";align-items:center;gap:0 12px;padding:12px 16px 12px 10px;border-top:1px solid var(--line);transition:opacity .12s,background .12s}
.pt-r:first-child{border-top:0}.pt-r:hover{background:#fcfbf8}
.pt-r-tba{grid-template-columns:36px minmax(0,1fr) 112px 84px;grid-template-areas:"ck main type fee"}
.pt-ck{grid-area:ck;display:flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer;position:relative}
.pt-ck input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.pt-ck .box{pointer-events:none;width:20px;height:20px;border:2px solid #c9c4b8;border-radius:6px;background:#fff;display:block;transition:.12s;position:relative}
.pt-ck input:checked+.box{background:var(--acc);border-color:var(--acc)}
.pt-ck input:checked+.box::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.pt-ck input:focus-visible+.box{outline:2px solid var(--acc2);outline-offset:2px}
.pt-date{grid-area:date;display:flex;flex-direction:column;line-height:1.15;white-space:nowrap}.pt-date b{font-size:16px;letter-spacing:-.01em}.pt-date small{font-size:12px;color:var(--mut)}
.pt-today .pt-date b{color:var(--acc)}
.pt-main{grid-area:main;min-width:0;display:flex;flex-direction:column;gap:2px}
.pt-name{font-size:15.5px;font-weight:600;line-height:1.35}.pt-name a{text-decoration:none}.pt-name a:hover{text-decoration:underline}
.pt-then{font-size:13px;color:var(--mut)}
.tp{display:inline-block;vertical-align:2px;font-size:11px;font-weight:700;line-height:1;padding:4px 8px;border-radius:99px;white-space:nowrap;letter-spacing:.01em;margin-left:4px}
.tp-early{background:#e7f8ee;color:#067647}.tp-regular{background:#eef2ff;color:#3b5bdb}.tp-late{background:#fff4e5;color:#b54708}.tp-final{background:#fde8e8;color:#c92a2a}.tp-other{background:#f1efe9;color:var(--mut)}
.pt-type{grid-area:type}.pt-type .t{margin:0;white-space:nowrap}.t.grant{background:#f3f0ff;color:#6741d9}
.pt-fee{grid-area:fee;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}
.pt:not(.pt-js) .pt-ck{display:none}.pt:not(.pt-js) .pt-r{grid-template-columns:0 64px minmax(0,1fr) 112px 84px;gap:0 12px}.pt:not(.pt-js) .pt-r-tba{grid-template-columns:0 minmax(0,1fr) 112px 84px}
.pt-r.off>:not(.pt-ck){opacity:.38}.pt-r.off{background:#faf9f6}
/* calendar */
.pt-legend{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12px;color:var(--mut);margin:0 0 14px}.pt-legend .tp{margin:0}
.pt-month{margin:0 0 26px}.pt-month h2{margin:0 0 10px;font-size:22px;letter-spacing:-.02em}
.pt-grid{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:12px}
.pt-grid th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);padding:8px 4px;font-weight:700;background:#faf9f6;border-bottom:1px solid var(--line)}
.pt-grid td{height:104px;vertical-align:top;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px;overflow:hidden}
.pt-grid tr td:last-child{border-right:0}.pt-grid tbody tr:last-child td{border-bottom:0}
.pt-grid td.x{background:#faf9f6}.pt-grid .dn{display:inline-block;font-size:12px;color:var(--mut);font-weight:700;min-width:22px;height:22px;line-height:22px;text-align:center;border-radius:99px;margin-bottom:2px}
.pt-grid td.today{background:#fffaf0;box-shadow:inset 0 0 0 2px var(--acc)}.pt-grid td.today .dn{background:var(--acc);color:#fff}
.ev{display:flex;flex-wrap:wrap;gap:0 4px;align-items:baseline;line-height:1.25;margin-top:3px;padding:3px 6px;border-radius:6px;border-left:3px solid;min-width:0}
.ev b{min-width:0;font-weight:700;overflow-wrap:anywhere}.ev i{font-style:normal;font-size:.85em;opacity:.85}
.ev.tp-early{background:#e7f8ee;color:#05532f;border-color:#12b76a}.ev.tp-regular{background:#eef2ff;color:#24366e;border-color:#4c6ef5}.ev.tp-late{background:#fff4e5;color:#7a3306;border-color:#f79009}.ev.tp-final{background:#fde8e8;color:#8a1c1c;border-color:#f04438}.ev.tp-other{background:#f1efe9;color:#3d3d45;border-color:#b5b0a4}
.pt-ag{display:none}.pt-mfoot{display:none}.pt-ctba ul{columns:2;font-size:14px;padding-left:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 14px 14px 32px;margin:0}.pt-empty{padding:30px 0;text-align:center}
@media(max-width:860px){.pt-r{grid-template-columns:36px 60px minmax(0,1fr) 96px 72px}.pt-r-tba{grid-template-columns:36px minmax(0,1fr) 96px 72px}}
@media(max-width:640px){
 .pt-bar{position:static;padding:12px;gap:12px}.pt-row1{gap:8px}.seg{flex:1 1 auto}.seg button{flex:1}.pt-count{order:3;flex:1 1 100%}.pt-paper{margin-left:0;flex:0 0 auto}.pt-print{order:4;flex:1 1 100%;text-align:center}
 .pt-row2{gap:6px}.pt-only{flex:1 1 100%}.pt-txtbtns{margin-left:0;flex:1 1 100%}
 .pt-rows{background:transparent;border:0;border-radius:0;overflow:visible;display:flex;flex-direction:column;gap:8px}
 .pt-r,.pt-r-tba{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"ck date fee" "ck main main" "ck type type";gap:4px 8px;padding:12px 14px 12px 8px;background:#fff;border:1px solid var(--line);border-radius:14px;align-items:start}
 .pt-r-tba{grid-template-areas:"ck main fee" "ck type type"}
 .pt-r:first-child{border-top:1px solid var(--line)}.pt-r.off{background:#faf9f6}
 .pt-ck{align-self:center}.pt-date{flex-direction:row;gap:5px;align-items:baseline}.pt-date b{font-size:15px}
 .pt-name{font-size:15px}.pt-type .t{font-size:10px}
 .pt:not(.pt-js) .pt-r,.pt:not(.pt-js) .pt-r-tba{grid-template-columns:0 minmax(0,1fr) auto;gap:4px 0}
 .pt-legend{gap:6px}
 .pt-grid td{height:46px;padding:2px}.pt-grid .ev{display:none}.pt-grid td.has .dn{background:#fde8e8;color:var(--acc)}.pt-grid td.today .dn{background:var(--acc);color:#fff}.pt-grid th{padding:6px 0;font-size:10px}
 .pt-ag{display:block;list-style:none;padding:0;margin:10px 0 0;font-size:14px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
 .pt-ag li{display:flex;gap:8px;align-items:baseline;padding:10px 12px;border-top:1px solid var(--line)}.pt-ag li:first-child{border-top:0}.pt-ag li>b{flex:0 0 48px;white-space:nowrap}.pt-ag a{text-decoration:none;font-weight:600;flex:1;min-width:0}.pt-ag .tp{margin:0;flex:0 0 auto}
 .pt-ctba ul{columns:1}}
@media print{
 .top,.hero,.news,.foot,.related,.pt-after,.pt-bar,.pt-ck,.pt .off,.pt-grp.empty,.pt-ag,.pt-legend,.crumb{display:none!important}
 html,body{background:#fff!important;color:#000}body{font-size:9.5pt}.wrap{max-width:none;padding:0;margin:0}.pt{margin:0}
 *{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none!important}a{color:inherit;text-decoration:none!important}
 .pt-head{display:block;margin:0 0 8px}.pt-head b{display:block;font-size:14pt}.pt-head span{color:#ff5a36}.pt-head small{display:block;font-size:8pt;color:#555}
 .pt-grp{margin:0 0 6px}.pt-mh{font-size:7.5pt;color:#333;margin:6px 0 2px;letter-spacing:.06em;break-after:avoid}
 .pt-rows{border:0;border-radius:0;background:none;display:block}
 .pt-r,.pt .pt-r-tba{display:grid;grid-template-columns:44px minmax(0,1fr) 62px 56px!important;grid-template-areas:"date main type fee"!important;gap:0 8px;padding:2.5px 4px;border:0;border-top:.5px solid #ccc;border-radius:0;background:none!important;break-inside:avoid;align-items:baseline}
 .pt .pt-r-tba{grid-template-columns:minmax(0,1fr) 62px 56px!important;grid-template-areas:"main type fee"!important}
 .pt-rows .pt-r:nth-child(even){background:#f5f5f5!important}
 .pt-date{flex-direction:row;gap:3px;align-items:baseline}.pt-date b{font-size:8.6pt}.pt-date small{font-size:6.5pt;color:#666}
 .pt-main{flex-direction:row;flex-wrap:wrap;gap:0 6px;align-items:baseline}.pt-name{font-size:8.6pt;font-weight:600}.pt-then{font-size:7pt;color:#555}
 .tp{font-size:6.5pt;padding:1px 5px;background:none!important;color:#333!important;border:.6px solid #888;margin-left:3px;vertical-align:1px}
 .tp-final,.tp-late{border-color:#333;font-weight:800}
 .pt-type .t{font-size:6.5pt;background:none!important;color:#333!important;padding:0;letter-spacing:.04em}
 .pt-fee{font-size:8.6pt}
 .pt-foot{font-size:7.5pt;color:#555;margin:8px 0 0}.pt-is-cal .pt-foot{display:none}
 .pt-month{break-after:page;break-inside:avoid;margin:0}.pt-month:last-child{break-after:auto}.pt-month h2{font-size:15pt;margin:0 0 5px}
 .pt-grid{font-size:7.4pt;border-radius:0;border:.6px solid #999}.pt-grid th{font-size:7pt;padding:2px;background:#eee!important;border-bottom:.6px solid #999}
 .pt-grid td{height:.98in;padding:2px 3px;border-color:#bbb}[data-orient=portrait] .pt-grid td{height:1.32in}.pt-grid tr{break-inside:avoid}
 .pt-grid td.today{box-shadow:none!important;background:#fff}.pt-grid td.today .dn{background:none;color:#555}.pt-grid td.x{background:#f4f4f4}
 .pt-grid .ev{display:flex;flex-wrap:nowrap;padding:0 3px;margin-top:1.5px;border-left-width:2.5px}.ev b{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}.ev i{flex:0 0 auto}
 .pt-grid .dn{font-size:7.5pt;color:#555;height:auto;line-height:1.2;min-width:0;margin:0}.pt-mfoot{display:block;font-size:7.5pt;color:#555;margin:5px 0 0}.pt-ctba ul{columns:3;font-size:8pt;border:0;padding:0 0 0 14px}
}
.buys{display:flex;flex-direction:column;gap:8px;margin:12px 0 2px}.pricing .tier .buys .btn{align-self:stretch;text-align:center}.pricing .tier .ask{font-size:14px;font-weight:600;color:var(--acc2);text-decoration:none;align-self:flex-start}.pricing .tier .ask:hover{text-decoration:underline}
.stripe-note{margin:12px 0 0;font-size:14px;color:var(--mut)}.stripe-note::before{content:"🔒 ";content:"🔒 " / ""}
/* 2026-10-20 v2: pricing card rhythm. Price block -> gap -> stacked Buy buttons (10px apart, full card width) -> gap -> bullets -> "Questions?" pinned to bottom.
   On multi-column desktop the .alt line gets a 2-line min-height so the Buy buttons line up across the three cards. */
.pricing .tier{display:flex;flex-direction:column}
.pricing .tier h3{margin:0 0 10px}.pricing .tier .price{margin:0;line-height:1.2}.pricing .tier .alt{margin:6px 0 0;line-height:1.5}
.pricing .tier .buys{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin:20px 0 22px}
.pricing .tier .buys .btn{display:block;width:100%;margin:0;align-self:stretch;text-align:center;line-height:1.3}
.pricing .tier ul{margin:0 0 20px;padding-left:18px;flex:1 0 auto}
.pricing .tier .ask{margin-top:auto;align-self:flex-start}
@media(min-width:700px){.pricing .tier .alt{min-height:3em}}
@media(max-width:699px){.pricing .tier .buys{margin:16px 0 18px}}
/* 2026-10-20: mobile header shows both pills (Subscribe + Get featured) next to the logo; desktop nav unchanged. */
@media(max-width:640px){.top nav a.pill.gf{display:inline-flex!important;align-items:center;background:#fff;color:var(--ink);border:1.5px solid var(--ink);padding:5px 10px}
 .top nav a.pill.gf:hover,.top nav a.pill.gf:focus{color:var(--ink)}.top nav{flex:0 0 auto}}
@media(max-width:480px){.top .wrap.nav{padding:0 14px}.top nav{gap:6px}.top nav a.pill{font-size:13px;padding:6px 10px;line-height:1.2}.top nav a.pill.gf{padding:5px 9px}.logo{flex:0 0 auto;overflow:visible}}
@media(max-width:380px){.top .logo{font-size:15px;letter-spacing:-.03em}.top nav a.pill{font-size:12.5px;padding:6px 9px}.top nav a.pill.gf{padding:5px 8px}.top nav{gap:5px}}
@media(max-width:640px){.top nav a.pill{display:inline-flex;align-items:center;min-height:30px;box-sizing:border-box}}
@media(max-width:640px){.pt-row1{display:grid;grid-template-columns:1fr auto;gap:10px}.pt-row1 .seg{grid-column:1/-1}.pt-count{order:0;align-self:center}.pt-paper select{padding:7px 8px;font-size:13px}.pt-print{grid-column:1/-1}
 .pt-row2{gap:6px}.pt-only{flex:0 0 auto;margin-right:2px}.pt-txtbtns{flex:1 1 100%;margin:-2px 0 -4px -8px}
 .pt-r .pt-ck{align-self:start;margin-top:-4px}}
@media print{.pt-r{grid-template-columns:60px minmax(0,1fr) 62px 74px!important}.pt .pt-r-tba{grid-template-columns:minmax(0,1fr) 62px 74px!important}
 .pt-date{white-space:nowrap}.pt-fee{white-space:normal;font-size:8pt;line-height:1.15}.pt-grid .ev{border-radius:2px}}
/* Quick facts (2026-10-20): one quotable, data-generated sentence near the top of each /o/ page */
.qf{margin:14px 0 4px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--acc);border-radius:10px;font-size:15px;line-height:1.5;overflow-wrap:anywhere}.qf b{color:var(--ink)}
.attrib{font-size:12px}

/* ===== Accessibility pass (2026-10-20): WCAG 2.1 AA ===== */
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
/* skip link: off-screen until focused, then a slim full-width bar above the header that pushes it down (never covers header controls) */
.skip{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip:focus,.skip:focus-visible{position:static;display:block;width:auto;height:auto;margin:0;overflow:visible;clip:auto;clip-path:none;white-space:normal;
 background:var(--ink);color:#fff;font-size:13.5px;font-weight:600;line-height:1.3;padding:6px 12px;text-align:center;text-decoration:underline;text-underline-offset:2px;border-radius:0;box-shadow:none;
 outline:2px solid #fff;outline-offset:-4px}
main:focus{outline:none}
html{scroll-padding-top:76px}
/* one clear, consistent focus ring (3px, >=3:1 against page and control) */
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.news :focus-visible,.news a:focus-visible,.news button:focus-visible,.news input:focus-visible{outline-color:#fff}
.bigsearch #q:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.pt-ck input:focus-visible+.box{outline:3px solid var(--focus);outline-offset:2px}
nav .pill:focus-visible{outline-offset:3px}
/* form field boundaries >=3:1 (1.4.11) */
input,select,textarea{border-color:var(--field)}
.pt-ck .box{border-color:#86837b}
/* pressed state of the List/Calendar switch is not shown by color alone */
.seg button[aria-pressed=true]{box-shadow:0 1px 3px rgba(0,0,0,.12),inset 0 0 0 1.5px var(--ink)}
/* links in text are underlined, not just colored (1.4.1) */
.pt-meta a{text-decoration:underline;text-underline-offset:2px}
.prose a,.hero p a,.qf a{text-decoration:underline}
/* mobile calendar: date numbers on pink need darker red */
@media(max-width:640px){.pt-grid td.has .dn{color:#b42318}}
/* get-featured contact forms: visible labels */
.contact label{font-size:14px;font-weight:600;margin:4px 0 -6px}.contact .req,.contact .opt{font-weight:400;color:var(--mut)}
.contact h3{margin:0 0 2px}
/* accessibility statement */
.prose{max-width:720px;margin:0 0 40px}.prose h2{font-size:22px;letter-spacing:-.01em;margin:28px 0 8px}.prose p,.prose li{font-size:16px}.prose li{margin:6px 0}
/* minimum 24px targets for small text buttons */
.tbtn,.chip{min-height:28px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* 320px reflow: header pills fit without sideways scroll */
@media(max-width:340px){.top .wrap.nav{padding:0 10px;gap:6px}.top .logo{font-size:14px}.top nav{gap:4px}.top nav a.pill{font-size:12px;padding:6px 8px}.top nav a.pill.gf{padding:5px 7px}}
/* unticked printable rows: muted + struck through instead of faded (keeps text contrast >= 4.5:1) */
.pt-r.off>:not(.pt-ck){opacity:1;filter:grayscale(1)}.pt-r.off .pt-name a,.pt-r.off .pt-date b,.pt-r.off .pt-fee,.pt-r.off .pt-date small{color:var(--mut)}.pt-r.off .pt-name a{text-decoration:line-through}
@media screen{.pt-grid td.today .dn{color:#fff}}
@media print{.skip{display:none!important}}
