.prose { text-align: justify; }
.listing-note { max-width: 72rem; text-align: justify; }
.card-image { position: relative; display: block; overflow: hidden; border: 3px solid #cf0000; }
.card-image img { width: 100%; height: 260px; object-fit: cover; display: block; }
.vip-label { position: absolute; z-index: 2; top: .7rem; left: .7rem; padding: .25rem .65rem; color: #fff; background: #cf0000; font-weight: 700; letter-spacing: .08em; border-radius: .2rem; }
.card-service { margin: -.65rem 0 .8rem; color: #cf0000; font-weight: 700; }
.card-copy { text-align: justify; min-height: 6.25rem; }
.regional-copy .copy-block { margin-bottom: 3rem; }
.city-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.city-card { display: flex; flex-direction: column; border: 1px solid rgba(210,215,217,.75); padding: 1.2rem; transition: border-color .2s, transform .2s; }
.city-card:hover { border-color: #cf0000; transform: translateY(-2px); }
.city-card span { color: #7f888f; font-size: .9rem; margin-top: .3rem; }
.city-cloud { display: flex; flex-wrap: wrap; gap: .5rem; }
.city-cloud a { border: 1px solid #d6d9dc; border-radius: 2rem; padding: .35rem .7rem; font-size: .88rem; }
.profile-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(20rem,.95fr); gap: 3rem; align-items: start; }
.profile-photo { width: 100%; max-height: 760px; object-fit: contain; background: #f1f1f1; border: 3px solid #cf0000; }
.profile-service { color: #cf0000; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.breadcrumbs { margin-bottom: 2rem; }
.regional-banner .image img { object-position: center; }
.error-page { min-height: 55vh; }
@media screen and (max-width: 980px) { .city-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .profile-grid { grid-template-columns: 1fr; } }
@media screen and (max-width: 600px) { .city-grid { grid-template-columns: 1fr; } .card-image img { height: 310px; } .card-copy { min-height: 0; } }

