
:root{--ink:#17202a;--paper:#f7f4ed;--line:#c9c2b5;--accent:#075b5e}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,sans-serif}
a{color:var(--accent)}a:focus-visible{outline:3px solid #e09924;outline-offset:3px}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem}
.site-header,main,footer{max-width:82rem;margin:auto;padding:1.25rem}.site-header{display:flex;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--line)}
nav ul,.breadcrumbs ol,.filters{display:flex;flex-wrap:wrap;gap:.8rem;list-style:none;padding:0}.brand{font-size:1.4rem;font-weight:800}
.directory-intro{display:grid;grid-template-columns:2fr 1fr;gap:2rem}.filters a{display:block;border:1px solid var(--line);background:#fff;padding:.45rem .7rem;text-decoration:none}
.listing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}.listing-tile{background:#fff;border:1px solid var(--line);padding:1rem}
.listing-tile figure{margin:0 0 .75rem}.listing-tile img,.gallery img{width:100%;height:auto}.taxonomy-rail{border-left:4px solid var(--accent);padding-left:1rem}
.listing-detail{display:grid;grid-template-columns:minmax(0,2fr) minmax(15rem,1fr);gap:2rem}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.gallery figure{margin:0}
.faq details{border-top:1px solid var(--line);padding:.8rem 0}@media(max-width:700px){.directory-intro,.listing-detail{grid-template-columns:1fr}}
