.poster-venues,.poster-place-page{--pv-ink:#18212f;--pv-muted:#697586;--pv-line:#e7ecf1;--pv-brand:#177f78;--pv-brand-dark:#0f615b;--pv-soft:#eff8f6;max-width:1120px;margin:0 auto 3rem;color:var(--pv-ink)}
.poster-venues a,.poster-place-page a{color:inherit}
.poster-venues a:focus-visible,.poster-place-page a:focus-visible{outline:3px solid #79c8be;outline-offset:3px}
.poster-venues__hero{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;padding:clamp(1.5rem,4vw,3rem);border:1px solid #e7efef;border-radius:24px;background:radial-gradient(circle at 92% 4%,rgba(255,255,255,.72),transparent 28%),linear-gradient(135deg,#edf8f5 0%,#f5f7fb 62%,#f1f3fb 100%)}
.poster-venues__eyebrow,.poster-place-eyebrow,.poster-place-section-label{display:block;color:var(--pv-brand-dark);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.poster-venues__hero h1{margin:.7rem 0 .55rem;font-size:clamp(2rem,4vw,3.1rem);line-height:1.06;letter-spacing:-.045em}
.poster-venues__hero p{margin:0;color:#536170;font-size:1.02rem;line-height:1.6}
.poster-venues__total{flex:0 0 auto;display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;border:1px solid rgba(23,127,120,.14);border-radius:16px;background:rgba(255,255,255,.72);box-shadow:0 8px 28px rgba(31,62,71,.06)}
.poster-venues__total strong{font-size:2rem;line-height:1;color:var(--pv-brand-dark);letter-spacing:-.04em}.poster-venues__total span{color:var(--pv-muted);font-size:.78rem;line-height:1.35}
.poster-venues__toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.25rem 0}
.poster-venues__search-wrap{display:flex;align-items:center;gap:.65rem;width:min(100%,520px);min-height:48px;padding:0 .85rem;border:1px solid var(--pv-line);border-radius:14px;background:#fff;box-shadow:0 5px 20px rgba(24,43,59,.035)}
.poster-venues__search-icon{color:var(--pv-muted);font-size:1.4rem;line-height:1;transform:rotate(-20deg)}
.poster-venues__search-wrap input{width:100%;border:0;outline:0;background:transparent;color:var(--pv-ink);font:inherit;font-size:.92rem}
.poster-venues__search-wrap input::placeholder{color:#929baa}.poster-venues__search-wrap kbd{padding:.15rem .38rem;border:1px solid var(--pv-line);border-radius:5px;color:var(--pv-muted);font-size:.72rem}
.poster-venues__result-count{color:var(--pv-muted);font-size:.86rem;white-space:nowrap}
.poster-venues__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.poster-venue-card{min-width:0;overflow:hidden;border:1px solid var(--pv-line);border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(24,43,59,.045);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.poster-venue-card:hover{transform:translateY(-3px);border-color:#c6ded9;box-shadow:0 16px 38px rgba(24,43,59,.09)}
.poster-venue-card__visual{position:relative;display:block;height:185px;overflow:hidden;background:linear-gradient(135deg,#dff1ed,#edf0f7);text-decoration:none}
.poster-venue-card__visual img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.poster-venue-card:hover .poster-venue-card__visual img{transform:scale(1.035)}
.poster-venue-card__placeholder{display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(circle at 72% 20%,rgba(255,255,255,.75),transparent 26%),linear-gradient(135deg,#dcefeb,#edf0f7)}
.poster-venue-card__placeholder span{display:grid;place-items:center;width:60px;height:60px;border:1px solid rgba(23,127,120,.2);border-radius:20px;background:rgba(255,255,255,.62);color:var(--pv-brand-dark);font-size:1.65rem;font-weight:750}
.poster-venue-card__open{position:absolute;right:.8rem;bottom:.8rem;padding:.45rem .7rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(19,34,45,.72);color:#fff;font-size:.76rem;font-weight:650;backdrop-filter:blur(8px)}
.poster-venue-card__body{padding:1rem 1.05rem 1.05rem}
.poster-venue-card__city{display:block;margin-bottom:.35rem;color:var(--pv-brand-dark);font-size:.75rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}
.poster-venue-card__body h2{margin:0;font-size:1.12rem;line-height:1.35;letter-spacing:-.02em}.poster-venue-card__body h2 a{text-decoration:none}.poster-venue-card__body h2 a:hover{color:var(--pv-brand-dark)}
.poster-venue-card__address{display:flex;gap:.4rem;margin:.55rem 0 0;color:var(--pv-muted);font-size:.85rem;line-height:1.45}.poster-venue-card__address span{color:var(--pv-brand)}
.poster-venue-card__description{display:-webkit-box;overflow:hidden;margin:.65rem 0 0;color:#536170;font-size:.85rem;line-height:1.5;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.poster-venue-card__footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.9rem;padding-top:.8rem;border-top:1px solid #f0f2f4}
.poster-venue-card__phone{color:var(--pv-muted)!important;font-size:.8rem;text-decoration:none}.poster-venue-card__schedule{color:var(--pv-brand-dark)!important;font-size:.82rem;font-weight:750;text-decoration:none}.poster-venue-card__schedule:hover{text-decoration:underline;text-underline-offset:3px}
.poster-venues__pagination{display:flex;justify-content:center;gap:.4rem;margin:1.5rem 0 0}.poster-venues__pagination a{display:grid;place-items:center;min-width:40px;height:40px;padding:0 .55rem;border:1px solid var(--pv-line);border-radius:12px;background:#fff;color:var(--pv-ink);font-size:.86rem;font-weight:700;text-decoration:none}.poster-venues__pagination a:hover{border-color:#a9d5cf;background:#f7fbfa}.poster-venues__pagination a[aria-current="page"]{border-color:var(--pv-brand);background:var(--pv-brand);color:#fff}
.poster-venues__empty,.poster-venues__empty-search,.poster-place-empty{padding:2.6rem 1.2rem;border:1px solid var(--pv-line);border-radius:18px;background:#f8fafb;text-align:center}.poster-venues__empty h2,.poster-venues__empty-search h2{margin:0;font-size:1.15rem}.poster-venues__empty p,.poster-venues__empty-search p{margin:.5rem 0 0;color:var(--pv-muted)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.poster-place-breadcrumbs{display:flex;gap:.55rem;align-items:center;margin:0 0 1rem;color:var(--pv-muted);font-size:.86rem}.poster-place-breadcrumbs a{color:var(--pv-brand-dark);text-decoration:none}.poster-place-breadcrumbs a:hover{text-decoration:underline}
.poster-place-hero{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);overflow:hidden;border:1px solid var(--pv-line);border-radius:24px;background:#fff;box-shadow:0 12px 38px rgba(24,43,59,.06)}
.poster-place-cover{min-height:330px;background:linear-gradient(135deg,#dcefeb,#edf0f7)}.poster-place-cover img{display:block;width:100%;height:100%;min-height:330px;object-fit:cover}.poster-place-cover__empty{display:grid;place-items:center;width:100%;height:100%;min-height:330px;background:radial-gradient(circle at 72% 20%,rgba(255,255,255,.7),transparent 28%),linear-gradient(135deg,#dcefeb,#edf0f7)}.poster-place-cover__empty span{color:rgba(15,97,91,.55);font-size:.8rem;font-weight:850;letter-spacing:.22em}
.poster-place-summary{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(1.5rem,4vw,3rem)}.poster-place-summary h1{margin:.7rem 0 .3rem;font-size:clamp(2rem,4vw,3rem);line-height:1.05;letter-spacing:-.045em}.poster-place-city{margin:0;color:var(--pv-brand-dark);font-weight:700}
.poster-place-contacts{display:grid;gap:.65rem;margin:1.2rem 0}.poster-place-contacts p{display:flex;gap:.65rem;align-items:flex-start;margin:0;color:var(--pv-muted);line-height:1.5}.poster-place-contacts p>span:first-child{flex:0 0 1.1rem;color:var(--pv-brand);font-size:1.1rem;text-align:center}.poster-place-contacts a{text-decoration:none}.poster-place-contacts a:hover{color:var(--pv-brand-dark);text-decoration:underline}
.poster-place-schedule-link{display:inline-flex;align-items:center;gap:.55rem;margin-top:auto;padding:.7rem .9rem;border-radius:999px;background:var(--pv-brand);color:#fff!important;font-size:.88rem;font-weight:750;text-decoration:none;transition:background .18s ease,transform .18s ease}.poster-place-schedule-link:hover{background:var(--pv-brand-dark);transform:translateY(-1px)}.poster-place-schedule-link span{display:grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .3rem;border-radius:999px;background:rgba(255,255,255,.2)}
.poster-place-description,.poster-place-schedule{margin-top:1.25rem;padding:clamp(1.2rem,2.8vw,1.8rem);border:1px solid var(--pv-line);border-radius:20px;background:#fff;box-shadow:0 10px 36px rgba(24,43,59,.045)}
.poster-place-description h2,.poster-place-schedule-heading h2{margin:.25rem 0 0;font-size:1.4rem;line-height:1.25;letter-spacing:-.025em}.poster-place-description>div{margin-top:.75rem;color:#4d5a69;font-size:.96rem;line-height:1.75;overflow-wrap:anywhere}
.poster-place-schedule-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--pv-line)}.poster-place-period{color:var(--pv-muted);font-size:.82rem}
.poster-place-day-list{display:grid;gap:.9rem;margin-top:1rem}.poster-place-day{overflow:hidden;border:1px solid var(--pv-line);border-radius:16px;background:#fff}.poster-place-day-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;background:linear-gradient(90deg,#f2f9f7,#fafbfd);border-bottom:1px solid var(--pv-line)}.poster-place-day-heading time{display:flex;align-items:baseline;gap:.6rem;text-transform:capitalize}.poster-place-day-heading time span{color:var(--pv-brand-dark);font-size:.76rem;font-weight:800;letter-spacing:.04em}.poster-place-day-heading time strong{font-size:1rem;letter-spacing:-.01em}.poster-place-day-count{padding:.32rem .6rem;border-radius:999px;background:#fff;color:var(--pv-muted);font-size:.75rem;font-weight:700;white-space:nowrap}
.poster-place-events{list-style:none;margin:0;padding:.25rem 1rem}.poster-place-events li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.8rem 0;border-bottom:1px solid #f0f2f4}.poster-place-events li:last-child{border-bottom:0}.poster-place-event-dot{width:8px;height:8px;border-radius:50%;background:var(--pv-brand);box-shadow:0 0 0 4px var(--pv-soft)}.poster-place-event-main{display:grid;gap:.25rem;min-width:0}.poster-place-event-main>a,.poster-place-event-main>strong{font-size:.94rem;line-height:1.4;font-weight:700;text-decoration:none;overflow-wrap:anywhere}.poster-place-event-main>a:hover{color:var(--pv-brand-dark);text-decoration:underline;text-underline-offset:3px}.poster-place-event-times{color:var(--pv-muted);font-size:.82rem}.poster-place-event-time-badge{padding:.38rem .58rem;border-radius:9px;background:var(--pv-soft);color:var(--pv-brand-dark);font-size:.79rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.poster-place-empty>span{display:block;margin-bottom:.45rem;color:var(--pv-brand);font-size:1.5rem}.poster-place-empty h3{margin:0;font-size:1.08rem}.poster-place-empty p{margin:.45rem 0 0;color:var(--pv-muted)}.poster-place-truncated{margin:1rem 0 0;padding:.75rem .9rem;border-radius:10px;background:#fff8e8;color:#80622a;font-size:.87rem}
@media(max-width:900px){.poster-venues__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.poster-place-hero{grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr)}}
@media(max-width:640px){.poster-venues__hero{align-items:flex-start;flex-direction:column;gap:1rem;border-radius:18px}.poster-venues__toolbar{align-items:flex-start;flex-direction:column}.poster-venues__search-wrap{width:100%}.poster-venues__grid{grid-template-columns:1fr;gap:.8rem}.poster-venue-card{display:grid;grid-template-columns:minmax(100px,.38fr) minmax(0,1fr)}.poster-venue-card__visual{height:100%;min-height:190px}.poster-venue-card__open{right:.45rem;bottom:.45rem;padding:.35rem .45rem;font-size:.68rem}.poster-venue-card__body{padding:.85rem}.poster-venue-card__body h2{font-size:1rem}.poster-venue-card__description{font-size:.8rem;-webkit-line-clamp:2}.poster-venue-card__footer{align-items:flex-start;flex-direction:column;gap:.45rem}.poster-place-hero{grid-template-columns:1fr;border-radius:18px}.poster-place-cover,.poster-place-cover img,.poster-place-cover__empty{min-height:210px;height:210px}.poster-place-summary{padding:1.3rem}.poster-place-summary h1{font-size:2rem}.poster-place-period{max-width:145px;text-align:right;line-height:1.4}.poster-place-day-heading{padding:.75rem}.poster-place-events{padding:.15rem .75rem}.poster-place-events li{grid-template-columns:10px minmax(0,1fr);gap:.55rem}.poster-place-event-time-badge{grid-column:2;justify-self:start;margin-top:.05rem}.poster-place-schedule-heading h2,.poster-place-description h2{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.poster-venues *,.poster-place-page *{scroll-behavior:auto!important;transition:none!important}}

.poster-place-edit-link,.poster-place-delete-link{display:inline-flex;align-items:center;gap:.4rem;margin:.9rem .5rem 0 0;padding:.65rem .9rem;border:1px solid #b8d9d4;border-radius:11px;background:#fff;color:#0f615b!important;font-size:.86rem;font-weight:750;text-decoration:none;box-shadow:0 4px 16px rgba(24,43,59,.04)}.poster-place-edit-link:hover{border-color:#177f78;background:#eff8f6}.poster-place-delete-link{border-color:#f0c8c8;color:#9a3030!important}.poster-place-delete-link:hover{border-color:#d88;background:#fff6f6}
.poster-venues__add-place{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1rem;border-radius:12px;background:var(--pv-brand);color:#fff!important;font-size:.88rem;font-weight:750;text-decoration:none;white-space:nowrap}.poster-venues__add-place:hover{background:var(--pv-brand-dark)}
