.icon-svg {
    display: inline-flex;
    flex-shrink: 0;
    line-height: 1;
}

.icon-svg svg {
    display: block;
    width: 100%;
    height: 100%;
    padding: 8%;
}

.studios-hours-badge { left: 1rem; top: 1rem; }
.studios-map-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    padding: 0 16px 16px;
    font-size: clamp(10px, 2.8vw, 12px);
    font-weight: 600;
    color: #842340;
}
.studios-map-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 0;
    min-height: 44px;
    padding: 0 4px;
    border: 1px solid #f3d7e2;
    border-radius: 1rem;
    background: #fff;
    white-space: nowrap;
    transition: background-color .15s;
}
.studios-map-actions a:hover { background: #fff7fa; }
.studios-map-actions a:focus-visible { outline: 2px solid #fe004c; outline-offset: 2px; }
.studios-map-actions img, .studios-map-rating svg { flex-shrink: 0; width: 14px; height: 14px; }
.studios-map-rating { display: inline-flex; align-items: center; gap: 2px; color: #1f2430; }
.studios-map-rating svg { color: #fc0; }
@media (max-width: 379px) { .studios-hours-badge { left: .5rem; top: .5rem; } }

.cms-banner {
    display: block;
    width: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 2rem;
    padding: 0;
    background: transparent;
    color: inherit;
    box-shadow: 0 8px 24px rgba(31, 36, 48, .08);
    cursor: default;
}

a.cms-banner,
button.cms-banner { cursor: pointer; }

.cms-banner picture,
.cms-banner img {
    display: block;
    width: 100%;
    height: auto;
}

.cms-banner:focus-visible {
    outline: 3px solid rgba(254, 0, 76, .38);
    outline-offset: 3px;
}

.news-prose .cms-banner { margin: 1.5rem 0; }
