.subhero-bg {
    background: linear-gradient(180deg, #F4F4F6 0%, #DEE5F0 100%);
}

.loc-card {
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 16px;
    overflow: hidden;
    transition: all .35s cubic-bezier(.22, 1, .36, 1);
    display: flex;
    flex-direction: column;
}
.loc-card:hover {
    border-color: #E11D27;
    box-shadow: 0 24px 48px -16px rgba(15, 23, 56, .15);
    transform: translateY(-2px);
}
.loc-bar {
    height: 6px;
    background: #E5E7EB;
    transition: background .25s;
    flex-shrink: 0;
}
.loc-card:hover .loc-bar,
.loc-card.featured .loc-bar { background: #E11D27; }

.map-placeholder {
    background:
        linear-gradient(135deg, rgba(15,23,56,.04) 25%, transparent 25%) 0 0/22px 22px,
        linear-gradient(225deg, rgba(15,23,56,.04) 25%, transparent 25%) 0 0/22px 22px,
        linear-gradient(45deg, rgba(15,23,56,.04) 25%, transparent 25%) 0 0/22px 22px,
        linear-gradient(315deg, rgba(15,23,56,.04) 25%, transparent 25%) 0 0/22px 22px,
        #EEF2FA;
    position: relative;
}

.loc-card .map-placeholder {
    height: 176px;
    flex-shrink: 0;
}
.map-placeholder::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(90deg, rgba(63,73,174,.18) 1px, transparent 1px),
        linear-gradient(rgba(63,73,174,.18) 1px, transparent 1px);
    background-size: 40px 40px;
    -webkit-mask-image: radial-gradient(circle at 60% 50%, #000 30%, transparent 75%);
    mask-image: radial-gradient(circle at 60% 50%, #000 30%, transparent 75%);
    pointer-events: none;
    z-index: 1;
}
.map-pin {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
}

.sede-card .map-pin {
    left: 50%;
}

.sede-card .map-pin > span {
    width: 3rem;
    height: 3rem;
    flex-shrink: 0;
}

.sede-card .map-placeholder > span > span {
    width: .375rem;
    height: .375rem;
    flex-shrink: 0;
}

.sede-card {
    background:
        url('../images/bg_mis_estudios.png') right bottom / auto 105% no-repeat,
        #EEF2FA;
    box-shadow: 0 12px 32px -12px rgba(15, 23, 56, .12);
    display: grid;
    grid-template-columns: 1fr;
}
.sede-card > .sede-map {
    min-height: 300px;
    position: relative;
}
.sede-card > .sede-info {
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 2;
}
@media (min-width: 1024px) {
    .sede-card {
        grid-template-columns: 5fr 7fr;
    }
    .sede-card > .sede-map {
        min-height: 440px;
    }
    .sede-card > .sede-info {
        padding: 3rem 3.5rem 3rem 4rem;
    }
}
.sede-info .sede-title {
    margin-top: .75rem;
    font-size: 1.875rem;
    line-height: 1.15;
    font-weight: 700;
    color: rgb(15 23 56);
}
@media (min-width: 1024px) {
    .sede-info .sede-title {
        font-size: 36px;
    }
}
.sede-info .sede-address {
    margin-top: 1rem;
    font-size: 16px;
    color: rgb(51 65 85);
    line-height: 1.625;
}
.sede-info .sede-actions {
    margin-top: 1.75rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}

.contact-chip {
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    transition: all .25s;
}
.contact-chip:hover {
    border-color: #E11D27;
    box-shadow: 0 8px 24px -10px rgba(225,29,39,.15);
}
