.tap-directory{--td-ink:#172c34;--td-muted:#50636b;--td-accent:#116d88;--td-line:#d8e3e6;--td-soft:#f1f7f8;max-width:1200px;margin:0 auto;color:var(--td-ink);line-height:1.65}
.tap-directory *{box-sizing:border-box}
.tap-directory [hidden]{display:none!important}
.tap-directory a{color:var(--td-accent);text-underline-offset:.2em}
.tap-directory a:hover{text-decoration:underline}
.tap-directory :is(a,button,input):focus-visible{outline:3px solid var(--td-accent);outline-offset:4px}
.tap-directory__heading{margin:0 0 2rem}
.tap-directory__heading h1{font-size:clamp(2rem,4vw,3.1rem);line-height:1.15;margin:.25rem 0 1rem;font-weight:650;letter-spacing:-.025em}
.tap-directory__heading p{margin:0;color:var(--td-muted)}
.tap-directory__heading .tap-directory__eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--td-accent)}
.tap-directory__map{position:relative;overflow:hidden;border:1px solid var(--td-line);border-radius:12px;background:var(--td-soft);margin-bottom:2.5rem}
.tap-directory__map-consent{min-height:310px;padding:2.2rem 1.5rem;text-align:center;background-image:linear-gradient(0deg,transparent 95%,#dce9ec 95%),linear-gradient(90deg,transparent 95%,#dce9ec 95%);background-size:40px 40px}
.tap-directory__pin{width:36px;height:36px;color:var(--td-accent);margin-bottom:.4rem}
.tap-directory__map h2{font-size:1.4rem;margin:.15rem 0 .65rem}
.tap-directory__map p{max-width:570px;margin:0 auto 1rem}
.tap-directory__map small{display:block;margin-top:.6rem;color:var(--td-muted)}
.tap-directory__map-canvas{height:400px;width:100%;color:#172c34}
.tap-directory__map-status:empty{display:none}
.tap-directory__map .tap-directory__map-status{padding:1rem;margin:0;max-width:none;background:var(--td-soft)}
.tap-directory__button{border:1px solid var(--td-accent);border-radius:7px;background:var(--td-accent);color:#fff;min-height:46px;padding:.65rem 1.25rem;font:inherit;font-weight:650;cursor:pointer;white-space:normal}
.tap-directory__button:hover{filter:brightness(.9)}
.tap-directory__button:disabled{opacity:.6;cursor:wait}
.tap-directory__search{display:flex;gap:.7rem;margin:0 0 1.4rem;align-items:stretch}
.tap-directory__search-field{display:flex;align-items:center;flex:1;min-width:0;gap:.8rem;border:1px solid var(--td-line);border-radius:7px;padding:0 1rem;background:#fff}
.tap-directory__search-field svg{width:22px;height:22px;flex-shrink:0;color:var(--td-muted)}
.tap-directory__search input[type=search]{min-width:0;width:100%;font:inherit;border:0;background:transparent;color:var(--td-ink);padding:.8rem 0;margin:0;box-shadow:none;height:auto}
.tap-directory__filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.tap-directory__filters a{padding:.42rem .85rem;border:1px solid var(--td-line);border-radius:6px;text-decoration:none;color:var(--td-ink);font-size:.9rem;min-height:40px;overflow-wrap:anywhere}
.tap-directory__filters a span{font-size:.8em;margin-left:.3em;opacity:.8}
.tap-directory__filters a[aria-current=true]{background:var(--td-accent);color:#fff;border-color:var(--td-accent)}
.tap-directory__filters a:hover{border-color:var(--td-accent);text-decoration:none}
.tap-directory__summary{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--td-line);padding:1rem 0 .2rem;color:var(--td-muted);font-size:.9rem}
.tap-directory__summary p{margin:0}
.tap-directory__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:2.5rem}
.tap-directory__card{padding:1.8rem 0;border-bottom:1px solid var(--td-line);min-width:0;overflow-wrap:anywhere}
.tap-directory__card h2{font-size:1.22rem;line-height:1.35;font-weight:700;margin:.2rem 0 .6rem}
.tap-directory__card h2 a{color:var(--td-ink);text-decoration:none}
.tap-directory__card h2 a:hover{color:var(--td-accent);text-decoration:underline}
.tap-directory__card p{margin:0 0 .55rem}
.tap-directory__card .tap-directory__category{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:650;color:var(--td-accent)}
.tap-directory__logo{display:block;max-width:100%;object-fit:contain;object-position:left center;margin:0 0 1rem}
.tap-directory__person{font-weight:550}
.tap-directory__teaser{color:var(--td-muted);font-size:.95rem}
.tap-directory__card address{font-style:normal;margin:.65rem 0;color:var(--td-muted)}
.tap-directory__contacts{list-style:none;margin:.6rem 0 0;padding:0}
.tap-directory__contacts li{margin:0;padding:0}
.tap-directory__contacts a{display:inline-flex;gap:.65rem;align-items:baseline;max-width:100%;text-decoration:none;padding:.24rem 0;font-size:.94rem;min-height:32px}
.tap-directory__contacts a:hover{text-decoration:underline}
.tap-directory__contacts svg{width:17px;height:17px;flex-shrink:0;align-self:flex-start;margin-top:.28rem}
.tap-directory__empty{padding:3rem 1rem;text-align:center;background:var(--td-soft);margin-top:1.5rem;border-radius:8px}
.tap-directory__empty h2{font-size:1.25rem}
.tap-directory__pagination{margin-top:2rem}
.tap-directory__pagination ul{display:flex;gap:.5rem;flex-wrap:wrap;list-style:none;padding:0}
.tap-directory__pagination a,.tap-directory__pagination span{display:block;padding:.3rem .65rem}
.tap-directory__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.tap-directory--detail{max-width:850px}
.tap-directory--detail .tap-directory__card{border:0}
.tap-directory__back{display:inline-block;margin-bottom:1rem}
.tap-directory__description{border-top:1px solid var(--td-line);padding-top:1.5rem;overflow-wrap:anywhere}
.tap-directory [hidden]{display:none!important}
.tap-directory__map{scroll-margin-top:110px}
.tap-directory__card[data-map-contact]{cursor:pointer;padding-left:1rem;padding-right:1rem;border-radius:9px;transition:background-color .15s,box-shadow .15s}
.tap-directory__card:is(:hover,:focus-within){background:var(--td-soft)}
.tap-directory__card.is-map-selected{background:#e2f1f5;box-shadow:inset 4px 0 var(--td-accent)}
.tap-directory__profile{display:inline-block;margin-top:.8rem;font-size:.88rem;min-height:32px}
.tap-directory__map-info{font-family:system-ui,sans-serif;font-size:14px;line-height:1.5;max-width:300px;overflow-wrap:anywhere;padding:0 5px 5px 0;color:var(--td-ink)}
.tap-directory__map-info h3{font-size:1.1rem;line-height:1.3;margin:.3rem 0 .7rem}
.tap-directory__map .tap-directory__map-info p{margin:0 0 .65rem;white-space:pre-line}
.tap-directory__map-info address{font-style:normal;margin-bottom:.65rem}
.tap-directory__map-info img{display:block;object-fit:contain;object-position:left;margin-bottom:.7rem;max-width:100%}
.tap-directory__map-info>a{display:block;padding:.4rem 0;color:var(--td-accent);min-height:32px}
@media(prefers-reduced-motion:reduce){.tap-directory__card[data-map-contact]{transition:none}}
@media(max-width:900px){.tap-directory__grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}}
@media(max-width:560px){.tap-directory__grid{grid-template-columns:minmax(0,1fr)}.tap-directory__map-consent{min-height:280px;padding:1.8rem 1rem}.tap-directory__map-canvas{height:320px}.tap-directory__search{flex-wrap:wrap}.tap-directory__search-field{flex-basis:100%}.tap-directory__search>.tap-directory__button{width:100%}.tap-directory__card{padding:1.4rem 0}.tap-directory__contacts a{min-height:40px}.tap-directory__filters a{min-height:44px}.tap-directory__heading{margin-bottom:1.5rem}}
