/* Final contact alignment pass loaded after the theme overrides. */
#contact .contact-card {
    overflow: hidden !important;
}

#contact .contact-info {
    padding: clamp(2.35rem, 3.2vw, 3.05rem) clamp(2.45rem, 3.5vw, 3.25rem) !important;
}

#contact .contact-info-head {
    margin-bottom: 1.55rem !important;
    padding-bottom: 1.45rem !important;
}

#contact .contact-info-list {
    display: grid !important;
    gap: 1.18rem !important;
    margin-bottom: 1.7rem !important;
}

#contact .contact-info-item,
#contact .contact-info-item:has(.contact-hours) {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) !important;
    column-gap: 1rem !important;
    align-items: start !important;
}

#contact .contact-info-icon {
    width: 38px !important;
    height: 38px !important;
    margin-top: 0.05rem !important;
    border-radius: 14px !important;
}

#contact .contact-info-body {
    min-width: 0 !important;
    width: 100% !important;
}

#contact .contact-info-label {
    display: block !important;
    margin: 0 0 0.38rem !important;
    line-height: 1 !important;
}

#contact .contact-info-value {
    display: inline-block !important;
    line-height: 1.45 !important;
}

#contact .contact-hours {
    display: grid !important;
    width: min(100%, 18rem) !important;
    margin: 0.08rem 0 0 !important;
    gap: 0.45rem !important;
}

#contact .contact-hours li {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

#contact .contact-hours .row {
    display: grid !important;
    grid-template-columns: 4.3rem minmax(0, 1fr) !important;
    align-items: baseline !important;
    column-gap: 0.95rem !important;
    width: 100% !important;
    margin: 0 !important;
}

#contact .contact-hours .row > * {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: initial !important;
}

#contact .contact-hours p {
    grid-column: 1 !important;
    font-weight: 600 !important;
    color: rgba(74, 31, 45, 0.78) !important;
}

#contact .contact-hours span {
    grid-column: 2 !important;
    color: rgba(74, 31, 45, 0.62) !important;
    white-space: nowrap !important;
}

#contact .contact-hours .fw-bold.text-primary,
#contact .contact-hours p.fw-bold.text-primary,
#contact .contact-hours span.fw-bold.text-primary {
    color: #4f1f30 !important;
    font-weight: 700 !important;
}

#contact .contact-info-foot {
    display: grid !important;
    grid-template-columns: auto minmax(11.8rem, 12.4rem) !important;
    align-items: center !important;
    gap: 1.25rem !important;
    margin-top: auto !important;
    padding-top: 1.55rem !important;
}

#contact .contact-social {
    display: flex !important;
    align-items: center !important;
    gap: 0.55rem !important;
}

#contact .contact-social a {
    width: 36px !important;
    height: 36px !important;
    border-radius: 0 !important;
}

#contact .contact-info-foot .button {
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    justify-content: center !important;
    letter-spacing: 0.24em !important;
}

@media (max-width: 991.98px) {
    #contact .contact-info {
        padding: 2rem 1.65rem !important;
    }
}

@media (max-width: 575.98px) {
    #contact .contact-info-item,
    #contact .contact-info-item:has(.contact-hours) {
        grid-template-columns: 36px minmax(0, 1fr) !important;
        column-gap: 0.85rem !important;
    }

    #contact .contact-hours {
        width: 100% !important;
    }

    #contact .contact-hours .row {
        grid-template-columns: 3.75rem minmax(0, 1fr) !important;
        column-gap: 0.65rem !important;
    }

    #contact .contact-info-foot {
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
    }
}
