/* Optional venue identity logo, independent of covers and existing fonts. */
.venue-name-with-logo { display:flex; align-items:center; gap:12px; min-width:0; }
.venue-name-with-logo h1,.venue-name-with-logo h3 { min-width:0; overflow-wrap:anywhere; }
.venue-name-with-logo > a,.venue-name-with-logo > span { min-width:0; overflow-wrap:anywhere; }
.venue-brand-logo { display:block; flex:0 0 auto; width:48px; height:48px; max-width:100%; object-fit:contain; background:#fff; border:1px solid #e1e6ef; border-radius:10px; padding:4px; box-sizing:border-box; }
.detail-head .venue-brand-logo { width:72px; height:72px; }
@media(max-width:480px) { .detail-head .venue-brand-logo { width:52px; height:52px; } }
.card-visual { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
.card-art.has-visual:not(.is-logo) { height:auto; aspect-ratio:4/3; padding:0; background:#101827; }
.card-art.has-visual:not(.is-logo):not(.is-cover-photo) { display:block; aspect-ratio:auto; background:transparent; }
.card-art.has-visual:not(.is-logo):not(.is-cover-photo) .card-visual { position:static; inset:auto; height:auto; max-height:none; }
.venue-grid { align-items:start; }
.card-art.is-cover-photo .card-visual { object-fit:cover; }
.card-art.has-visual.is-logo { background:#fff; }
.card-art.has-visual::before,.card-art.has-visual::after { display:none; }
.card-art.is-logo .card-visual { object-fit:contain; padding:18px 24px; }
.venue-visual { width:100%; max-width:100%; overflow:hidden; }
.venue-visual:not(.is-logo) { height:clamp(220px,56vw,420px); background:#101827; }
.venue-visual img { display:block; width:100%; max-width:100%; height:100%; max-height:420px; object-fit:contain; }
.venue-visual:not(.is-logo):not(.is-cover-photo) { height:auto; background:transparent; }
.venue-visual:not(.is-logo):not(.is-cover-photo) img { height:auto; max-height:none; }
.venue-visual.is-cover-photo img { object-fit:cover; }
.venue-visual.is-logo img { height:230px; object-fit:contain; padding:24px; background:#fff; box-sizing:border-box; }
