/* ================================================================
   vc-locations.css — Locations Page styles
   ================================================================ */

.vc-loc-page {
    background: #111;
    min-height: 100vh;
}


.vc-loc-page .vc-page-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 34rem;
    background: #0d0d0d center / cover no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}

.vc-loc-page .vc-page-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.72) 100%);
    z-index: 0;
}

.vc-loc-page .vc-page-hero__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 0 var(--side-pad);
}

.vc-loc-page .vc-page-hero__title {
    font-family: 'Anton', sans-serif !important;
    font-size: clamp(3rem, 8vw, 6rem);
    font-weight: 400;
    color: var(--c-gold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1;
    margin: 0;
    text-shadow: 0 2px 30px rgba(0,0,0,0.5);
}

.vc-loc-page .vc-page-hero__subtitle {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1rem;
    font-style: italic;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.85);
    margin: 0.25rem 0 0;
}

.vc-loc-page .vc-page-hero__rule {
    width: 3rem;
    height: 1.5px;
    background: var(--c-gold);
    opacity: 0.70;
    margin: 0.5rem 0 0.25rem;
}

/* Shared button */
.vc-page-btn {
    display: inline-block;
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 0.75rem !important;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--c-gold) !important;
    background: transparent;
    border: 1.5px solid var(--c-gold);
    padding: 0.75rem 2rem;
    text-decoration: none !important;
    transition: background 0.25s ease, color 0.25s ease;
    white-space: nowrap;
    cursor: pointer;
    margin-top: 0.5rem;
    max-width: 200px;
}

.vc-page-btn:hover { background: var(--c-gold); color: #111 !important; }
.vc-page-btn:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 3px; }


/* ================================================================
   LOCATIONS BODY
   ================================================================ */
.vc-locs-body {
    background: #111;
    padding: 0 0 4rem;
}


/* ── Single location row ── */
.vc-loc-row {
    display: grid;
    align-items: center;
    gap: 4rem;
    padding: 5rem var(--side-pad);
    border-bottom: 1px solid rgba(232,160,44,0.10);
}

.vc-loc-row:last-child { border-bottom: none; }

/* Image LEFT: image col 1, content col 2 */
.vc-loc-row--left {
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "img content";
}

.vc-loc-row--left .vc-loc-row__img-col   { grid-area: img; }
.vc-loc-row--left .vc-loc-row__content   { grid-area: content; }

/* Image RIGHT: content col 1, image col 2 */
.vc-loc-row--right {
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "content img";
}

.vc-loc-row--right .vc-loc-row__img-col  { grid-area: img; }
.vc-loc-row--right .vc-loc-row__content  { grid-area: content; }


/* ── Image ── */
.vc-loc-row__img-col {
    overflow: hidden;
    border: 1px solid rgba(232, 160, 44, 0.18);
}

.vc-loc-row__img {
    width: 100%;
    height: auto;
    max-height: 26rem;
    object-fit: cover;
    display: block;
}


/* ── Content ── */
.vc-loc-row__content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.vc-loc-row__name {
    font-family: 'Anton', sans-serif !important;
    font-size: clamp(1.625rem, 3vw, 2.25rem);
    font-weight: 400;
    color: var(--c-gold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0;
    line-height: 1.1;
}

.vc-loc-row__rule {
    width: 3.25rem;
    height: 2px;
    background: var(--c-gold);
    opacity: 0.80;
    margin-top: -0.25rem;
}

.vc-loc-row__desc {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.0625rem;
    color: rgba(215,202,180,0.88);
    line-height: 1.75;
    margin: 0;
}

/* Address + phone */
.vc-loc-row__info {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.vc-loc-row__info-line {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-family: 'Open Sans', sans-serif;
    font-size: 0.9375rem;
    color: rgba(230,218,198,0.90) !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
    line-height: 1.4;
}

.vc-loc-row__info-line svg {
    color: var(--c-gold);
    flex-shrink: 0;
}

.vc-loc-row__info-line:hover {
    color: var(--c-gold) !important;
}

/* Hours block */
.vc-loc-row__hours {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-top: 0.25rem;
}

.vc-loc-row__hours-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--c-gold);
    margin-bottom: 0.25rem;
    display: block;
}

.vc-loc-row__hours-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    padding-bottom: 0.375rem;
    gap: 1rem;
}

.vc-loc-row__hours-row:last-child { border-bottom: none; padding-bottom: 0; }

.vc-loc-row__hours-days {
    font-family: 'Open Sans', sans-serif;
    font-size: 0.9375rem;
    color: rgba(225,213,192,0.90);
}

.vc-loc-row__hours-time {
    font-family: 'Open Sans', sans-serif;
    font-size: 0.9375rem;
    color: rgba(225,213,192,0.90);
    white-space: nowrap;
}


/* ================================================================
   RESPONSIVE
   ================================================================ */

@media (max-width: 1024px) {
    .vc-loc-row { gap: 3rem; padding: 4rem var(--side-pad); }
}

@media (max-width: 768px) {
    /* On mobile: always image on top, content below — regardless of left/right */
    .vc-loc-row--left,
    .vc-loc-row--right {
        grid-template-columns: 1fr;
        grid-template-areas:
            "img"
            "content";
        gap: 2rem;
        padding: 3rem var(--side-pad);
    }

    .vc-loc-row__img { max-height: 18rem; }

    .vc-loc-row__name { font-size: 1.5rem; }
}

@media (max-width: 576px) {
    .vc-loc-row { padding: 2.5rem var(--side-pad); }

    .vc-loc-row__desc        { font-size: 1rem; }
    .vc-loc-row__info-line   { font-size: 0.875rem; }
    .vc-loc-row__hours-days,
    .vc-loc-row__hours-time  { font-size: 0.875rem; }
}