/* Loaded by single-business.php only. Never target shared listing components. */
.vsm-business-single .details { min-width: 0; margin-top: 0 !important; }
.vsm-business-single .details > h1 { padding-bottom: 0; margin-bottom: 24px; }
.vsm-business-single .details > h1::after { content: ""; display: block; width: 76px; height: 3px; margin-top: 14px; background: #f29a16; border-radius: 2px; }
.vsm-business-single .vsm-business-contacts {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    padding: 12px;
    margin: 0 0 28px;
    border: 1px solid #d4e4ec;
    border-radius: 16px;
    background: #eef5f8;
    color: #122744;
    text-align: left;
}
.vsm-business-single .vsm-business-contact {
    flex: 1 1 190px;
    min-width: 0;
    padding: 10px 12px 10px 58px;
    position: relative;
}
.vsm-business-single .vsm-business-contact:only-child { flex: 0 1 340px; }
.vsm-business-single .vsm-business-contacts:has(> .vsm-business-contact:only-child) { width: fit-content; max-width: 100%; }
.vsm-business-single .vsm-business-contact + .vsm-business-contact::before {
    content: "";
    position: absolute;
    left: -1px;
    top: 10px;
    bottom: 10px;
    width: 1px;
    background: #d2e1e8;
}
.vsm-business-single .vsm-business-contact dt {
    color: #4f616c;
    font-size: 11px;
    line-height: 1.5;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin: 0;
}
.vsm-business-single .vsm-business-contact-icon {
    position: absolute;
    left: 10px;
    top: 12px;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: #fff;
    background: #008f96;
}
.vsm-business-single .vsm-business-contact-icon svg { width: 20px; height: 20px; }
.vsm-business-single .vsm-business-contact dd { margin: 0; font-size: 14px; line-height: 1.6; }
.vsm-business-single .vsm-business-contact dd > * { display: block; overflow-wrap: anywhere; }
.vsm-business-single .vsm-business-contact dd > a { padding: 4px 0; color: #075b8c; text-decoration: underline; text-underline-offset: 2px; }
.vsm-business-single .vsm-business-contact dd > a:hover { color: #006d73; }
.vsm-business-single .vsm-business-contact dd > a:focus-visible { outline: 2px solid #006d73; outline-offset: 3px; border-radius: 2px; }
.vsm-business-single .vsm-business-about h2 { margin: 0 0 18px; font-family: Montserrat, Arial, sans-serif !important; font-size: clamp(22px, 2vw, 28px); line-height: 1.3; font-weight: 700; text-align: left; }
.vsm-business-single .vsm-business-about h2::after { content: ""; display: block; width: 66px; height: 3px; margin-top: 10px; background: #00a6a9; border-radius: 2px; }
.vsm-business-single .vsm-business-description { font-size: 15px; line-height: 1.7; text-align: left; overflow-wrap: anywhere; max-width: 100%; overflow-x: auto; }
.vsm-business-single .vsm-business-description p { margin: 0 0 1em; }
@media (min-width: 768px) and (max-width: 991px) {
    .vsm-business-single .vsm-business-contact { flex-basis: calc(50% - 1px); padding-left: 12px; }
    .vsm-business-single .vsm-business-contact-icon { position: static; margin-bottom: 8px; }
    .vsm-business-single .vsm-business-contact:nth-child(odd)::before { display: none; }
}
@media (min-width: 992px) {
    /* The retained half-width detail column fits two readable contact items. */
    .vsm-business-single .vsm-business-contact:nth-child(odd)::before { display: none; }
}
@media (max-width: 767px) {
    .vsm-business-single .details > h1 { margin-top: 22px; margin-bottom: 20px; }
    .vsm-business-single .vsm-business-contacts { padding: 8px 12px; margin-bottom: 24px; }
    .vsm-business-single .vsm-business-contact,
    .vsm-business-single .vsm-business-contact:only-child { flex: 1 1 100%; padding-top: 12px; padding-bottom: 12px; }
    .vsm-business-single .vsm-business-contact + .vsm-business-contact::before { top: 0; left: 10px; right: 10px; bottom: auto; width: auto; height: 1px; }
    .vsm-business-single .vsm-business-contact dd > a { min-height: 44px; display: flex; align-items: center; }
}
