﻿/* ==========================================================================
   Destination Sitters - Virtual Cities Public CSS
   ==========================================================================
   FULL PASTE-READY FILE

   WHAT THIS FILE DOES
   -------------------
   1) Provides shared virtual city / state / region / support page styling
   2) Includes support-page component styling in the main CSS
   3) Adds a wedding-only visual theme under .vc-theme-wedding
   4) Leaves event pages unchanged unless they are also themed intentionally

   WEDDING THEMING USAGE
   ---------------------
   Wrap wedding page content in:
       <div class="vc-theme-wedding">
           ...
       </div>

   IMPORTANT
   ---------
   - Shared typography like h2 remains in the main CSS.
   - Wedding colors are scoped to .vc-theme-wedding.
   - This avoids changing event pages.
   ========================================================================== */


/* ==========================================================================
   1) GLOBAL / SHARED BASE
   ========================================================================== */

.section-spacing-skinny {
    display: none;
}

h2 {
    font-size: 23px;
    margin-top: 0;
    margin-bottom: 16px;
}

.vc-page-title {
    font-size: 30px;
    line-height: 1.25;
    color: #1d3557;
    margin-top: 0;
    margin-bottom: 1rem;
}

.vc-section {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.vc-section-alt {
    background-color: #f8f9fa;
}


/* ==========================================================================
   2) SHARED CARD / PAGE COMPONENTS
   ========================================================================== */

.vc-card {
    background: #ffffff;
    border: 1px solid #dfe6ee;
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(19, 42, 76, 0.08);
    padding: 1rem;
}

    .vc-card h2,
    .vc-card h3,
    .vc-card h4,
    .vc-card h5 {
        margin-top: 0;
    }

.vc-top-actions {
    margin-bottom: 0;
}

.vc-side-nav-card .list-unstyled li {
    margin-bottom: 0.5rem;
}

    .vc-side-nav-card .list-unstyled li:last-child {
        margin-bottom: 0;
    }

.vc-link-grid-item {
    margin-bottom: 0.5rem;
    font-size: 15px;
    line-height: 1.45;
}

.vc-city-gallery img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    border-radius: 0.5rem;
}

.vc-fact-list li {
    margin-bottom: 0.5rem;
}

.vc-aside-card .list-unstyled li {
    margin-bottom: 0.5rem;
}


/* ==========================================================================
   3) SHARED GEO FAQ ACCORDION
   ========================================================================== */

.vc-faq-accordion .card {
    border: 1px solid #d9dee5;
    border-radius: 0.5rem;
    overflow: hidden;
    margin-bottom: 1rem;
}

.vc-faq-accordion .card-header {
    padding: 0;
    background-color: #eef3f8;
    border-bottom: 0;
}

.vc-faq-accordion .btn {
    display: block;
    width: 100%;
    text-align: left;
    padding: 1rem 1.25rem;
    font-weight: 600;
    color: #1d3557;
    text-decoration: none;
    border-radius: 0;
    border: 0;
    box-shadow: none;
}

    .vc-faq-accordion .btn:hover,
    .vc-faq-accordion .btn:focus {
        text-decoration: none;
        color: #16324f;
        background-color: #e6edf5;
        box-shadow: none;
    }


/* ==========================================================================
   4) PLACE / HIGHLIGHT CARDS
   ========================================================================== */

.vc-place-card {
    border: 1px solid #d9dee5;
    border-radius: 0.5rem;
    height: 100%;
    background: #fff;
}

    .vc-place-card .card-body {
        padding: 1rem 1rem 0.85rem 1rem;
    }

.vc-place-card__layout {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.vc-place-card__thumb-wrap {
    flex: 0 0 125px;
    width: 125px;
}

.vc-place-card__thumb {
    width: 125px;
    height: 125px;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #eef3f8;
    flex-shrink: 0;
}

    .vc-place-card__thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.vc-place-card__thumb-attribution {
    margin-top: 0.18rem;
    font-size: 9px;
    line-height: 1.15;
    color: #8b97a6;
    text-align: right;
}

    .vc-place-card__thumb-attribution a {
        color: #8b97a6;
        text-decoration: none;
    }

        .vc-place-card__thumb-attribution a:hover,
        .vc-place-card__thumb-attribution a:focus {
            text-decoration: underline;
        }

.vc-place-card__content {
    flex: 1 1 auto;
    min-width: 0;
}

.vc-place-card__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 0.45rem;
}

.vc-place-card__heading {
    flex: 1 1 auto;
    min-width: 0;
}

.vc-place-card__title {
    font-size: 1rem;
    font-weight: 600;
    color: #1d3557;
    line-height: 1.35;
    margin: 0;
}

.vc-place-card__title-link,
.vc-mini-place-list__name-link {
    color: #1d3557;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
}

    .vc-place-card__title-link:hover,
    .vc-place-card__title-link:focus,
    .vc-mini-place-list__name-link:hover,
    .vc-mini-place-list__name-link:focus {
        text-decoration: underline;
    }

.vc-place-card__title-text,
.vc-mini-place-list__name-text {
    min-width: 0;
}

.vc-place-card__inline-icon,
.vc-mini-place-list__inline-icon {
    flex: 0 0 auto;
    font-size: 13px;
    line-height: 1;
    color: #355070;
}

.vc-place-card__type {
    display: inline-block;
    margin-top: 0.35rem;
    font-size: 0.72rem;
    line-height: 1;
    padding: 0.35rem 0.45rem;
    border-radius: 999px;
    background: #eef3f8;
    color: #4f6782;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
}

.vc-place-card__rating,
.vc-mini-place-list__rating {
    flex: 0 0 auto;
    min-width: 124px;
    text-align: right;
}

.vc-place-card__stars,
.vc-mini-place-list__stars {
    display: inline-flex;
    align-items: center;
    gap: 0;
    line-height: 1;
    white-space: nowrap;
}

    .vc-place-card__stars i,
    .vc-mini-place-list__stars i {
        font-size: 0.95rem;
        margin-left: -1px;
        --fa-primary-color: #f6c65b;
        --fa-secondary-color: #f6c65b;
        --fa-primary-opacity: 1;
        --fa-secondary-opacity: 1;
    }

        .vc-place-card__stars i:first-child,
        .vc-mini-place-list__stars i:first-child {
            margin-left: 0;
        }

.vc-star--full,
.vc-star--half {
    color: #f6c65b;
    --fa-primary-color: #f6c65b;
    --fa-secondary-color: #f6c65b;
    --fa-primary-opacity: 1;
    --fa-secondary-opacity: 1;
}

.vc-star--empty {
    color: #d7dde5;
    --fa-primary-color: #d7dde5;
    --fa-secondary-color: #d7dde5;
    --fa-primary-opacity: 1;
    --fa-secondary-opacity: 1;
}

.vc-place-card__rating-text,
.vc-mini-place-list__rating-text {
    font-size: 0.82rem;
    color: #6c757d;
    margin-top: 0.15rem;
    white-space: nowrap;
}

.vc-place-card__address,
.vc-mini-place-list__address {
    font-size: 0.92rem;
    color: #495057;
    margin-top: 0.35rem;
    line-height: 1.4;
}

.vc-place-card__address-link,
.vc-mini-place-list__address-link {
    color: #495057;
    text-decoration: none;
    display: inline-block;
    max-width: 100%;
}

    .vc-place-card__address-link:hover,
    .vc-place-card__address-link:focus,
    .vc-mini-place-list__address-link:hover,
    .vc-mini-place-list__address-link:focus {
        text-decoration: underline;
        color: #334e68;
    }

.vc-place-card__address-line1,
.vc-mini-place-list__address-line1 {
    display: block;
}

.vc-place-card__address-line2,
.vc-mini-place-list__address-line2 {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 1px;
    max-width: 100%;
}

.vc-inline-map-icon {
    flex: 0 0 auto;
    font-size: 13px;
    line-height: 1;
    color: #355070;
}

.vc-place-powered {
    font-size: 0.75rem;
    color: #6c858d;
    margin-top: 0;
}

.vc-section-placeholder {
    width: 100%;
    height: auto;
    border-radius: 0.5rem;
    display: block;
}


/* ==========================================================================
   5) MINI PLACE LIST
   ========================================================================== */

.vc-mini-place-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

    .vc-mini-place-list li {
        padding: 0.55rem 0;
        border-bottom: 1px solid #edf1f5;
    }

        .vc-mini-place-list li:last-child {
            border-bottom: 0;
        }

.vc-mini-place-list__row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.vc-mini-place-list__thumb-wrap {
    flex: 0 0 125px;
    width: 125px;
}

.vc-mini-place-list__thumb {
    width: 125px;
    height: 125px;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #eef3f8;
    flex-shrink: 0;
}

    .vc-mini-place-list__thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.vc-mini-place-list__thumb-attribution {
    margin-top: 0.18rem;
    font-size: 9px;
    line-height: 1.15;
    color: #8b97a6;
    text-align: right;
}

    .vc-mini-place-list__thumb-attribution a {
        color: #8b97a6;
        text-decoration: none;
    }

        .vc-mini-place-list__thumb-attribution a:hover,
        .vc-mini-place-list__thumb-attribution a:focus {
            text-decoration: underline;
        }

.vc-mini-place-list__content {
    flex: 1 1 auto;
    min-width: 0;
}

.vc-mini-place-list__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.85rem;
}

.vc-mini-place-list__heading {
    flex: 1 1 auto;
    min-width: 0;
}

.vc-mini-place-list__name {
    font-weight: 600;
    color: #1d3557;
    line-height: 1.35;
    margin: 0;
}

.vc-mini-place-list__type {
    display: inline-block;
    margin-top: 0.3rem;
    font-size: 0.7rem;
    line-height: 1;
    padding: 0.32rem 0.42rem;
    border-radius: 999px;
    background: #eef3f8;
    color: #4f6782;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
}

#local-highlights .col-lg-6 {
    margin-top: 10px;
}


/* ==========================================================================
   6) SUPPORT PAGE COMPONENTS
   ========================================================================== */

.vc-support-section-wrap {
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 1rem;
}

.vc-support-intro-card,
.vc-support-section-card,
.vc-support-timeline-card,
.vc-support-table-card,
.vc-support-nav-card {
    background: #ffffff;
    border: 1px solid #dfe6ee;
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(19, 42, 76, 0.08);
    padding: 1rem;
}

.vc-support-section-card--soft,
.vc-support-timeline-card--soft,
.vc-support-table-card--soft {
    background: linear-gradient(180deg, #f8fbfe 0%, #ffffff 100%);
}

.vc-support-intro-card h2,
.vc-support-section-card h2,
.vc-support-timeline-card h2,
.vc-support-table-card h2 {
    margin-top: 0;
    color: #1d3557;
}

.vc-support-intro-card p:last-child,
.vc-support-section-card p:last-child,
.vc-support-timeline-card p:last-child,
.vc-support-table-card p:last-child,
.vc-support-section-card ul:last-child,
.vc-support-table-card ul:last-child {
    margin-bottom: 0;
}

.vc-support-intro-card p,
.vc-support-section-card p,
.vc-support-section-card li,
.vc-support-timeline-card p,
.vc-support-table-card p,
.vc-support-table-card li {
    font-size: 16px;
    line-height: 1.75;
    color: #435166;
}

.vc-support-nav-card .list-unstyled li {
    margin-bottom: 0.5rem;
}

    .vc-support-nav-card .list-unstyled li:last-child {
        margin-bottom: 0;
    }

.vc-support-nav-title {
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: #1d3557;
}


/* ==========================================================================
   7) SUPPORT CHECKLISTS
   ========================================================================== */

.vc-support-checklist {
    list-style: none;
    padding-left: 0;
    margin-bottom: 1.25rem;
}

    .vc-support-checklist li {
        position: relative;
        padding-left: 1.5rem;
        margin-bottom: 0.75rem;
        color: #435166;
    }

        .vc-support-checklist li:before {
            content: "";
            position: absolute;
            left: 0;
            top: 0.6rem;
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: #1d3557;
        }


/* ==========================================================================
   8) SUPPORT TIMELINE
   ========================================================================== */

.vc-timeline-step {
    border: 1px solid #e3eaf2;
    border-radius: 12px;
    background: #fff;
    padding: 1rem 1.1rem;
    margin-bottom: 1rem;
}

    .vc-timeline-step:last-child {
        margin-bottom: 0;
    }

    .vc-timeline-step h3 {
        font-size: 1.05rem;
        color: #1d3557;
        margin-bottom: 0.5rem;
    }


/* ==========================================================================
   9) SUPPORT TABLES
   ========================================================================== */

.vc-ratio-table-wrap {
    overflow-x: auto;
}

.vc-ratio-table {
    margin-bottom: 1.25rem;
    background: #fff;
}

    .vc-ratio-table thead th {
        background: #eef3f8;
        color: #1d3557;
        border-color: #d9dee5;
        font-weight: 700;
    }

    .vc-ratio-table td {
        border-color: #d9dee5;
        color: #435166;
        vertical-align: middle;
    }


/* ==========================================================================
   10) SUPPORT FAQ ACCORDION
   ========================================================================== */

.support-faq-accordion .card {
    border: 1px solid #d9dee5;
    border-radius: 0.5rem;
    overflow: hidden;
    margin-bottom: 1rem;
}

.support-faq-accordion .card-header {
    padding: 0;
    background-color: #eef3f8;
    border-bottom: 0;
}

.support-faq-accordion .btn {
    width: 100%;
    display: block;
    text-align: left;
    padding: 1rem 1.25rem;
    font-weight: 600;
    color: #1d3557;
    text-decoration: none;
    box-shadow: none;
}

    .support-faq-accordion .btn:hover,
    .support-faq-accordion .btn:focus {
        text-decoration: none;
        color: #16324f;
        background-color: #e6edf5;
        box-shadow: none;
    }


/* ==========================================================================
   11) RESPONSIVE
   ========================================================================== */

@media (max-width: 991.98px) {
    .vc-place-card__layout,
    .vc-mini-place-list__row {
        flex-direction: column;
    }

    .vc-place-card__thumb-wrap,
    .vc-mini-place-list__thumb-wrap {
        width: 100%;
        flex: 0 0 auto;
    }

    .vc-place-card__thumb,
    .vc-mini-place-list__thumb {
        width: 100%;
        height: 220px;
    }

    .vc-place-card__header,
    .vc-mini-place-list__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .vc-place-card__rating,
    .vc-mini-place-list__rating {
        min-width: 0;
        text-align: left;
    }

    #local-highlights .col-lg-6 {
        margin-top: 0;
    }

    .vc-support-section-wrap {
        margin-bottom: 1rem;
    }

    .vc-support-intro-card,
    .vc-support-section-card,
    .vc-support-timeline-card,
    .vc-support-table-card,
    .vc-support-nav-card {
        padding: 1rem;
    }

    .vc-page-title {
        font-size: 26px;
    }
}


/* ==========================================================================
   12) WEDDING THEME
   --------------------------------------------------------------------------
   Apply only to pages wrapped in:
       <div class="vc-theme-wedding"> ... </div>

   This preserves the wedding styling while allowing the background image
   to remain visible through a very light pink tint.
   ========================================================================== */

.vc-theme-wedding {
    background-color: rgba(253, 234, 242, 0.72);
    background-image: url('/content/images/wedding/Wedding Page-BG.jpg');
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    background-attachment: fixed;
    background-blend-mode: lighten;
}

    /* FAQ */
    .vc-theme-wedding .vc-faq-accordion .card-header {
        background-color: #F8D6E6;
    }

    .vc-theme-wedding .vc-faq-accordion .card-body {
        background-color: #FDF3F7;
    }

    /* Side nav */
    .vc-theme-wedding .vc-side-nav-card {
        background-color: #F6D0E1;
        border: 1px solid #E9C7D6;
        border-radius: 10px;
        padding: 1rem;
    }

        .vc-theme-wedding .vc-side-nav-card a {
            display: block;
            padding: 6px 10px;
            background-color: #FBE7EF;
            border-radius: 6px;
            margin-bottom: 6px;
            color: #4A2E3A;
            text-decoration: none;
        }

            .vc-theme-wedding .vc-side-nav-card a:hover,
            .vc-theme-wedding .vc-side-nav-card a:focus {
                background-color: #F2C2D7;
                color: #4A2E3A;
                text-decoration: none;
            }

        .vc-theme-wedding .vc-side-nav-card .font-weight-bold,
        .vc-theme-wedding .vc-side-nav-card h5 {
            color: #5A3244;
        }

    /* Aside cards */
    .vc-theme-wedding .vc-aside-card {
        background: #FDF3F7;
        border: 1px solid #E9C7D6;
        border-radius: 16px;
        box-shadow: 0 14px 35px rgba(120, 60, 90, 0.10);
    }

        .vc-theme-wedding .vc-aside-card .card-body {
            background: transparent;
            padding: 1rem;
        }

        .vc-theme-wedding .vc-aside-card .card-title {
            color: #5A3244;
        }

        .vc-theme-wedding .vc-aside-card .embed-responsive {
            position: relative;
            border-radius: 12px;
            overflow: hidden;
            border: 1px solid #E6B9CC;
            background: #F8DCE9;
        }

        .vc-theme-wedding .vc-aside-card iframe {
            border: 0;
            border-radius: 12px;
        }

        .vc-theme-wedding .vc-aside-card .embed-responsive::after {
            content: "";
            position: absolute;
            inset: 0;
            background: rgba(253, 234, 242, 0.12);
            pointer-events: none;
        }

    /* Shared cards */
    .vc-theme-wedding .vc-card {
        background: #FFFFFF;
        border: 1px solid #E9C7D6;
        border-radius: 16px;
        box-shadow: 0 14px 35px rgba(120, 60, 90, 0.10);
    }

    /* Support cards */
    .vc-theme-wedding .vc-support-intro-card,
    .vc-theme-wedding .vc-support-section-card,
    .vc-theme-wedding .vc-support-timeline-card,
    .vc-theme-wedding .vc-support-table-card,
    .vc-theme-wedding .vc-support-nav-card {
        background: #FFFFFF;
        border: 1px solid #E9C7D6;
        border-radius: 16px;
        box-shadow: 0 14px 35px rgba(120, 60, 90, 0.10);
    }

    .vc-theme-wedding .vc-support-section-card--soft,
    .vc-theme-wedding .vc-support-timeline-card--soft,
    .vc-theme-wedding .vc-support-table-card--soft {
        background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 100%);
    }

    /* Buttons */
    .vc-theme-wedding .btn-primary {
        background-color: #C95C8A;
        border-color: #E88AB0;
        color: #fff;
    }

        .vc-theme-wedding .btn-primary:hover,
        .vc-theme-wedding .btn-primary:focus {
            background-color: #D96A98;
            border-color: #D96A98;
            color: #fff;
        }

    .vc-theme-wedding .btn-outline-secondary {
        background-color: #FBE7EF;
        border-color: #E4B7CB;
        color: #4A2E3A;
    }

        .vc-theme-wedding .btn-outline-secondary:hover,
        .vc-theme-wedding .btn-outline-secondary:focus {
            background-color: #F2C2D7;
            border-color: #D9A3BC;
            color: #4A2E3A;
        }

    /* Links */
    .vc-theme-wedding a {
        color: #7A3F57;
    }

        .vc-theme-wedding a:hover,
        .vc-theme-wedding a:focus {
            color: #5A3244;
        }

    /* Support FAQ */
    .vc-theme-wedding .support-faq-accordion .card {
        border: 1px solid #E9C7D6;
        border-radius: 0.5rem;
        overflow: hidden;
        margin-bottom: 1rem;
        background: #FDF3F7;
    }

.vc-theme-wedding .support-faq-accordion .card-header {
    padding: 0;
    background-color: #F8D6E6;
    border-bottom: 0;
}

    .vc-theme-wedding .support-faq-accordion .card-body { background-color: #FFFFFF; }

    .vc-theme-wedding .support-faq-accordion .btn {
        width: 100%;
        display: block;
        text-align: left;
        padding: 1rem 1.25rem;
        font-weight: 600;
        color: #5A3244;
        text-decoration: none;
        box-shadow: none;
    }

        .vc-theme-wedding .support-faq-accordion .btn:hover,
        .vc-theme-wedding .support-faq-accordion .btn:focus {
            text-decoration: none;
            color: #4A2E3A;
            background-color: #F2C2D7;
            box-shadow: none;
        }

    /* Timeline */
    .vc-theme-wedding .vc-timeline-step {
        border: 1px solid #E6B9CC;
        border-radius: 12px;
        background: #FFF8FB;
    }

        .vc-theme-wedding .vc-timeline-step h3 {
            color: #5A3244;
        }

    /* Tables */
    .vc-theme-wedding .vc-ratio-table {
        background: #fff;
    }

        .vc-theme-wedding .vc-ratio-table thead th {
            background: #F8D6E6;
            color: #5A3244;
            border-color: #E6B9CC;
        }

        .vc-theme-wedding .vc-ratio-table td {
            border-color: #E9C7D6;
            color: #5B4A53;
        }

    /* Checklist bullets */
    .vc-theme-wedding .vc-support-checklist li:before {
        background: #C95C8A;
    }

    /* Support/body copy */
    .vc-theme-wedding .vc-support-intro-card p,
    .vc-theme-wedding .vc-support-section-card p,
    .vc-theme-wedding .vc-support-section-card li,
    .vc-theme-wedding .vc-support-timeline-card p,
    .vc-theme-wedding .vc-support-table-card p,
    .vc-theme-wedding .vc-support-table-card li,
    .vc-theme-wedding .vc-card p,
    .vc-theme-wedding .vc-card li {
        color: #5B4A53;
    }
