/* Local Lucide icons; original licensing is retained in assets/icons. */
.category-icon { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 10px; background: var(--cyan); color: var(--blue-dark); }
.category-icon::before { content: ''; width: 22px; height: 22px; background: currentColor; mask: var(--category-icon) center/contain no-repeat; }
.icon-all{--category-icon:url('assets/icons/layout-grid.svg')}
.icon-food{--category-icon:url('assets/icons/utensils.svg')}
.icon-health{--category-icon:url('assets/icons/heart-pulse.svg')}
.icon-housing{--category-icon:url('assets/icons/house.svg')}
.icon-utilities{--category-icon:url('assets/icons/zap.svg')}
.icon-family{--category-icon:url('assets/icons/baby.svg')}
.icon-phone{--category-icon:url('assets/icons/smartphone.svg')}
.icon-work{--category-icon:url('assets/icons/briefcase-business.svg')}
.icon-legal{--category-icon:url('assets/icons/scale.svg')}
.icon-disaster{--category-icon:url('assets/icons/triangle-alert.svg')}
.icon-local{--category-icon:url('assets/icons/map-pin.svg')}
.privacy-icon { width: 25px; height: 25px; flex: 0 0 25px; background: var(--blue-dark); mask:url('assets/icons/shield-check.svg') center/contain no-repeat; }
.initial-icon { width: 25px; height: 25px; flex: 0 0 25px; background: var(--blue-dark); mask:url('assets/icons/map-pin.svg') center/contain no-repeat; }
.emergency-icon { width: 26px; height: 26px; flex: 0 0 26px; background: #bfd8ff; margin-top: .1rem; mask:url('assets/icons/triangle-alert.svg') center/contain no-repeat; }
.page-view { max-width: 870px; margin: 0 auto; }
.back-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .9375rem; font-weight: 600; margin-bottom: 1rem; }
.guide-page { border: 1px solid var(--line); border-top: 3px solid var(--blue); border-radius: 12px; padding: clamp(1.25rem,4vw,3rem); background: #fff; }
.guide-page>.eyebrow { margin-bottom: .9rem; }
.guide-page h1 { font-size: clamp(2rem,4vw,2.75rem); line-height: 1.2; letter-spacing: -.035em; margin: 0 0 1rem; }
.guide-intro { color: var(--muted); font-size: 1.125rem; line-height: 1.8; margin: 0 0 1.5rem; }
.guide-page h2 { font-size: 1.1875rem; line-height: 1.45; margin: 2rem 0 .5rem; }
.guide-page section p { color: #435b73; margin: .5rem 0; line-height: 1.85; }
.guide-page ol { padding-inline-start: 1.5rem; }
.guide-page li { color: #435b73; margin: 1rem 0; padding-inline-start: .3rem; line-height: 1.85; }
.notice { background: var(--cyan); border-inline-start: 3px solid var(--blue); border-radius: 6px; color: #354f6e; font-size: 1rem; padding: 1rem 1.2rem; margin: 1.3rem 0; }
.guide-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.8rem 0; }
.guide-source { font-size: .875rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 2rem; overflow-wrap: anywhere; }
.guide-source p { margin: .5rem 0; }
.source-list-link { display: block; width: fit-content; padding: .65rem 0; overflow-wrap: anywhere; }
.contact-email { max-width: 100%; overflow-wrap: anywhere; text-align: start; }
/* Let connected scripts and longer translations keep their natural spacing. */
html[dir=rtl] h1, html[dir=rtl] h2, html[dir=rtl] h3, html[lang=hi] h1, html[lang=zh] h1 { letter-spacing: normal; line-height: 1.5; }
html[dir=rtl] .brand-name { text-align: left; }
html[dir=rtl] .intro h1, html[lang=hi] .intro h1 { max-width: none; }
@media(min-width:1100px) {
 html[dir=rtl] .intro h1 { font-size: 2.7rem; }
}
@media(max-width:1024px) {
 .topbar { gap: 1.2rem; padding-inline: 1.5rem; flex-wrap: wrap; }
 .header-nav { gap: .2rem 1rem; }
 main { padding-inline: 1.5rem; }
 .intro>div { gap: 0 2rem; }
 .finder { padding: 1.4rem; }
 .controls { grid-template-columns: 1fr 1fr; }
 .controls label:last-child { grid-column: 1/-1; }
 .verified-badge { max-width: 230px; }
}
@media(max-width:780px) {
 .topbar { padding: 1rem 1.25rem .65rem; gap: .65rem 1rem; min-height: 0; }
 .brand { margin-inline-end: auto; }
 .header-nav { order: 3; width: 100%; margin: 0; justify-content: flex-start; gap: 1.5rem; border-top: 1px solid var(--line); padding-top: .35rem; }
 .header-nav a { font-size: .875rem; }
 main { padding: 1.8rem 1.25rem 2.5rem; }
 .intro>div { grid-template-columns: 1fr; }
 .intro { margin-bottom: 1.5rem; }
 .intro h1 { font-size: clamp(2rem,6vw,2.8rem); max-width: 22ch; }
 .lede { margin: .9rem 0 0; font-size: 1rem; max-width: none; }
 .finder { padding: 1.2rem; margin-bottom: 1.75rem; }
 .finder-head { align-items: flex-start; }
 .finder-head>div { align-items: flex-start; }
 .finder h2, .results h2 { font-size: 1.125rem; }
 .finder-actions { flex-direction: column; align-items: stretch; gap: 1rem; }
 .trust-note { max-width: none; }
 .results-grid { grid-template-columns: 1fr; }
 .results-head { align-items: flex-start; }
 .verified-badge { display: none; }
 .program-card { padding: 1.25rem; }
 .state-panel { grid-template-columns: 1fr; padding: 1.25rem; }
 .state-panel .secondary-button { justify-self: start; }
 .emergency { align-items: flex-start; padding: 1.4rem; }
 .how ol { grid-template-columns: 1fr; gap: 1.2rem; }
 .how h2 { font-size: 1.3rem; }
 footer { grid-template-columns: 1fr; padding: 1.75rem 1.25rem; gap: 1rem; }
 #footerNav { gap: .25rem 1.25rem; }
}
@media(max-width:520px) {
 .topbar { padding-inline: 1rem; gap: .65rem .5rem; }
 .brand { gap: .35rem; }
 .brand-logo { width: 38px; height: 38px; flex-basis: 38px; }
 .brand-title { font-size: 1rem; }
 .brand-country { font-size: .75rem; }
 .language-control select { max-width: 110px; font-size: 1rem; padding-inline: .4rem; }
 .header-nav { column-gap: 1.25rem; }
 main { padding-inline: 1rem; }
 .controls { grid-template-columns: 1fr; }
 .controls label:last-child { grid-column: auto; }
 .finder { padding: 1rem; }
 .finder-head { gap: .5rem; }
 .finder-head .step { display: none; }
 .text-button { font-size: .875rem; }
 .initial-state { padding: 1.2rem; align-items: flex-start; }
 .initial-icon { margin-top: .15rem; }
 .emergency { flex-direction: column; gap: 1rem; }
 .emergency a { width: 100%; }
 .guide-actions>* { width: 100%; }
 .guide-page { padding: 1.2rem; }
}
@media(max-width:359px) {
 .language-control { width: 100%; justify-content: space-between; }
 .language-control>span { display: inline; }
 .language-control select { max-width: none; }
 .header-nav { gap: .5rem 1rem; }
 .card-footer { align-items: stretch; flex-direction: column; }
 .card-footer a { justify-content: center; }
}
@media(prefers-reduced-motion:reduce) {
 *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
@media(forced-colors:active) {
 .category-icon::before, .privacy-icon, .initial-icon, .emergency-icon { background: CanvasText; }
 .primary-button, .secondary-button, .program-card, .emergency { border: 1px solid CanvasText; }
}
@media print {
 .topbar, footer, .back-link, .guide-actions, .translation-note, .skip-link { display: none !important; }
 body { background: #fff; color: #111; }
 main { max-width: none; padding: 0; }
 .guide-page { border: 0; padding: 0; }
 .guide-page section { break-inside: avoid; }
 .guide-source a::after { content: ' (' attr(href) ')'; }
}
