:root{--ink:#17211c;--muted:#5e6962;--paper:#fbfaf6;--card:#fff;--soft:#f0eee5;--line:#ddd9ca;--green:#173b2c;--green2:#245b43;--gold:#b58a2b;--rust:#8b3528;--shadow:0 12px 35px rgba(23,59,44,.09);--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.6}a{color:var(--green2)}button,input,select{font:inherit}.wrap{width:min(1180px,calc(100% - 36px));margin:auto}.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:10px;z-index:100}
header{position:sticky;top:0;z-index:30;background:rgba(251,250,246,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.nav{min-height:72px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:"Playfair Display",serif;font-size:1.3rem;font-weight:700;white-space:nowrap}.mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#1f6a45 0 33%,#e1b53e 33% 66%,#a83d2c 66%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}nav{margin-left:auto;display:flex;align-items:center;gap:22px}nav a{text-decoration:none;color:var(--ink);font-size:.92rem;font-weight:600}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:11px 17px;font-weight:700;text-decoration:none;border:1px solid transparent;cursor:pointer}.nav-cta,.primary{background:var(--green);color:#fff}.secondary{background:#fff;color:var(--green);border-color:var(--line)}.lang{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px;color:var(--ink);font-weight:700}.menu{display:none;margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 11px}
.hero{background:linear-gradient(120deg,#f7f2e5 0%,#fbfaf6 55%,#edf4ef 100%);padding:78px 0 58px;border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:44px;align-items:center}.eyebrow{color:var(--rust);text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;font-weight:800}.hero h1{font-family:"Playfair Display",serif;font-size:clamp(2.7rem,6vw,5.2rem);line-height:1.02;margin:12px 0 18px;max-width:850px}.hero p{font-size:1.1rem;color:var(--muted);max-width:720px}.am{font-family:"Noto Sans Ethiopic",sans-serif}.searchbox{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;display:grid;grid-template-columns:1.25fr 1fr auto;gap:8px;box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;padding:4px 12px}.field label{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.field input,.field select{border:0;background:transparent;color:var(--ink);padding:5px 0;outline:none;min-width:0}.searchbox button{border:0;background:var(--green);color:#fff;border-radius:10px;padding:0 24px;font-weight:700}.hero-card{background:var(--green);color:#fff;border-radius:22px;padding:28px;box-shadow:var(--shadow)}.hero-summary{display:none}.hero-card h2{font-family:"Playfair Display",serif;margin:0 0 10px;font-size:1.7rem}.hero-card p{color:#dce7e1;font-size:.94rem}.hero-card .stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.stat{border:1px solid rgba(255,255,255,.2);padding:14px;border-radius:12px}.stat strong{display:block;font-size:1.4rem;color:#fff}.stat span{font-size:.78rem;color:#dce7e1}
section{padding:70px 0;scroll-margin-top:80px}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:28px}.section-head h2{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:8px 0}.section-head p{color:var(--muted);max-width:680px}.grid{display:grid;gap:18px}.cats{grid-template-columns:repeat(4,1fr)}.cat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;text-decoration:none;color:var(--ink);transition:.18s}.cat:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#c5b989}.cat .icon{font-size:1.55rem}.cat strong{display:block;margin-top:8px}.cat span{font-size:.84rem;color:var(--muted)}.soft{background:var(--soft);border-block:1px solid var(--line)}
.filters{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr auto;gap:12px;margin-bottom:18px}.filters input,.filters select{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px;color:var(--ink)}.filters button{border:0;background:var(--green);color:#fff;border-radius:9px;padding:10px 18px;font-weight:700}.result-meta{color:var(--muted);font-size:.9rem;margin:10px 0 16px}.listings{grid-template-columns:repeat(3,1fr)}.listing{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:8px}.listing .type{font-size:.72rem;color:var(--rust);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.listing h3{margin:0;font-family:"Playfair Display",serif;font-size:1.25rem}.listing p{margin:0;color:var(--muted);font-size:.9rem}.badge{display:inline-flex;width:max-content;border-radius:20px;padding:4px 8px;background:#eef5f0;color:var(--green);font-size:.72rem;font-weight:700}.listing-actions{display:flex;gap:12px;margin-top:auto;padding-top:10px}.listing-actions a{font-size:.86rem;font-weight:700}.empty{grid-column:1/-1;border:1px dashed #bcb7a8;border-radius:var(--radius);padding:32px;text-align:center;color:var(--muted);background:rgba(255,255,255,.5)}
.state-panel{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px}.state-picker,.resource-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.state-picker select{width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff;margin-top:10px}.state-title{font-family:"Playfair Display",serif;font-size:2rem;margin:0 0 4px}.quicklinks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}.quicklinks a{border:1px solid var(--line);border-radius:10px;padding:12px;text-decoration:none;background:#fff;font-weight:700}.resource-grid{grid-template-columns:repeat(3,1fr)}.resource-card h3{margin:7px 0;font-family:"Playfair Display",serif}.resource-card p{color:var(--muted);font-size:.9rem}.resource-card a{font-weight:700}.notice{margin-top:20px;border-left:4px solid var(--gold);background:#fff8e7;padding:15px 18px;border-radius:8px;color:#66501d;font-size:.9rem}
.contribute{background:var(--green);color:#fff}.contribute h2{color:#fff}.contribute p{color:#dbe7e0}.contribute-grid{grid-template-columns:repeat(4,1fr)}.contrib{border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:20px;color:#fff;text-decoration:none}.contrib strong{display:block}.contrib span{font-size:.83rem;color:#dbe7e0}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.about-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}.about-card h3{font-family:"Playfair Display",serif;margin-top:0}.about-card p{color:var(--muted)}footer{padding:40px 0;border-top:1px solid var(--line)}.foot{display:grid;grid-template-columns:1.2fr 1fr;gap:30px}.foot p{color:var(--muted);font-size:.85rem}.footlinks{display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-end}.footlinks a{font-size:.85rem}
body.lang-am{font-family:"Noto Sans Ethiopic",Inter,Arial,sans-serif}body.lang-am .hero h1,body.lang-am .hero-card h2,body.lang-am .section-head h2,body.lang-am .listing h3,body.lang-am .state-title,body.lang-am .about-card h3,body.lang-am .brand{font-family:"Noto Sans Ethiopic",serif}
@media(max-width:900px){.hero-grid,.state-panel,.about-grid{grid-template-columns:1fr}.hero-card{display:none}.cats{grid-template-columns:repeat(2,1fr)}.listings,.resource-grid{grid-template-columns:repeat(2,1fr)}.contribute-grid{grid-template-columns:repeat(2,1fr)}nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:18px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}nav.open{display:flex}.menu{display:block}.nav .lang{margin-left:auto}}
@media(max-width:620px){.wrap{width:min(100% - 24px,1180px)}.hero{padding:48px 0 38px}.hero h1{font-size:2.7rem}.searchbox,.filters{grid-template-columns:1fr}.searchbox button{padding:13px}.cats,.listings,.resource-grid,.contribute-grid,.quicklinks{grid-template-columns:1fr}.section-head{display:block}.foot{grid-template-columns:1fr}.footlinks{justify-content:flex-start}.nav .lang{padding:7px 8px;font-size:.8rem}section{padding:52px 0}}
/* ---- v2 additions (directory architecture) ---- */
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.icon{display:inline-block}
.filters{grid-template-columns:1.4fr 1fr 1fr 1fr 1fr auto}
.filters label.f{display:flex;flex-direction:column;gap:4px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.filters select:disabled{background:#f4f3ee;color:#8a918c}
.filters .clear-wrap{display:flex;align-items:flex-end}
.filters .clear-wrap button{width:100%}
.filter-extra{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:-6px 0 8px;font-size:.88rem;color:var(--muted)}
.filter-extra label{display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.hidden{display:none!important}
.city-group{grid-column:1/-1;margin:14px 0 -4px;font-family:"Playfair Display",serif;font-size:1.35rem;border-bottom:1px solid var(--line);padding-bottom:4px}
.city-group small{font-family:Inter,Arial,sans-serif;font-size:.8rem;color:var(--muted);font-weight:600;margin-left:6px}
.listing address{font-style:normal;color:var(--muted);font-size:.9rem}
.listing .meta-line{font-size:.8rem;color:var(--muted)}
.listing .note{font-size:.82rem;color:#6b5a2c;background:#fff8e7;border-radius:8px;padding:6px 8px}
.badge.s-verified{background:#e6f3ea;color:#17613a}
.badge.s-community{background:#eef1f7;color:#2d4775}
.badge.s-needs-review{background:#fff3db;color:#7a5410}
.badge.s-temporarily-closed{background:#fde9e4;color:#8b3528}
.listing-actions{flex-wrap:wrap;gap:8px 12px}
.listing-actions a{display:inline-flex;align-items:center;min-height:32px}
.listing-actions a.pri{background:var(--green);color:#fff;border-radius:8px;padding:4px 10px;text-decoration:none}
.listing-actions a.sec{border:1px solid var(--line);border-radius:8px;padding:4px 10px;text-decoration:none}
.listing-actions .minor{font-size:.78rem;font-weight:600;color:var(--muted)}
.more-wrap{text-align:center;margin-top:18px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.chip{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 12px;font-size:.85rem;font-weight:600;color:var(--green);cursor:pointer}
.chip:hover{border-color:var(--gold)}
.coverage{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:22px}
.coverage button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px;cursor:pointer;font-size:.86rem;color:var(--ink)}
.coverage button span{display:block;font-size:.74rem;color:var(--muted)}
.coverage button.has{border-color:#b9cdbf;background:#f4faf6}
.coverage button[aria-pressed="true"]{outline:2px solid var(--green)}
.housing-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px}
.status-pill{display:inline-block;border-radius:20px;padding:3px 8px;font-size:.72rem;font-weight:800}
.status-pill.active{background:#e6f3ea;color:#17613a}.status-pill.recheck{background:#fff3db;color:#7a5410}.status-pill.expired{background:#eee;color:#555}
.contrib:hover,.contrib:focus-visible{background:rgba(255,255,255,.08)}
.review-note{margin-top:18px;color:#dbe7e0;font-size:.9rem}
.eyebrow.light{color:#e5c76f}
@media(max-width:1000px){.filters{grid-template-columns:1fr 1fr 1fr}.housing-rules{grid-template-columns:1fr}}
@media(max-width:620px){.filters{grid-template-columns:1fr}.coverage{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cat{transition:none}}
.contrib{min-width:0;overflow-wrap:anywhere}.listing{min-width:0;overflow-wrap:anywhere}
@media(max-width:900px){.contribute-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.contribute-grid{grid-template-columns:1fr}}
.coverage-toggle{margin-top:22px;border:1px solid var(--line);border-radius:12px;background:#fff}
.coverage-toggle>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;font-weight:600;color:var(--green)}
.coverage-toggle>summary::-webkit-details-marker{display:none}
.coverage-toggle>summary::before{content:"+";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid currentColor;font-size:.9rem;line-height:1}
.coverage-toggle[open]>summary::before{content:"\2212"}
.coverage-toggle>summary:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:12px}
.coverage-toggle .coverage{margin:0;padding:0 16px 16px}
.count-pill{font-size:.78rem;font-weight:500;color:var(--muted);background:#f4faf6;border:1px solid #b9cdbf;border-radius:999px;padding:2px 10px}
.state-links{grid-column:1/-1;grid-row:2;margin-top:8px}
.state-links h2{font-size:.95rem;margin:0 0 8px;font-family:inherit}
.state-links ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.85rem}
.state-links a{color:inherit;opacity:.85}
.state-hero{padding:40px 0 20px;background:var(--soft,#f7f4ee)}
.state-hero h1{font-family:"Playfair Display",serif;font-size:clamp(1.9rem,4vw,2.8rem);margin:.3em 0}
.state-hero h2.sub{font-size:1rem;margin:18px 0 6px}
.crumbs{font-size:.85rem;color:var(--muted)}
.crumbs a{color:inherit}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.jump a{border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:#fff;font-size:.86rem;text-decoration:none;color:var(--ink)}
a.chip{text-decoration:none;display:inline-block}
.state-body{padding:10px 0 40px}
.state-cat{padding:26px 0 0}
.state-cat h2{display:flex;align-items:center;gap:10px;font-family:"Playfair Display",serif}
.denom-h{font-size:1.05rem;margin:18px 0 10px}
.foot-note{color:var(--muted);font-size:.85rem;margin-top:16px}
.state-page .state-links{grid-row:auto}
.state-links a{font-weight:500}

/* ---- dimensional community hero ---- */
.hero-3d{background:linear-gradient(145deg,#123427,#1f5b42);padding:0;overflow:hidden;min-height:410px;perspective:1100px;isolation:isolate}
.scene-3d{position:relative;min-height:410px;transform-style:preserve-3d;transition:transform .18s ease-out;background:radial-gradient(circle at 52% 45%,rgba(225,181,62,.16),transparent 32%),linear-gradient(135deg,rgba(255,255,255,.04),transparent 45%)}
.scene-3d:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:38px 38px;transform:translateZ(-70px) scale(1.12);mask-image:linear-gradient(to bottom,transparent,black 25%,black 75%,transparent)}
.scene-orb{position:absolute;left:50%;top:48%;width:150px;height:150px;margin:-75px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#e8ca70,#b58a2b 42%,#6e4f13 100%);box-shadow:0 25px 55px rgba(0,0,0,.3),inset -16px -18px 28px rgba(0,0,0,.22);transform:translateZ(40px)}
.scene-orb:after{content:"";position:absolute;width:190px;height:48px;border:1px solid rgba(255,255,255,.28);border-radius:50%;transform:rotate(-16deg)}
.scene-orb span{font-family:"Noto Sans Ethiopic",serif;font-size:4rem;color:#173b2c;text-shadow:0 2px 0 rgba(255,255,255,.25)}
.float-card{position:absolute;width:145px;min-height:92px;padding:13px 14px;border:1px solid rgba(255,255,255,.25);border-radius:14px;background:rgba(255,255,255,.94);color:var(--ink);text-decoration:none;box-shadow:0 18px 34px rgba(0,0,0,.2);backdrop-filter:blur(8px);transition:transform .22s ease,box-shadow .22s ease;transform-style:preserve-3d}
.float-card span{font-size:1.3rem}.float-card strong,.float-card small{display:block}.float-card strong{font-size:.92rem;margin-top:3px}.float-card small{font-size:.72rem;color:var(--muted)}
.float-card:hover,.float-card:focus-visible{box-shadow:0 24px 45px rgba(0,0,0,.28);z-index:5}
.fc-food{left:6%;top:9%;transform:translateZ(65px) rotateY(8deg) rotateZ(-2deg)}.fc-food:hover{transform:translateZ(95px) rotateY(2deg)}
.fc-faith{right:5%;top:12%;transform:translateZ(85px) rotateY(-9deg) rotateZ(2deg)}.fc-faith:hover{transform:translateZ(110px) rotateY(-2deg)}
.fc-market{left:3%;bottom:18%;transform:translateZ(35px) rotateY(10deg) rotateZ(2deg)}.fc-market:hover{transform:translateZ(75px) rotateY(2deg)}
.fc-beauty{right:4%;bottom:19%;transform:translateZ(55px) rotateY(-10deg) rotateZ(-2deg)}.fc-beauty:hover{transform:translateZ(90px) rotateY(-2deg)}
.fc-pro{left:50%;bottom:5%;margin-left:-72px;transform:translateZ(100px) rotateX(2deg)}.fc-pro:hover{transform:translateZ(125px)}
.scene-caption{position:absolute;left:20px;top:46%;transform:translateY(-50%) translateZ(5px);width:120px;color:#fff}.scene-caption strong,.scene-caption span{display:block}.scene-caption strong{font-family:"Playfair Display",serif;font-size:1rem}.scene-caption span{font-size:.72rem;color:#dbe7e0;margin-top:4px}
@media(max-width:900px){.hero-3d{display:block;min-height:360px}.scene-3d{min-height:360px}.hero-summary{display:none}}
@media(max-width:620px){.hero-3d{min-height:330px}.scene-3d{min-height:330px}.scene-orb{width:110px;height:110px;margin:-55px}.scene-orb span{font-size:3rem}.scene-orb:after{width:140px}.float-card{width:112px;min-height:78px;padding:9px}.float-card small{display:none}.fc-food{left:3%}.fc-faith{right:3%}.fc-market{left:3%;bottom:16%}.fc-beauty{right:3%;bottom:16%}.fc-pro{margin-left:-56px}.scene-caption{display:none}}
@media(prefers-reduced-motion:reduce){.scene-3d,.float-card{transition:none!important}}

/* ---- compact dimensional hero title + top search ---- */
.hero-copy{min-width:0}
.hero-title-3d{font-size:clamp(2rem,3.7vw,3.55rem)!important;line-height:1.05!important;letter-spacing:-.025em;perspective:700px;text-shadow:0 1px 0 #fff,0 2px 0 #d8d2c1,0 4px 8px rgba(23,59,44,.12)!important}
.hero-title-3d span{display:inline-block;color:var(--green2);transform:perspective(700px) rotateX(-4deg);text-shadow:0 1px 0 #fff,0 2px 0 #c9c1a9,0 4px 0 rgba(181,138,43,.22),0 9px 15px rgba(23,59,44,.14)}
.hero .filters{margin-top:24px;margin-bottom:8px;grid-template-columns:1.25fr 1fr 1fr 1fr;box-shadow:var(--shadow);position:relative;z-index:6}
.hero .filters .clear-wrap{grid-column:auto}
.hero .filter-extra{margin:8px 2px 0}
@media(max-width:1100px){.hero .filters{grid-template-columns:1fr 1fr}.hero .filters .clear-wrap{align-items:stretch}.hero .filters .clear-wrap button{min-height:44px}}
@media(max-width:620px){.hero-title-3d{font-size:2.05rem!important}.hero .filters{grid-template-columns:1fr}}

/* Interactive dimensional category cards */
#categoryGrid { perspective: 1200px; }
#categoryGrid .cat {
  --rx: 0deg; --ry: 0deg; --lift: 0px;
  position: relative; overflow: hidden; isolation: isolate;
  transform-style: preserve-3d;
  transform: translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry));
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  will-change: transform;
}
#categoryGrid .cat::before {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:-1;
  background: radial-gradient(circle at var(--mx,30%) var(--my,20%), rgba(255,255,255,.9), transparent 34%);
  opacity:.7; transition:opacity .2s ease;
}
#categoryGrid .cat::after {
  content:""; position:absolute; left:10%; right:10%; bottom:7px; height:16px;
  border-radius:50%; background:rgba(0,0,0,.09); filter:blur(9px);
  transform:translateZ(-20px); z-index:-2; opacity:.45;
}
#categoryGrid .icon-3d {
  display:grid; place-items:center; width:54px; height:54px; margin-bottom:14px;
  border:1px solid rgba(15,82,65,.13); border-radius:17px;
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(244,239,227,.82));
  box-shadow:0 12px 22px rgba(0,0,0,.10), inset 0 1px 0 rgba(255,255,255,.95);
  transform:translateZ(28px); transition:transform .22s ease;
}
#categoryGrid .icon-face { font-size:28px; line-height:1; filter:drop-shadow(0 5px 4px rgba(0,0,0,.16)); }
#categoryGrid .cat strong { transform:translateZ(18px); }
#categoryGrid .cat > span:last-child { transform:translateZ(10px); }
#categoryGrid .cat strong,#categoryGrid .cat > span:last-child { position:relative; display:block; }
#categoryGrid .cat.is-active { --lift:-7px; box-shadow:0 20px 36px rgba(0,0,0,.13); border-color:rgba(15,82,65,.35); }
#categoryGrid .cat.is-active .icon-3d { transform:translateZ(38px) scale(1.06); }
@media (hover:hover) and (pointer:fine) {
  #categoryGrid .cat:hover { --lift:-7px; box-shadow:0 20px 36px rgba(0,0,0,.13); border-color:rgba(15,82,65,.35); }
  #categoryGrid .cat:hover .icon-3d { transform:translateZ(38px) scale(1.06); }
}
@media (prefers-reduced-motion:reduce) {
  #categoryGrid .cat,#categoryGrid .icon-3d { transition:none; transform:none !important; }
}

/* Category dimensional design v2 — intentionally visible at rest */
#community { overflow:hidden; }
#categoryGrid { gap:26px; perspective:1400px; padding:18px 8px 30px; }
#categoryGrid .cat {
  min-height:190px;
  padding:24px 22px 22px;
  border:1px solid rgba(72,58,35,.18);
  border-radius:22px;
  background:linear-gradient(145deg,#fff 0%,#fffdf8 62%,#f2eadb 100%);
  box-shadow:0 5px 0 #ded3bf, 0 13px 0 rgba(231,222,205,.72), 0 25px 34px rgba(38,31,20,.13);
  transform:translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry)) translateZ(0);
}
#categoryGrid .cat:nth-child(3n+2) { transform:translateY(calc(var(--lift) - 5px)) rotateX(var(--rx)) rotateY(var(--ry)); }
#categoryGrid .cat::before {
  background:linear-gradient(120deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.18) 36%,transparent 58%),
             radial-gradient(circle at var(--mx,25%) var(--my,18%),rgba(255,255,255,.98),transparent 31%);
  opacity:1;
}
#categoryGrid .cat::after {
  left:8%; right:8%; bottom:-18px; height:28px;
  background:rgba(52,40,24,.18); filter:blur(13px); opacity:.55;
}
#categoryGrid .icon-3d {
  width:72px; height:72px; border-radius:22px; margin-top:-8px; margin-bottom:18px;
  border:1px solid rgba(15,82,65,.22);
  background:linear-gradient(145deg,#ffffff 8%,#f7f0df 55%,#e4d4b4 100%);
  box-shadow:inset 3px 3px 7px rgba(255,255,255,.95), inset -4px -5px 9px rgba(109,82,42,.13),
             0 8px 0 rgba(213,198,168,.78), 0 18px 24px rgba(32,26,17,.16);
  transform:translateZ(48px) rotateX(-2deg);
}
#categoryGrid .icon-face { font-size:36px; filter:drop-shadow(0 7px 5px rgba(0,0,0,.23)); transform:translateY(-2px); }
#categoryGrid .cat strong { font-size:1.03rem; transform:translateZ(30px); }
#categoryGrid .cat > span:last-child { margin-top:7px; transform:translateZ(20px); }
#categoryGrid .cat.is-active,
#categoryGrid .cat:hover {
  --lift:-11px;
  box-shadow:0 6px 0 #d3c3a6,0 15px 0 rgba(224,210,184,.72),0 32px 46px rgba(30,24,16,.20);
}
#categoryGrid .cat.is-active .icon-3d,
#categoryGrid .cat:hover .icon-3d { transform:translateZ(62px) translateY(-4px) scale(1.08); }
@media (max-width:700px) {
 #categoryGrid { gap:18px; padding-left:2px; padding-right:2px; }
 #categoryGrid .cat { min-height:170px; box-shadow:0 4px 0 #ded3bf,0 10px 0 rgba(231,222,205,.65),0 18px 25px rgba(38,31,20,.11); }
 #categoryGrid .cat:nth-child(3n+2) { transform:none; }
 #categoryGrid .icon-3d { width:62px;height:62px; }
}

.listing-photo{width:100%;height:190px;object-fit:cover;border-radius:10px;display:block;margin-bottom:16px}

/* Grouped navigation with raised, accessible 3D tabs */
#mainNav{gap:12px}
.nav-group{position:relative}
.nav-group summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;cursor:pointer;white-space:nowrap;padding:10px 16px;border:1px solid #c5d3c9;border-radius:12px;color:#173b2c;background:linear-gradient(180deg,#fff,#eaf1eb);font-size:.92rem;font-weight:700;box-shadow:0 4px 0 #b8c9bd,0 7px 12px #173b2c12;transition:transform .16s,box-shadow .16s}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary::after{content:"⌄";font-size:1rem}
.nav-group summary:hover{transform:translateY(-2px);box-shadow:0 6px 0 #b8c9bd,0 10px 16px #173b2c18}
.nav-group[open] summary{background:linear-gradient(180deg,#28563f,#173b2c);color:#fff;border-color:#173b2c;box-shadow:0 3px 0 #0d291c}
.nav-group summary:focus-visible,.nav-panel a:focus-visible{outline:3px solid #b88817;outline-offset:4px}
.nav-panel{position:absolute;top:calc(100% + 12px);left:0;min-width:240px;padding:8px;display:grid;gap:4px;background:#fff;border:1px solid #d8e1d9;border-radius:14px;box-shadow:0 16px 35px #173b2c24;z-index:40}
.nav-group:last-child .nav-panel{left:auto;right:0}
#mainNav .nav-panel a{display:block;padding:10px 12px;border-radius:8px;white-space:normal;font-size:.9rem;line-height:1.4}
#mainNav .nav-panel a:hover{background:#edf3ee;color:#173b2c}
.nav-panel small{display:block;font-size:.74rem;font-weight:400;color:#59695e;margin-top:3px}
@media(max-width:900px){#mainNav{top:100%;padding:16px 18px;gap:12px;max-height:calc(100dvh - 72px);overflow-y:auto}.nav-group summary{width:100%;box-sizing:border-box}.nav-panel,.nav-group:last-child .nav-panel{position:static;margin-top:10px;min-width:0;box-shadow:none}.nav{gap:12px}}
@media(prefers-reduced-motion:reduce){.nav-group summary{transition:none}.nav-group summary:hover{transform:none}}

#directory{scroll-margin-top:100px}#directory:focus{outline:2px solid #173b2c;outline-offset:-4px}
.clear-wrap{display:flex;gap:.6rem;grid-column:1/-1}.clear-wrap #clearFilters{background:transparent;color:#173b2c;border:1px solid #65766c}.category-count{display:block;margin-top:.6rem;font-weight:700;color:#173b2c}
@media(max-width:600px){.clear-wrap{flex-wrap:wrap}.clear-wrap button{flex:1}.hero-3d{display:none}}

.hero .filters .clear-wrap{grid-column:1/-1;align-items:center}.hero .filters .clear-wrap button{width:auto;min-height:44px;white-space:nowrap}#searchResults{display:inline-flex;gap:.25rem;align-items:center}

/* Consistent supporting pages and readable profiles */
.support-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px;flex-wrap:wrap}.support-nav nav,.support-footer{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.support-nav nav a,.support-footer a{min-height:44px;display:inline-flex;align-items:center}.support-footer{padding-block:20px}
.profile-actions{display:flex;gap:12px;flex-wrap:wrap;margin-block:24px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.profile-grid section{padding:24px;background:white;border:1px solid var(--line);border-radius:16px}.profile-grid h2{margin-top:0}.profile-grid .btn{margin:6px 8px 6px 0}.profile-grid address{font-style:normal}.profile-grid p{overflow-wrap:anywhere}.hero-summary{display:block!important}.hero-title-3d{text-shadow:none!important}.profile-actions button{font:inherit}
.intake{max-width:780px}.intake form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.intake label{display:grid;gap:6px;font-weight:600}.intake input,.intake select,.intake textarea{font:inherit;width:100%;padding:12px;border:1px solid #728078;border-radius:8px;background:white;color:var(--ink)}.intake .full{grid-column:1/-1}.intake textarea{min-height:130px}.intake [hidden]{display:none!important}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #946200;outline-offset:4px}button,.btn{min-height:44px}body{overflow-wrap:break-word}
@media(max-width:700px){.profile-grid,.intake form{grid-template-columns:1fr}.support-nav{align-items:flex-start}.support-nav nav{order:3;width:100%;gap:12px}.hero-summary{margin-top:0}.hero-grid{gap:24px}.profile-actions .btn{flex:1}.intake .full{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:450px){.nav{flex-wrap:wrap;gap:8px}.nav .brand{flex:1}.nav .lang{order:3;flex-basis:100%;margin-left:0;text-align:center}#directory{scroll-margin-top:150px}.nav #mainNav{top:100%}}

.hero-title-3d span{text-shadow:none!important}
