.tv-directory{--tv-green:#236348;--tv-cream:#faf4e9;--tv-ink:#18372c;color:var(--tv-ink);width:100%;max-width:1320px;margin:0 auto;padding:32px 0;font-family:inherit;box-sizing:border-box}.tv-directory *{box-sizing:border-box}.tv-directory h2{font-size:clamp(30px,4vw,48px);line-height:1.15;margin:0 0 28px}.tv-filters{margin:0 0 20px}.tv-categories{display:flex;flex-wrap:wrap;gap:10px;border:0;margin:0 0 24px;padding:0}.tv-categories legend{font-size:14px;margin:0 0 12px;font-weight:600}.tv-pill{position:relative;cursor:pointer;margin:0}.tv-pill input{position:absolute;opacity:0;width:1px;height:1px}.tv-pill span{display:block;border:1px solid var(--tv-green);border-radius:999px;padding:12px 22px;font-size:16px;line-height:1.4;background:transparent;color:var(--tv-green)}.tv-pill input:checked+span{background:var(--tv-green);color:#fff}.tv-pill input:focus-visible+span{outline:3px solid #b87c28;outline-offset:3px}.tv-controls{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.tv-controls label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600;flex:1 1 170px}.tv-controls label:first-child{flex-grow:2}.tv-controls input,.tv-controls select{width:100%;height:48px;border:1px solid #c9c9ba;border-radius:12px;background:#fff;color:var(--tv-ink);padding:10px 14px;font:inherit}.tv-directory .tv-apply,.tv-directory .tv-website{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--tv-green);border:1px solid var(--tv-green);border-radius:999px;padding:12px 20px;color:#fff;font:inherit;text-decoration:none;line-height:1.4;cursor:pointer}.tv-clear{padding:12px 0;color:var(--tv-green);font-size:14px}.tv-count{font-size:14px;color:#726c5f;margin:24px 0 16px}.tv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch}.tv-card{background:#fff;border:1px solid #deded2;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;min-width:0;box-shadow:0 5px 18px #233a2910}.tv-image{aspect-ratio:3/2;overflow:hidden}.tv-image img{width:100%;height:100%;object-fit:cover;display:block}.tv-body{padding:24px;display:flex;flex-direction:column;flex:1;align-items:flex-start}.tv-directory .tv-card h3{font-size:24px;line-height:1.2;margin:0 0 8px;color:var(--tv-ink);overflow-wrap:anywhere}.tv-directory .tv-eyebrow{text-transform:uppercase;font-size:11px;font-weight:600;letter-spacing:.09em;color:var(--tv-green);margin:0 0 14px}.tv-directory .tv-town{font-size:14px;color:#726c5f;margin:0 0 18px}.tv-description,.tv-address,.tv-phone{font-size:15px;line-height:1.65;margin:0 0 18px;overflow-wrap:anywhere}.tv-address strong,.tv-phone strong{font-size:12px;color:#726c5f}.tv-phone a{color:var(--tv-green)}.tv-directory .tv-website{margin-top:auto;font-size:14px;padding:10px 16px}.tv-website:hover,.tv-apply:hover{filter:brightness(.9)}.tv-directory a:focus-visible,.tv-directory button:focus-visible{outline:3px solid #b87c28;outline-offset:3px}.tv-pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:32px;font-size:15px}.tv-pagination a{color:var(--tv-green);text-decoration:underline}.tv-message{padding:24px;background:var(--tv-cream);border-radius:12px}@media(max-width:1100px){.tv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.tv-grid{grid-template-columns:1fr;gap:18px}.tv-directory{padding:24px 0}.tv-body{padding:22px}.tv-controls{gap:12px}.tv-controls label{flex-basis:100%}.tv-pill span{padding:10px 16px;font-size:14px}}
.tv-google{margin-top:auto;padding-top:16px;width:100%}.tv-map{display:block;font-size:14px;color:var(--tv-green);margin-bottom:12px}.tv-load-rating{background:transparent;border:1px solid #c9c9ba;border-radius:999px;padding:8px 12px;font:inherit;font-size:13px;cursor:pointer;color:var(--tv-green)}.tv-google-data{border:1px solid #deded2;border-radius:10px;padding:12px;margin:12px 0;background:#fff;color:#1f1f1f;font-size:14px}.tv-google-attribution{font-family:Arial,sans-serif;font-style:normal;font-weight:400;font-size:12px;letter-spacing:normal;white-space:nowrap;color:#5e5e5e}.tv-google-data p{margin:8px 0 0}.tv-rating-result{font-size:13px;line-height:1.5}.tv-directory .tv-website{margin-top:16px}

/* Personal editorial recommendation; independent of Google ratings. */
.tv-card .tv-image{position:relative}
.tv-directory .tv-pick{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:8px 12px;border-radius:999px;background:#f2cc75;color:#493610;font-size:12px;font-weight:700;line-height:1.35;box-shadow:0 2px 8px #00000014}
.tv-card .tv-image .tv-pick{position:absolute;top:12px;left:12px;max-width:calc(100% - 24px)}
.tv-card .tv-body>.tv-pick{margin-bottom:16px}

.tv-directory .tv-hours{list-style:none;padding:0;margin:12px 0;font-size:13px;line-height:1.7}.tv-directory .tv-hours-note{font-size:12px;color:#726c5f}.tv-load-rating{margin-bottom:8px}

.tv-directory .tv-setting{width:100%;margin:0 0 18px}.tv-directory .tv-setting-heading{font-size:12px;font-weight:700;margin:0 0 8px;color:#726c5f}.tv-directory .tv-setting-tags{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;padding:0;margin:0 0 12px}.tv-directory .tv-setting-tags li{font-size:13px;line-height:1.5;color:var(--tv-green);margin:0;padding:0;background:none}.tv-directory .tv-setting-tags li:before,.tv-directory .tv-setting-tags li:after{display:none!important}.tv-directory .tv-explorer-tip{font-size:14px;line-height:1.6;margin:0;padding-left:12px;border-left:2px solid #edca7b}.tv-directory .tv-explorer-tip strong{font-size:12px}
.tv-directory .tv-more{display:inline-flex;align-items:center;justify-content:center;background:var(--tv-green);color:#fff;border:1px solid var(--tv-green);border-radius:999px;padding:12px 24px;font:inherit;text-decoration:none;cursor:pointer}.tv-directory .tv-more:disabled{opacity:.65;cursor:default}.tv-directory .tv-pagination{flex-wrap:wrap}.tv-more-status{font-size:14px}

.tv-extra-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin:16px 0}.tv-extra-filters>label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600;flex:1 1 180px}.tv-extra-filters select{width:100%;height:48px;border:1px solid #c9c9ba;border-radius:12px;background:#fff;color:var(--tv-ink);padding:10px 14px;font:inherit}.tv-extra-filters>.tv-picks-filter{flex-direction:row;align-items:center;min-height:48px}.tv-picks-filter input{width:18px;height:18px;accent-color:var(--tv-green)}.tv-directory .tv-price{font-size:13px;line-height:1.6;margin:0 0 12px;color:var(--tv-green)}
