.tp-page{min-height:65vh;padding:clamp(2.5rem,5vw,4.5rem) 0 4rem;background:linear-gradient(135deg,var(--accent-light),var(--bg-white) 52%,var(--bg-warm))}.tp-intro{margin-bottom:2rem}.tp-intro h1{font:800 clamp(2.65rem,5.3vw,4.3rem)/1.08 var(--display);letter-spacing:-.04em;color:var(--text-primary);margin-bottom:.8rem}.tp-intro h1 span{color:var(--accent-text)}.tp-intro>p{max-width:560px;color:var(--text-secondary);font-size:1.08rem;line-height:1.45}.tp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;list-style:none;padding:0}.tp-grid>li{min-width:0}.tp-card{height:100%;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:24px;background:var(--surface);scroll-margin-top:90px}.tp-photo{aspect-ratio:16/10;background:var(--accent-light);overflow:hidden}.tp-photo img{width:100%;height:100%;object-fit:cover;display:block}.tp-photo img[hidden],.tp-photo-missing[hidden]{display:none}.tp-photo-missing{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:var(--text-secondary)}.tp-photo-missing>span{font-size:3rem;line-height:1.2}.tp-photo-missing>p{font-size:.9rem}.tp-body{flex:1;display:flex;flex-direction:column;padding:1.25rem}.tp-body h2{font:800 1.25rem/1.3 var(--body);margin-bottom:.65rem;overflow-wrap:anywhere}.tp-address{display:flex;align-items:baseline;gap:.35rem;font-size:.95rem;line-height:1.5;color:var(--text-secondary);overflow-wrap:anywhere;margin-bottom:1.25rem}.tp-address>span{flex:none}.tp-directions{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;margin-top:auto;padding:.6rem .85rem;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--accent-text);font-size:.95rem;font-weight:600;transition:background .2s,border-color .2s}.tp-directions:hover{background:var(--accent-light);border-color:var(--accent)}.tp-empty{padding:2rem;border:1px solid var(--border);border-radius:24px;background:var(--surface);color:var(--text-secondary)}@media(max-width:950px){.tp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.tp-page{padding:2rem 0 3rem}.tp-grid{grid-template-columns:minmax(0,1fr)}.tp-intro{margin-bottom:1.5rem}.tp-body{padding:1rem}}@media(prefers-reduced-motion:reduce){.tp-directions{transition:none}}
