.media img,
.gallery img {
    width: 100%;
    border-radius: var(--nw-radius-lg);
}

.media {
    margin-inline: auto;
}

.media--narrow {
    max-width: 48rem;
}

.media--standard {
    max-width: 72rem;
}

.media--wide {
    max-width: 88rem;
}

.media--full {
    width: 100%;
    max-width: none;
}

.media figcaption,
.video figcaption {
    margin-block-start: var(--nw-space-3);
    color: var(--nw-muted);
    font-size: var(--nw-text-sm);
}

.gallery img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    box-shadow: var(--nw-shadow-sm);
}

.video__frame {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: var(--nw-radius-lg);
    background: var(--nw-ink);
    box-shadow: var(--nw-shadow-md);
}

.video__frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.related-pages {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nw-space-3);
}

.related-pages a {
    padding: 0.65rem 1rem;
    border: 1px solid var(--nw-border);
    border-radius: var(--nw-radius-pill);
    background: var(--nw-surface-raised);
    font-weight: 700;
    text-decoration: none;
}

.related-pages a:hover {
    border-color: var(--nw-primary);
    background: var(--nw-primary-soft);
}

.contact-card,
.location-card {
    display: grid;
    max-width: 48rem;
    gap: var(--nw-space-3);
}

.contact-card address,
.location-card address {
    font-style: normal;
}

.opening-hours {
    max-width: 44rem;
}

.opening-hours div {
    display: flex;
    justify-content: space-between;
    gap: var(--nw-space-8);
    padding-block: var(--nw-space-3);
    border-block-end: 1px solid var(--nw-border);
}

.opening-hours dt {
    font-weight: 720;
}

.opening-hours dd {
    margin: 0;
    text-align: end;
}
