
:root{
 --navy-900:#061533;--navy-800:#0a1f44;--navy-700:#14295a;--navy-200:#b6c4e3;--navy-100:#dde4f3;
 --gold-700:#835f1d;--gold-600:#a87f2a;--gold-500:#c99a3b;--gold-400:#d4a95a;--gold-300:#e0bc5d;--gold-100:#f4e6bf;
 --cream-300:#e8dcb9;--cream-200:#f3eddc;--cream-100:#faf7f1;--cream-50:#fdfbf6;
 --ink-800:#1c1c20;--ink-700:#2b2b30;
 --font-sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
 --font-serif:"Source Serif 4",Georgia,"Times New Roman",serif;
 --font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}
*,*::before,*::after{box-sizing:border-box;border:0 solid;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;line-height:1.5}
img,svg{display:block;max-width:100%;height:auto}
ol,ul{list-style:none}
a{color:inherit;text-decoration:inherit}
button,input,select,textarea{font:inherit;color:inherit}
html,body{background:var(--cream-100);color:var(--ink-800);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:var(--font-serif);color:var(--navy-800);letter-spacing:-0.01em}
a:hover{color:var(--gold-600)}
hr{border-top-width:1px;color:inherit;height:0}
table{border-collapse:collapse}

.kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--gold-600);font-size:.72rem;font-weight:600}
.card{border:1px solid var(--cream-300);background:#fff;border-radius:8px;transition:border-color .15s,box-shadow .15s}
.card:hover{border-color:var(--gold-400);box-shadow:0 8px 24px -12px rgba(10,31,68,.18)}
.gold-rule{background:linear-gradient(90deg,var(--gold-500),var(--gold-300));border:0;border-radius:2px;width:3.5rem;height:3px}
.prose-dw p{color:var(--ink-700);margin:0 0 1.1em;line-height:1.75}
.prose-dw h2{margin:2.2em 0 .7em;font-size:1.5rem;line-height:1.2}
.prose-dw h3{margin:1.8em 0 .5em;font-size:1.2rem;line-height:1.3}
.prose-dw ul{margin:0 0 1.1em;padding-left:1.25rem;list-style:disc}
.prose-dw ul li{margin:.35em 0;line-height:1.7}
.prose-dw a{text-decoration:underline;text-decoration-color:var(--gold-300);text-underline-offset:3px}
.prose-dw a:hover{text-decoration-color:var(--gold-600)}
.prose-dw strong{color:var(--navy-800)}
.btn-primary{background:var(--gold-500);color:var(--navy-900);letter-spacing:.02em;text-transform:uppercase;border-radius:6px;align-items:center;gap:.5rem;padding:.85rem 1.4rem;font-size:.82rem;font-weight:600;display:inline-flex;transition:background .15s,transform .15s}
.btn-primary:hover{background:var(--gold-400);transform:translateY(-1px)}
.btn-ghost{border:1px solid var(--navy-200);color:var(--navy-800);text-transform:uppercase;letter-spacing:.02em;border-radius:6px;align-items:center;gap:.5rem;padding:.8rem 1.3rem;font-size:.82rem;font-weight:600;display:inline-flex}
.btn-ghost:hover{border-color:var(--gold-500);background:var(--cream-50)}
.sr-only:focus{position:static}
.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}

/* base + hover/focus utilities */
.text-cream-100{color:#faf7f1}
.font-serif{font-family:var(--font-serif)}
.text-navy-800{color:#0a1f44}
.text-xs{font-size:0.75rem;line-height:1rem}
.text-sm{font-size:0.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.uppercase{text-transform:uppercase}
.tracking-wider{letter-spacing:0.05em}
.block{display:block}
.leading-snug{line-height:1.375}
.flex{display:flex}
.items-center{align-items:center}
.text-ink-700{color:#2b2b30}
.mt-2{margin-top:0.5rem}
.transition-colors{transition:color .15s,background-color .15s,border-color .15s}
.p-5{padding:1.25rem}
.mb-1{margin-bottom:0.25rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.mb-3{margin-bottom:0.75rem}
.mx-auto{margin-left:auto;margin-right:auto}
.max-w-7xl{max-width:80rem}
.text-navy-100{color:#dde4f3}
.border-t{border-top-width:1px;border-top-style:solid}
.border-b{border-bottom-width:1px;border-bottom-style:solid}
.text-cream-50{color:#fdfbf6}
.text-gold-300{color:#e0bc5d}
.hidden{display:none}
.justify-center{justify-content:center}
.grid{display:grid}
.border-cream-300{border-color:#e8dcb9}
.font-mono{font-family:var(--font-mono)}
.text-ink-700\/70{color:#2b2b30b2}
.leading-relaxed{line-height:1.625}
.justify-between{justify-content:space-between}
.rounded{border-radius:0.375rem}
.flex-wrap{flex-wrap:wrap}
.border-navy-700\/60{border-color:#14295a99}
.inline-flex{display:inline-flex}
.bg-gold-500{background-color:#c99a3b}
.text-navy-900{color:#061533}
.gap-x-4{column-gap:1rem}
.gap-y-1{row-gap:0.25rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.italic{font-style:italic}
.max-w-2xl{max-width:42rem}
.gap-6{gap:1.5rem}
.py-1\.5{padding-top:0.375rem;padding-bottom:0.375rem}
.mt-12{margin-top:3rem}
.text-navy-700{color:#14295a}
.ml-2{margin-left:0.5rem}
.mt-10{margin-top:2.5rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.mb-2{margin-bottom:0.5rem}
.text-center{text-align:center}
.gap-2{gap:0.5rem}
.bg-navy-800{background-color:#0a1f44}
.gap-3{gap:0.75rem}
.gap-10{gap:2.5rem}
.min-h-screen{min-height:100vh}
.flex-col{flex-direction:column}
.bg-cream-100{background-color:#faf7f1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
.border-navy-900{border-color:#061533}
.tracking-wide{letter-spacing:0.025em}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}
.w-11{width:2.75rem}
.h-11{height:2.75rem}
.tracking-tight{letter-spacing:-0.025em}
.text-\[0\.68rem\]{font-size:0.68rem}
.tracking-\[0\.18em\]{letter-spacing:0.18em}
.mt-0\.5{margin-top:0.125rem}
.gap-7{gap:1.75rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.flex-1{flex:1 1 0%}
.my-5{margin-top:1.25rem;margin-bottom:1.25rem}
.bg-navy-900{background-color:#061533}
.mt-16{margin-top:4rem}
.w-9{width:2.25rem}
.h-9{height:2.25rem}
.border-navy-700\/50{border-color:#14295a80}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.text-navy-200{color:#b6c4e3}
.max-w-3xl{max-width:48rem}
.mb-10{margin-bottom:2.5rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.leading-\[1\.1\]{line-height:1.1}
.p-6{padding:1.5rem}
.gap-4{gap:1rem}
.pt-8{padding-top:2rem}
.pt-5{padding-top:1.25rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.bg-cream-50{background-color:#fdfbf6}
.border-cream-300\/60{border-color:#e8dcb999}
.mb-5{margin-bottom:1.25rem}
.gap-x-8{column-gap:2rem}
.mb-6{margin-bottom:1.5rem}
.gap-y-2{row-gap:0.5rem}
.mt-1{margin-top:0.25rem}
.text-gold-500{color:#c99a3b}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.border{border-width:1px;border-style:solid}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.border-b-2{border-bottom-width:2px;border-bottom-style:solid}
.border-gold-400{border-color:#d4a95a}
.pb-2{padding-bottom:0.5rem}
.gap-y-1\.5{row-gap:0.375rem}
.p-4{padding:1rem}
.font-semibold{font-weight:600}
.text-gold-600{color:#a87f2a}
.items-start{align-items:flex-start}
.mt-1\.5{margin-top:0.375rem}
.mt-3{margin-top:0.75rem}
.gap-5{gap:1.25rem}
.mb-8{margin-bottom:2rem}
.relative{position:relative}
.mb-4{margin-bottom:1rem}
.text-gold-400{color:#d4a95a}
.py-16{padding-top:4rem;padding-bottom:4rem}
.absolute{position:absolute}
.w-full{width:100%}
.p-8{padding:2rem}
.top-6{top:1.5rem}
.right-6{right:1.5rem}
.tracking-\[0\.2em\]{letter-spacing:0.2em}
.mb-7{margin-bottom:1.75rem}
.items-end{align-items:flex-end}
.overflow-hidden{overflow:hidden}
.inset-0{top:0;right:0;bottom:0;left:0}
.opacity-\[0\.05\]{opacity:0.05}
.pointer-events-none{pointer-events:none}
.py-20{padding-top:5rem;padding-bottom:5rem}
.text-5xl{font-size:3rem;line-height:1}
.leading-\[1\.05\]{line-height:1.05}
.mt-6{margin-top:1.5rem}
.max-w-xl{max-width:36rem}
.mt-8{margin-top:2rem}
.border-cream-100\/40{border-color:#faf7f166}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.max-w-lg{max-width:32rem}
.text-ink-800{color:#1c1c20}
.rounded-md{border-radius:0.375rem}
.p-7{padding:1.75rem}
.shadow-2xl{box-shadow:0 25px 50px -12px rgba(10,31,68,0.35)}
.border-gold-300\/30{border-color:#e0bc5d4c}
.my-6{margin-top:1.5rem;margin-bottom:1.5rem}
.mb-12{margin-bottom:3rem}
.border-y{border-top-width:1px;border-bottom-width:1px;border-top-style:solid;border-bottom-style:solid}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gap-8{gap:2rem}
.gap-1{gap:0.25rem}
.px-4{padding-left:1rem;padding-right:1rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.mt-4{margin-top:1rem}
.pt-3{padding-top:0.75rem}
.hover\:text-gold-300:hover{color:#e0bc5d}
.hover\:text-gold-600:hover{color:#a87f2a}
.hover\:bg-gold-100:hover{background-color:#f4e6bf}
.hover\:border-gold-400:hover{border-color:#d4a95a}
.hover\:bg-cream-50\/5:hover{background-color:#fdfbf60d}
.hover\:text-navy-800:hover{color:#0a1f44}
.hover\:bg-cream-100:hover{background-color:#faf7f1}
.focus\:absolute:focus{position:absolute}
.focus\:top-2:focus{top:0.5rem}
.focus\:left-2:focus{left:0.5rem}
.focus\:bg-navy-800:focus{background-color:#0a1f44}
.focus\:text-white:focus{color:#ffffff}
.focus\:px-3:focus{padding-left:0.75rem;padding-right:0.75rem}
.focus\:py-2:focus{padding-top:0.5rem;padding-bottom:0.5rem}
.focus\:rounded:focus{border-radius:0.375rem}
@media(min-width:640px){
.sm\:inline{display:inline}
.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:768px){
.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.md\:flex{display:flex}
.md\:inline-flex{display:inline-flex}
.md\:hidden{display:none}
.md\:text-5xl{font-size:3rem;line-height:1}
.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.md\:p-8{padding:2rem}
.md\:p-10{padding:2.5rem}
.md\:py-28{padding-top:7rem;padding-bottom:7rem}
.md\:grid-cols-\[1\.4fr_1fr\]{grid-template-columns:1.4fr 1fr}
.md\:text-6xl{font-size:3.75rem;line-height:1}
.md\:text-xl{font-size:1.25rem;line-height:1.75rem}
.md\:block{display:block}
.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}
.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.md\:grid-cols-\[2fr_1fr_1fr_auto\]{grid-template-columns:2fr 1fr 1fr auto}
}
@media(min-width:1024px){
.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}
}
/* ===== site chrome: header, footer, breadcrumb, hero bands, cards ===== */
.site-header{background:var(--navy-800);color:var(--cream-100);border-bottom:1px solid var(--navy-900)}
.topbar{border-bottom:1px solid rgba(20,41,90,.6)}
.topbar-inner{max-width:80rem;margin:0 auto;padding:.4rem 1.25rem;display:flex;align-items:center;gap:1rem;font-size:.75rem;color:var(--navy-100);flex-wrap:wrap}
.topbar-source{font-weight:600;letter-spacing:.02em}
.topbar-meta{opacity:.85}
.topbar-disclaimer{font-style:italic;opacity:.8;margin-left:auto}
.header-main{max-width:80rem;margin:0 auto;padding:1.1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand{display:flex;align-items:center;gap:.75rem}
.brand-mark{border-radius:8px;flex-shrink:0}
.brand-name{display:block;font-family:var(--font-serif);font-size:1.5rem;color:var(--cream-50);line-height:1}
.brand-tag{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:var(--gold-300);margin-top:.15rem}
.nav-primary{display:none;align-items:center;gap:1.75rem}
.nav-primary a{font-size:.85rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--cream-100)}
.nav-primary a:hover{color:var(--gold-300)}
.nav-cta{display:none}
.nav-mobile{border-top:1px solid rgba(20,41,90,.6);padding:.75rem 1.25rem;display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
.nav-mobile a{color:var(--cream-100)}
.nav-mobile a:hover{color:var(--gold-300)}
@media(min-width:768px){
 .nav-primary{display:flex}
 .nav-cta{display:inline-flex}
 .nav-mobile{display:none}
 .topbar-meta,.topbar-disclaimer{display:inline}
}
@media(max-width:767px){
 .topbar-meta,.topbar-disclaimer{display:none}
}

/* breadcrumb */
.breadcrumb{max-width:80rem;margin:1.25rem auto 0;padding:0 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.78rem;color:var(--ink-700)}
.breadcrumb a{color:var(--navy-700)}
.breadcrumb a:hover{color:var(--gold-600)}
.breadcrumb .crumb-sep{color:var(--cream-300)}
.breadcrumb .crumb-current{color:var(--ink-700);opacity:.75}

/* hub hero band */
.hub-hero{max-width:80rem;margin:1rem auto 0;padding:0 1.25rem}
.hub-hero-img{width:100%;height:auto;max-height:260px;object-fit:cover;border-radius:12px}
@media(max-width:767px){.hub-hero-img{max-height:150px}}

/* home hero illustration */
.hero-illustration{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.hero-illustration-img{position:absolute;right:-4rem;top:50%;transform:translateY(-50%);width:26rem;max-width:60%;opacity:.16;filter:saturate(0.9)}
@media(max-width:767px){.hero-illustration-img{display:none}}
.bg-navy-800.relative>*{position:relative;z-index:1}

/* category cards (home) */
.category-section{max-width:80rem;margin:0 auto;padding:3rem 1.25rem}
.category-section .section-head{text-align:center;margin-bottom:2rem}
.category-section h2{font-size:1.9rem;margin-top:.5rem}
.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
.category-card{border:1px solid var(--cream-300);background:#fff;border-radius:10px;overflow:hidden;display:block;transition:border-color .15s,box-shadow .15s}
.category-card:hover{border-color:var(--gold-400);box-shadow:0 8px 24px -12px rgba(10,31,68,.18)}
.category-card-img{width:100%;height:8rem;object-fit:cover}
.category-card-name{display:block;font-family:var(--font-serif);font-weight:600;color:var(--navy-800);padding:.85rem 1rem 0}
.category-card-count{display:block;font-size:.78rem;color:var(--ink-700);opacity:.75;padding:.2rem 1rem .9rem}
@media(min-width:768px){.category-grid{grid-template-columns:repeat(4,1fr)}}

/* charity detail banner */
.detail-header{position:relative}
.detail-banner{float:right;width:220px;height:auto;max-height:220px;object-fit:cover;border-radius:10px;margin:0 0 1rem 1.5rem}
.detail-header::after{content:"";display:table;clear:both}
@media(max-width:767px){.detail-banner{float:none;width:100%;max-height:140px;margin:1rem 0 0}}

/* footer */
.site-footer{background:var(--navy-900);color:var(--cream-100);margin-top:4rem}
.footer-grid{max-width:80rem;margin:0 auto;padding:3rem 1.25rem;display:grid;gap:2.5rem;grid-template-columns:1fr}
.footer-col h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-300);margin-bottom:.75rem;font-family:var(--font-sans)}
.footer-col ul li{margin:.5rem 0;font-size:.875rem;color:var(--navy-100)}
.footer-col ul li a:hover{color:var(--gold-300)}
.footer-brand{margin-bottom:.75rem}
.footer-brand .brand-name{color:var(--cream-50);font-size:1.25rem}
.footer-about p{font-size:.875rem;color:var(--navy-100);line-height:1.6;margin-bottom:.5rem}
.footer-source{opacity:.8;font-size:.8rem!important}
.footer-bottom{border-top:1px solid rgba(20,41,90,.5);padding:1.5rem 1.25rem;text-align:center;font-size:.75rem;color:var(--navy-200)}
.footer-legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:.5rem}
.footer-legal-links a:hover{color:var(--gold-300)}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(4,1fr)}}

/* data tables (guides / directory) */
.prose-dw table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.92rem;display:block;overflow-x:auto;white-space:nowrap}
.prose-dw th,.prose-dw td{padding:.5rem .75rem;border-bottom:1px solid var(--cream-300);text-align:left}
.prose-dw tr:nth-child(even) td{background:var(--cream-50)}

/* focus visibility */
a:focus-visible,button:focus-visible{outline:2px solid var(--gold-500);outline-offset:2px}

@media (prefers-reduced-motion:reduce){
 *{transition:none!important;animation:none!important}
}

@media print{
 .site-header,.site-footer,.hub-hero,.hero-illustration,.nav-mobile,.breadcrumb{display:none}
 body{background:#fff;color:#000}
}

/* small residual utility classes */
.brand-text{display:flex;flex-direction:column}
.first\:mt-0:first-child{margin-top:0}
.space-y-2>*+*{margin-top:.5rem}
