.places-page{max-width:980px;margin:0 auto;padding:24px 16px 96px}.places-cat-section{margin:40px 0}.places-cat-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;gap:12px}.places-cat-title{font-size:clamp(20px,2.6vw,26px);font-weight:800;margin:0;letter-spacing:-.015em;color:var(--text);display:inline-flex;align-items:center;gap:8px}.places-cat-dot{display:inline-block;width:12px;height:12px;border-radius:4px}.places-cat-count{font-size:13px;color:var(--text3);font-weight:600;letter-spacing:.04em;text-transform:uppercase;flex:0 0 auto}.places-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.guide-loc-place.is-cat-beach{border-left:3px solid #ff5a5a}.guide-loc-place.is-cat-view{border-left:3px solid #44dd66}.guide-loc-place.is-cat-temple{border-left:3px solid #ffaa33}.guide-loc-place.is-cat-nature{border-left:3px solid #33cc88}.guide-loc-place.is-cat-market{border-left:3px solid #ffd34a}.guide-loc-place.is-cat-food{border-left:3px solid #ff7744}.guide-loc-place.is-cat-photo{border-left:3px solid #55bbff}.guide-loc-place.is-cat-top{border-left:3px solid #eab308}.places-place-meta{font-size:12px;color:var(--text3);font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-top:4px}.places-map-cta{margin-top:32px;background:linear-gradient(135deg,var(--primary-l) 0%,#FFF7E9 100%);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 24px;display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap}.places-map-cta-text{flex:1;min-width:220px}.places-map-cta-text h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text)}.places-map-cta-text p{margin:0;font-size:14px;color:var(--text2);line-height:1.5}.places-map-btn{display:inline-flex;align-items:center;gap:8px;background:var(--primary);color:#fff;padding:12px 20px;border-radius:var(--radius-sm);text-decoration:none;font-weight:700;font-size:14px;min-height:44px;transition:background .15s,transform .1s}.places-map-btn:hover{background:var(--primary-m)}.places-map-btn:active{transform:scale(.98)}@media (max-width: 640px){.places-page{padding:16px 14px 80px}.places-map-cta{padding:18px 20px}}
