* {
    box-sizing: border-box;
}

:root {
    --green-950: #173f36;
    --green-900: #1f4d42;
    --green-800: #2a5f52;
    --green-100: #e8f0ec;
    --cream: #f8f5ef;
    --cream-strong: #f1ebe1;
    --terracotta: #c96f4a;
    --terracotta-dark: #a95636;
    --ink: #1c2b27;
    --muted: #66736e;
    --line: #ddd8cf;
    --white: #ffffff;
    --shadow-soft: 0 18px 45px rgba(31, 77, 66, 0.08);
    --shadow-card: 0 10px 28px rgba(31, 77, 66, 0.08);
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    color: var(--ink);
    background: var(--cream);
    line-height: 1.5;
}

a {
    color: inherit;
}

/*
|--------------------------------------------------------------------------
| Header
|--------------------------------------------------------------------------
*/

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    padding: 14px 24px;
    border-bottom: 1px solid var(--line);
    background: rgba(248, 245, 239, 0.96);
    color: var(--green-950);
    backdrop-filter: blur(14px);
}

.header-inner {
    max-width: 1540px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 30px;
}

.menu-toggle {
    display: none;
    width: 46px;
    height: 46px;
    padding: 10px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--white);
    color: var(--green-950);
    cursor: pointer;
}

.menu-toggle span {
    display: block;
    width: 23px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition:
        transform 0.18s ease,
        opacity 0.18s ease;
}

.menu-toggle.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2) {
    opacity: 0;
}

.menu-toggle.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.mobile-login-link {
    display: none;
}

.logo {
    color: var(--green-950);
    text-decoration: none;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -1.5px;
}

.logo::after {
    content: "";
}

.nav {
    display: flex;
    align-items: center;
    gap: 28px;
}

.nav a {
    color: var(--green-950);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}

.nav a:hover {
    color: var(--terracotta-dark);
}

.header-cta {
    justify-self: end;
    padding: 11px 21px;
    border-radius: 9px;
    background: var(--terracotta);
    color: white;
    text-decoration: none;
    font-size: 14px;
    font-weight: 750;
    transition:
        background 0.15s ease,
        transform 0.15s ease;
}

.header-cta:hover {
    background: var(--terracotta-dark);
    transform: translateY(-1px);
}

/*
|--------------------------------------------------------------------------
| Hero
|--------------------------------------------------------------------------
*/

.hero {
    max-width: 1540px;
    margin: 0 auto;
    padding: 24px 24px 16px;
}

.hero-copy {
    max-width: none;
}

.eyebrow {
    margin-bottom: 14px;
    color: var(--terracotta-dark);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.hero h1 {
    max-width: none;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 3.3vw, 52px);
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -2px;
    color: var(--green-950);
}

.hero h1 span {
    color: var(--green-950);
}

.hero-intro {
    max-width: 800px;
    margin-top: 7px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.5;
}

/*
|--------------------------------------------------------------------------
| Live Explore Controls
|--------------------------------------------------------------------------
*/

.discovery-controls {
    max-width: 1540px;
    margin: 0 auto;
    padding: 0 24px 14px;
    display: grid;
    grid-template-columns:
        minmax(340px, 1.15fr)
        minmax(480px, 1fr);
    gap: 10px 14px;
    align-items: end;
}

.search-wrap {
    max-width: 100%;
    margin-top: 0;
}

.search-form {
    display: flex;
    gap: 7px;
    min-height: 52px;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: white;
    box-shadow: none;
}

.search-input {
    flex: 1;
    min-width: 0;
    padding: 10px 13px;
    border: 0;
    outline: 0;
    font: inherit;
    font-size: 14px;
    color: var(--ink);
    background: transparent;
}

.search-button {
    padding: 10px 21px;
    border: 0;
    border-radius: 10px;
    background: var(--terracotta);
    color: white;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
}

.search-button:hover {
    background: var(--terracotta-dark);
}

.live-filters {
    display: grid;
    grid-template-columns:
        minmax(150px, 1fr)
        minmax(150px, 1fr)
        auto;
    gap: 8px;
    align-items: end;
    margin-top: 0;
}

.filter-field label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.filter-field select {
    width: 100%;
    height: 52px;
    padding: 0 38px 0 13px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: white;
    color: var(--ink);
    font: inherit;
    font-size: 14px;
}

.filter-clear-wrap {
    min-width: 96px;
}

.clear-button {
    min-height: 52px;
    padding: 0 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: transparent;
    color: var(--green-800);
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

.clear-button:hover {
    background: var(--cream-strong);
}

.clear-button[hidden] {
    display: none;
}

.results-summary {
    grid-column: 1 / -1;
    min-height: 21px;
    margin-top: 0;
    color: var(--muted);
    font-size: 13px;
}

.results-summary.is-loading {
    color: var(--green-950);
}

/*
|--------------------------------------------------------------------------
| Discovery
|--------------------------------------------------------------------------
*/

.discovery-section {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 14px 76px;
}

.discovery-shell {
    display: grid;
    grid-template-columns:
        minmax(0, 2.15fr)
        minmax(330px, 0.9fr);
    height: clamp(650px, 73vh, 840px);
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: white;
    box-shadow: 0 12px 34px rgba(31, 77, 66, 0.08);
}

#map {
    width: 100%;
    height: 100%;
    background: #dfe9e4;
}

.discovery-list {
    overflow-y: auto;
    border-left: 1px solid var(--line);
    background: #fffdfa;
}

.list-heading {
    position: sticky;
    top: 0;
    z-index: 10;
    padding: 17px 18px;
    border-bottom: 1px solid var(--line);
    background: rgba(255, 253, 250, 0.96);
    backdrop-filter: blur(10px);
}

.list-heading strong {
    display: block;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    color: var(--green-950);
}

.list-heading span {
    color: var(--muted);
    font-size: 13px;
}

.map-list-card {
    position: relative;
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 13px;
    padding: 14px;
    border-bottom: 1px solid #eee9e0;
    border-left: 4px solid transparent;
    text-decoration: none;
    cursor: pointer;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.map-list-card:hover {
    background: var(--cream);
}

.map-list-card.is-active {
    border-left-color: var(--terracotta);
    background: var(--green-100);
    box-shadow: inset 0 0 0 1px rgba(31, 77, 66, 0.05);
}

.map-list-image {
    width: 118px;
    height: 96px;
    overflow: hidden;
    border-radius: 11px;
    background: var(--cream-strong);
}

.map-list-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 10px;
    background:
        linear-gradient(
            135deg,
            var(--cream),
            var(--green-100)
        );
    color: var(--green-800);
    text-align: center;
    font-size: 11px;
    font-weight: 700;
}

.map-list-venue {
    color: var(--terracotta-dark);
    font-size: 12px;
    font-weight: 750;
}

.map-list-title {
    margin-top: 2px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 19px;
    font-weight: 700;
    font-weight: 750;
    line-height: 1.25;
    color: var(--green-950);
}

.map-list-meta {
    margin-top: 7px;
    color: var(--muted);
    font-size: 12px;
}

.tour-label {
    display: inline-block;
    margin-top: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--green-950);
    color: white;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: 0.03em;
}

.no-results {
    padding: 45px 25px;
    color: var(--muted);
    text-align: center;
}

.no-results strong {
    display: block;
    margin-bottom: 7px;
    color: var(--green-950);
    font-size: 17px;
}

/*
|--------------------------------------------------------------------------
| Map Popup
|--------------------------------------------------------------------------
*/

.vuspaces-popup {
    width: 240px;
    color: var(--ink);
}

.popup-image-link {
    display: block;
    margin-bottom: 11px;
    text-decoration: none;
}

.popup-image {
    display: block;
    width: 240px;
    height: 130px;
    border-radius: 10px;
    object-fit: cover;
}

.popup-venue {
    color: var(--terracotta-dark);
    font-size: 12px;
    font-weight: 750;
}

.popup-space {
    margin-top: 2px;
    color: var(--green-950);
    font-size: 18px;
    font-weight: 750;
    line-height: 1.25;
}

.popup-meta {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
}

.popup-tour-wrap {
    margin-top: 9px;
}

.popup-tour {
    display: inline-block;
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--green-950);
    color: white;
    font-size: 10px;
    font-weight: 700;
}

.popup-primary-link {
    display: inline-block;
    margin-top: 11px;
    color: var(--terracotta-dark);
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.popup-venue-link-wrap {
    margin-top: 13px;
    padding-top: 11px;
    border-top: 1px solid var(--line);
}

.popup-venue-link {
    color: var(--green-800);
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
}

.leaflet-popup-content-wrapper {
    border-radius: 14px;
}

.leaflet-popup-content {
    margin: 14px;
}

/*
|--------------------------------------------------------------------------
| Sections
|--------------------------------------------------------------------------
*/

.section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 28px 94px;
}

.section-top {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 28px;
}

.section-top h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -1.5px;
    color: var(--green-950);
}

.section-top p {
    max-width: 500px;
    margin: 0;
    color: var(--muted);
}

/*
|--------------------------------------------------------------------------
| Type Cards
|--------------------------------------------------------------------------
*/

.type-grid {
    display: grid;
    grid-template-columns:
        repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.type-card {
    min-height: 150px;
    padding: 22px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: white;
    text-decoration: none;
    box-shadow: var(--shadow-card);
    transition:
        transform 0.18s ease,
        border-color 0.18s ease;
}

.type-card:hover {
    transform: translateY(-3px);
    border-color: var(--terracotta);
}

.type-name {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    font-weight: 600;
    color: var(--green-950);
}

.type-text {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
}

/*
|--------------------------------------------------------------------------
| Featured Cards
|--------------------------------------------------------------------------
*/

.featured-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.space-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: white;
    box-shadow: var(--shadow-card);
}

.card-image {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--cream-strong);
    text-decoration: none;
}

.card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.space-card:hover .card-image img {
    transform: scale(1.025);
}

.card-badge {
    position: absolute;
    left: 14px;
    bottom: 14px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(23, 63, 54, 0.92);
    color: white;
    font-size: 11px;
    font-weight: 750;
}

.featured-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 253, 250, 0.95);
    color: var(--terracotta-dark);
    font-size: 11px;
    font-weight: 750;
}

.card-body {
    padding: 22px;
}

.card-venue {
    color: var(--terracotta-dark);
    font-size: 13px;
    font-weight: 700;
}

.card-title {
    margin: 4px 0 9px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--green-950);
}

.card-title a {
    text-decoration: none;
}

.card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 16px;
}

.meta-pill {
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--green-100);
    color: var(--green-800);
    font-size: 11px;
    font-weight: 650;
}

.card-link {
    display: block;
    margin-top: 18px;
    padding: 11px;
    border-radius: 9px;
    background: var(--terracotta);
    color: white;
    text-align: center;
    text-decoration: none;
    font-weight: 750;
}

.card-link:hover {
    background: var(--terracotta-dark);
}

/*
|--------------------------------------------------------------------------
| Footer
|--------------------------------------------------------------------------
*/

.footer {
    padding: 48px 28px;
    background: var(--green-950);
    color: rgba(255, 255, 255, 0.68);
}

.footer-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

.footer strong {
    display: block;
    margin-bottom: 5px;
    color: white;
}

/*
|--------------------------------------------------------------------------
| Responsive
|--------------------------------------------------------------------------
*/

@media (
    max-width: 1100px
) {

    .discovery-controls {
        grid-template-columns: 1fr;
    }

    .live-filters {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .filter-clear-wrap {
        grid-column: 1 / -1;
    }

    .discovery-shell {
        grid-template-columns: 1fr;
        height: auto;
    }

    #map {
        height: 520px;
    }

    .discovery-list {
        max-height: 480px;
        border-left: 0;
        border-top: 1px solid var(--line);
    }

    .type-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .featured-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (
    max-width: 680px
) {

    .site-header {
        padding: 16px 18px;
    }

    .header-inner {
        position: relative;
        grid-template-columns: 1fr auto;
        gap: 14px;
    }

    .logo {
        font-size: 32px;
    }

    .menu-toggle {
        display: flex;
        justify-self: end;
    }

    .header-cta {
        display: none;
    }

    .nav {
        position: absolute;
        top: calc(100% + 16px);
        left: -18px;
        right: -18px;
        display: none;
        padding: 10px 18px 18px;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        border-bottom: 1px solid var(--line);
        background: rgba(248, 245, 239, 0.99);
        box-shadow: 0 18px 30px rgba(31, 77, 66, 0.12);
        backdrop-filter: blur(14px);
    }

    .nav.is-open {
        display: flex;
    }

    .nav a {
        padding: 14px 4px;
        border-bottom: 1px solid var(--line);
        font-size: 16px;
    }

    .nav a:last-child {
        border-bottom: 0;
    }

    .nav .mobile-login-link {
        display: block;
        margin-top: 10px;
        padding: 13px 16px;
        border: 0;
        border-radius: 9px;
        background: var(--terracotta);
        color: var(--white);
        text-align: center;
    }

    .nav .mobile-login-link:hover {
        background: var(--terracotta-dark);
        color: var(--white);
    }

    .hero {
        padding: 24px 18px 14px;
    }

    .hero h1 {
        letter-spacing: -2px;
    }

    .hero-intro {
        font-size: 17px;
    }

    .discovery-controls {
        padding: 0 18px 14px;
    }

    .search-form {
        display: block;
    }

    .search-button {
        width: 100%;
        margin-top: 8px;
    }

    .live-filters {
        grid-template-columns: 1fr;
    }

    .filter-clear-wrap {
        grid-column: auto;
    }

    .discovery-section {
        padding: 0 14px 65px;
    }

    .discovery-shell {
        border-radius: 16px;
    }

    #map {
        height: 420px;
    }

    .type-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .featured-grid {
        grid-template-columns: 1fr;
    }

    .section {
        padding: 0 18px 72px;
    }

    .section-top {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .map-list-card {
        grid-template-columns:
            95px
            minmax(0, 1fr);
    }

    .map-list-image {
        width: 95px;
        height: 78px;
    }

    .footer-inner {
        flex-direction: column;
    }
}

/* ==========================================================================
   VuSpaces signup page - build 2026-08-04-0938
   ========================================================================== */

.signup-page {
    min-height: 100vh;
    margin: 0;
    padding: 0;
    background:
        linear-gradient(
            90deg,
            #0e2d26 0,
            #0e2d26 46%,
            var(--cream) 46%,
            var(--cream) 100%
        );
    color: var(--ink);
}

.signup-page .signup-shell {
    width: 100%;
    max-width: 1180px;
    min-height: calc(100vh - 75px);
    margin: 0 auto;
    padding: 55px 34px;
    display: grid;
    grid-template-columns: minmax(320px, 0.8fr) minmax(470px, 1fr);
    grid-template-rows: auto 1fr auto;
    gap: 26px 90px;
    align-items: start;
}

.signup-page .signup-panel {
    grid-column: 1;
    grid-row: 1 / 3;
    margin: 0;
    text-align: left;
}

.signup-page .signup-promise {
    max-width: 430px;
    margin-top: 20px;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
}

.signup-page .promise-eyebrow {
    margin-bottom: 15px;
    color: #e58a69;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.signup-page .signup-promise h2 {
    margin: 0;
    color: var(--white);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(42px, 4vw, 58px);
    font-weight: 600;
    line-height: 1.06;
    letter-spacing: -0.04em;
}

.signup-page .signup-promise > p {
    margin: 24px 0 0;
    color: #d8e2dd;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.72;
    letter-spacing: 0;
}

.signup-page .signup-points {
    margin: 30px 0 0;
    padding: 0;
    display: grid;
    gap: 15px;
    list-style: none;
}

.signup-page .signup-points li {
    position: relative;
    padding-left: 30px;
    color: #f1f5f3;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: 0;
}

.signup-page .signup-points li::before {
    position: absolute;
    left: 0;
    color: #e58a69;
    content: "✓";
    font-size: 18px;
    font-weight: 800;
}

.signup-page .promise-pricing {
    margin-top: 34px;
    padding: 20px 21px;
    border-left: 3px solid var(--terracotta);
    background: rgba(255, 255, 255, 0.08);
    color: #d8e2dd;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.65;
}

.signup-page .promise-pricing strong {
    display: block;
    margin-bottom: 6px;
    color: var(--white);
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
}

.signup-page .card {
    grid-column: 2;
    grid-row: 1 / 4;
    align-self: center;
    width: 100%;
    padding: 42px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--white);
    box-shadow: 0 22px 60px rgba(23, 63, 53, 0.12);
}

.signup-page .eyebrow {
    margin-bottom: 10px;
    color: var(--terracotta-dark);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.signup-page h1 {
    margin: 0;
    color: var(--green-950);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 38px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -1.4px;
}

.signup-page .intro {
    margin: 13px 0 30px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.6;
}

.signup-page .field {
    margin-bottom: 17px;
}

.signup-page label {
    display: block;
    margin-bottom: 7px;
    color: var(--green-950);
    font-size: 12px;
    font-weight: 750;
}

.signup-page input {
    width: 100%;
    height: 50px;
    padding: 0 13px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--white);
    color: var(--ink);
    font: inherit;
    font-size: 15px;
}

.signup-page input:focus {
    border-color: var(--terracotta);
    outline: 3px solid rgba(201, 111, 74, 0.14);
    outline-offset: 0;
}

.signup-page .help {
    margin-top: 6px;
    color: #8b9490;
    font-size: 11px;
}

.signup-page .card button {
    width: 100%;
    min-height: 52px;
    margin-top: 5px;
    border: 0;
    border-radius: 9px;
    background: var(--terracotta);
    color: var(--white);
    font: inherit;
    font-weight: 750;
    cursor: pointer;
}

.signup-page .card button:hover {
    background: var(--terracotta-dark);
}

.signup-page .error {
    margin-bottom: 22px;
    padding: 12px 14px;
    border: 1px solid #df9279;
    border-radius: 9px;
    background: #fff1ec;
    color: #843b25;
    font-size: 13px;
}

.signup-page .login {
    margin-top: 22px;
    color: var(--muted);
    text-align: center;
    font-size: 13px;
}

.signup-page .login a {
    color: var(--terracotta-dark);
    font-weight: 700;
    text-decoration: none;
}

.signup-page .back {
    grid-column: 1;
    grid-row: 3;
    margin: 0;
    text-align: left;
    font-size: 13px;
}

.signup-page .back a {
    color: #d1ddd8;
    text-decoration: none;
}

@media (max-width: 900px) {
    .signup-page {
        background: var(--cream);
    }

    .signup-page .signup-shell {
        max-width: 650px;
        min-height: auto;
        padding: 32px 22px 50px;
        display: block;
    }

    .signup-page .signup-panel {
        padding: 26px;
        border-radius: 17px;
        background: #0e2d26 !important;
        color: var(--white);
    }

    .signup-page .signup-promise h2,
    .signup-page .promise-pricing strong {
        color: var(--white);
    }

    .signup-page .signup-promise > p,
    .signup-page .promise-pricing {
        color: #d8e2dd;
    }

    .signup-page .signup-points li {
        color: #f1f5f3;
    }

    .signup-page .signup-promise {
        margin-top: 0;
    }

    .signup-page .signup-promise h2 {
        font-size: 40px;
    }

    .signup-page .card {
        margin-top: 22px;
        padding: 34px;
    }

    .signup-page .back {
        margin-top: 18px;
        text-align: center;
    }

    .signup-page .back a {
        color: var(--muted);
    }
}

@media (max-width: 560px) {
    .signup-page .signup-shell {
        padding: 15px 14px 38px;
    }

    .signup-page .signup-panel {
        padding: 22px 20px;
    }

    .signup-page .signup-promise h2 {
        font-size: 36px;
    }

    .signup-page .signup-promise > p {
        font-size: 16px;
    }

    .signup-page .signup-points li {
        font-size: 15px;
    }

    .signup-page .card {
        padding: 25px 20px;
        border-radius: 15px;
    }

    .signup-page h1 {
        font-size: 32px;
    }
}

.signup-page .signup-promise,
.signup-page .signup-promise p,
.signup-page .signup-promise li,
.signup-page .promise-pricing,
.signup-page .promise-pricing strong {
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
}

/* ==========================================================================
   Shared public header
   Used by /includes/site-header.php
   ========================================================================== */

.vsh-header,
.vsh-header * {
    box-sizing: border-box;
}

.vsh-header {
    position: sticky;
    top: 0;
    z-index: 2000;
    padding: 14px 24px;
    border-bottom: 1px solid var(--line);
    background: rgba(248, 245, 239, 0.97);
    color: var(--green-950);
    backdrop-filter: blur(14px);
}

.vsh-inner {
    position: relative;
    max-width: 1540px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 30px;
}

.vsh-logo {
    color: var(--green-950);
    text-decoration: none;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -1.5px;
}

.vsh-nav {
    display: flex;
    align-items: center;
    gap: 28px;
}

.vsh-nav a {
    color: var(--green-950);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}

.vsh-nav a:hover {
    color: var(--terracotta-dark);
}

.vsh-cta {
    justify-self: end;
    padding: 11px 21px;
    border-radius: 9px;
    background: var(--terracotta);
    color: var(--white);
    text-decoration: none;
    font-size: 14px;
    font-weight: 750;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        transform 0.15s ease;
}

.vsh-cta:hover,
.vsh-mobile-cta:hover {
    background: var(--terracotta-dark);
    color: var(--white);
}

.vsh-account-cta {
    min-height: 44px;
    padding: 8px 15px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border: 1px solid #d7d2c9;
    border-radius: 999px;
    background: var(--white);
    color: var(--green-950);
    box-shadow: 0 3px 12px rgba(31, 77, 66, 0.08);
}

.vsh-account-cta:hover {
    border-color: var(--terracotta);
    background: var(--white);
    color: var(--green-950);
    box-shadow: 0 6px 18px rgba(31, 77, 66, 0.14);
    transform: translateY(-1px);
}

.vsh-account-icon {
    width: 27px;
    height: 27px;
    display: inline-flex;
    flex: 0 0 27px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--green-100);
    color: var(--green-950);
}

.vsh-account-icon svg {
    width: 16px;
    height: 16px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vsh-toggle,
.vsh-mobile-cta {
    display: none;
}

@media (max-width: 680px) {
    .vsh-header {
        padding: 16px 18px;
    }

    .vsh-inner {
        grid-template-columns: 1fr auto;
        gap: 14px;
    }

    .vsh-logo {
        font-size: 32px;
    }

    .vsh-cta {
        display: none;
    }

    .vsh-toggle {
        width: 46px;
        height: 46px;
        padding: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 5px;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: var(--white);
        color: var(--green-950);
        cursor: pointer;
    }

    .vsh-toggle span {
        display: block;
        width: 23px;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
        transition:
            transform 0.18s ease,
            opacity 0.18s ease;
    }

    .vsh-toggle.is-open span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .vsh-toggle.is-open span:nth-child(2) {
        opacity: 0;
    }

    .vsh-toggle.is-open span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .vsh-nav {
        position: absolute;
        top: calc(100% + 16px);
        left: -18px;
        right: -18px;
        display: none;
        padding: 10px 18px 18px;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        border-bottom: 1px solid var(--line);
        background: rgba(248, 245, 239, 0.99);
        box-shadow: 0 18px 30px rgba(31, 77, 66, 0.12);
        backdrop-filter: blur(14px);
    }

    .vsh-nav.is-open {
        display: flex;
    }

    .vsh-nav > a {
        padding: 14px 4px;
        border-bottom: 1px solid var(--line);
        font-size: 16px;
    }

    .vsh-nav > a:nth-last-child(2) {
        border-bottom: 0;
    }

    .vsh-nav .vsh-mobile-cta {
        display: flex;
        margin-top: 10px;
        padding: 13px 16px;
        align-items: center;
        justify-content: center;
        gap: 9px;
        border: 0;
        border-radius: 9px;
        background: var(--terracotta);
        color: var(--white);
        text-align: center;
    }

    .vsh-nav .vsh-mobile-account {
        border: 1px solid #d7d2c9;
        border-radius: 999px;
        background: var(--white);
        color: var(--green-950);
        box-shadow: 0 3px 12px rgba(31, 77, 66, 0.08);
    }

    .vsh-nav .vsh-mobile-account:hover {
        border-color: var(--terracotta);
        background: var(--white);
        color: var(--green-950);
    }
}


/* ==========================================================================
   Shared public footer
   Used by /includes/site-footer.php
   ========================================================================== */

.vsf-footer,
.vsf-footer * {
    box-sizing: border-box;
}

.vsf-footer {
    margin-top: 70px;
    padding: 48px 24px 24px;
    border-top: 1px solid var(--line);
    background: var(--green-950);
    color: var(--cream);
}

.vsf-inner {
    max-width: 1540px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(260px, 1.2fr) 2fr;
    gap: 70px;
    align-items: start;
}

.vsf-brand-column {
    max-width: 390px;
}

.vsf-logo {
    display: inline-block;
    color: var(--cream);
    text-decoration: none;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -1.5px;
}

.vsf-tagline {
    margin: 12px 0 0;
    color: rgba(248, 245, 239, 0.78);
    font-size: 15px;
    line-height: 1.6;
}

.vsf-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
}

.vsf-link-group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.vsf-link-heading {
    margin-bottom: 3px;
    color: var(--cream);
    font-size: 13px;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.vsf-link-group a,
.vsf-legal a {
    color: rgba(248, 245, 239, 0.78);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.5;
    transition: color 0.15s ease;
}

.vsf-link-group a:hover,
.vsf-legal a:hover {
    color: #d98b67;
}

.vsf-bottom {
    max-width: 1540px;
    margin: 38px auto 0;
    padding-top: 20px;
    border-top: 1px solid rgba(248, 245, 239, 0.16);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    color: rgba(248, 245, 239, 0.62);
    font-size: 13px;
}

.vsf-legal {
    display: flex;
    align-items: center;
    gap: 18px;
}

@media (max-width: 820px) {
    .vsf-footer {
        margin-top: 50px;
        padding: 40px 20px 22px;
    }

    .vsf-inner {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .vsf-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vsf-bottom {
        margin-top: 30px;
    }
}

@media (max-width: 560px) {
    .vsf-logo {
        font-size: 31px;
    }

    .vsf-links {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .vsf-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }
}


/* ==========================================================================
   Public legal pages
   Privacy / Terms
   ========================================================================== */

.vsl-page {
    max-width: 920px;
    margin: 0 auto;
    padding: 70px 24px 30px;
    color: var(--green-950);
}

.vsl-page h1 {
    margin: 0 0 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 6vw, 58px);
    line-height: 1.05;
}

.vsl-page h2 {
    margin: 38px 0 12px;
    font-size: 22px;
}

.vsl-page p,
.vsl-page li {
    color: #465a53;
    font-size: 16px;
    line-height: 1.75;
}

.vsl-page a {
    color: var(--terracotta-dark);
}

.vsl-page ul {
    padding-left: 22px;
}

.vsl-meta {
    margin-bottom: 32px;
    color: #73817c;
    font-size: 14px;
}

.vsl-card {
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--white);
}

@media (max-width: 600px) {
    .vsl-page {
        padding-top: 48px;
    }

    .vsl-card {
        padding: 22px;
    }
}

/* ==========================================================================
   Public venue page
   /venue.php
   ========================================================================== */

.venue-page {
    background: var(--cream);
}

.venue-hero {
    max-width: 1280px;
    margin: 0 auto;
    padding: 44px 28px 30px;
}

.venue-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
    color: #716b63;
    font-size: 14px;
}

.venue-breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

.venue-breadcrumbs a:hover {
    text-decoration: underline;
}

.venue-eyebrow {
    margin-bottom: 9px;
    color: #8a5a3b;
    font-size: 13px;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.venue-hero h1 {
    max-width: 980px;
    margin: 0;
    color: #24221f;
    font-size: clamp(42px, 7vw, 82px);
    line-height: 0.98;
    letter-spacing: -0.045em;
}

.venue-intro {
    max-width: 760px;
    margin-top: 22px;
    color: #625d56;
    font-size: clamp(17px, 2vw, 21px);
    line-height: 1.65;
}

.venue-hero-image-wrap {
    max-width: 1480px;
    margin: 0 auto;
    padding: 0 28px;
}

.venue-hero-image {
    display: block;
    width: 100%;
    height: min(58vh, 640px);
    min-height: 360px;
    object-fit: cover;
    border-radius: 24px;
    background: #ded8cf;
    box-shadow: 0 24px 60px rgba(31, 25, 19, 0.15);
}

.venue-meta {
    max-width: 1280px;
    margin: 0 auto;
    padding: 32px 28px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.venue-meta-pill {
    padding: 9px 13px;
    border: 1px solid #ded8cf;
    border-radius: 999px;
    background: var(--white);
    color: #625d56;
    font-size: 13px;
    font-weight: 650;
}

.venue-spaces-section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 58px 28px 90px;
}

.venue-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 28px;
}

.venue-section-heading h2 {
    margin: 0;
    color: #24221f;
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.venue-space-count {
    color: #746e66;
    font-size: 14px;
}

.venue-spaces-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.venue-space-card {
    overflow: hidden;
    border: 1px solid #ded8cf;
    border-radius: 20px;
    background: var(--white);
    box-shadow: 0 14px 38px rgba(31, 25, 19, 0.07);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.venue-space-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 46px rgba(31, 25, 19, 0.11);
}

.venue-space-image-link {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #ded8cf;
    text-decoration: none;
}

.venue-space-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.venue-space-card:hover .venue-space-image {
    transform: scale(1.025);
}

.venue-space-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 25px;
    background: linear-gradient(135deg, #eee8df, #ddd4c8);
    color: #746e66;
    text-align: center;
    font-size: 14px;
}

.venue-360-badge {
    position: absolute;
    left: 16px;
    bottom: 16px;
    padding: 8px 11px;
    border-radius: 999px;
    background: rgba(31, 29, 26, 0.84);
    color: var(--white);
    font-size: 12px;
    font-weight: 750;
    backdrop-filter: blur(8px);
}

.venue-space-body {
    padding: 22px;
}

.venue-space-type {
    margin-bottom: 7px;
    color: #8a5a3b;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.venue-space-title {
    margin: 0 0 10px;
    color: #24221f;
    font-size: 24px;
    line-height: 1.16;
    letter-spacing: -0.025em;
}

.venue-space-title a {
    color: inherit;
    text-decoration: none;
}

.venue-space-description {
    min-height: 50px;
    margin-bottom: 18px;
    color: #746e66;
    font-size: 14px;
    line-height: 1.6;
}

.venue-space-details {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 19px;
}

.venue-space-detail {
    padding: 7px 10px;
    border-radius: 999px;
    background: #f3efe9;
    color: #625d56;
    font-size: 12px;
}

.venue-explore-button {
    display: block;
    width: 100%;
    padding: 12px 15px;
    border-radius: 10px;
    background: #b45f36;
    color: var(--white);
    text-align: center;
    text-decoration: none;
    font-weight: 750;
    transition: background 0.2s ease, transform 0.2s ease;
}

.venue-explore-button:hover {
    background: #974b27;
    transform: translateY(-1px);
}

.venue-no-spaces {
    padding: 52px;
    border: 1px solid #ded8cf;
    border-radius: 20px;
    background: var(--white);
    color: #746e66;
    text-align: center;
}

.venue-about-section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 28px 95px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 70px;
}

.venue-about-copy h2 {
    margin: 0;
    color: #24221f;
    font-size: clamp(30px, 4vw, 44px);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.venue-about-text {
    margin-top: 20px;
    color: #625d56;
    font-size: 17px;
    line-height: 1.8;
}

.venue-contact-card {
    position: sticky;
    top: 28px;
    padding: 28px;
    border: 1px solid #ded8cf;
    border-radius: 20px;
    background: var(--white);
    box-shadow: 0 14px 38px rgba(31, 25, 19, 0.08);
}

.venue-contact-card h3 {
    margin: 0 0 8px;
    color: #24221f;
    font-size: 24px;
    line-height: 1.2;
}

.venue-contact-location {
    margin-bottom: 22px;
    color: #746e66;
    font-size: 14px;
}

.venue-button {
    display: block;
    width: 100%;
    margin-top: 11px;
    padding: 13px 17px;
    border-radius: 10px;
    text-align: center;
    text-decoration: none;
    font-weight: 750;
    transition: transform 0.2s ease, background 0.2s ease;
}

.venue-button:hover {
    transform: translateY(-1px);
}

.venue-button.primary {
    background: #b45f36;
    color: var(--white);
}

.venue-button.primary:hover {
    background: #974b27;
}

.venue-button.secondary {
    border: 1px solid #cbc3b8;
    background: var(--white);
    color: #2b2926;
}

@media (max-width: 1000px) {
    .venue-spaces-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .venue-about-section {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .venue-contact-card {
        position: static;
    }
}

@media (max-width: 650px) {
    .venue-hero {
        padding: 30px 18px 22px;
    }

    .venue-hero-image-wrap {
        padding: 0 12px;
    }

    .venue-hero-image {
        min-height: 280px;
        border-radius: 16px;
    }

    .venue-meta,
    .venue-spaces-section,
    .venue-about-section {
        padding-left: 18px;
        padding-right: 18px;
    }

    .venue-spaces-grid {
        grid-template-columns: 1fr;
    }

    .venue-section-heading {
        align-items: start;
        flex-direction: column;
        gap: 6px;
    }
}

/* ==========================================================================
   Public space page
   /space.php
   Refined editorial layout
   ========================================================================== */

.space-page {
    background: var(--cream);
}

/* ---------- Hero ---------- */

.space-hero {
    max-width: 1280px;
    margin: 0 auto;
    padding: 40px 28px 22px;
}

.space-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 18px;
    color: #79736c;
    font-size: 12px;
}

.space-breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

.space-breadcrumbs a:hover {
    color: var(--terracotta-dark);
}

.space-venue-label {
    margin-bottom: 8px;
    color: var(--terracotta-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.space-hero h1 {
    max-width: 780px;
    margin: 0;
    color: #24221f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(42px, 5.2vw, 64px);
    font-weight: 600;
    line-height: 1.01;
    letter-spacing: -0.045em;
}

.space-intro {
    max-width: 760px;
    margin-top: 16px;
    color: #625d56;
    font-size: clamp(16px, 1.6vw, 19px);
    line-height: 1.62;
}

.space-hero-meta {
    margin-top: 22px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.space-hero-meta span {
    padding: 7px 11px;
    border: 1px solid #ddd8cf;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: #5f5a54;
    font-size: 12px;
    font-weight: 650;
}

/* ---------- 360 viewer ---------- */

.viewer-section {
    max-width: 1420px;
    margin: 0 auto;
    padding: 0 24px;
}

.viewer-frame {
    position: relative;
    overflow: hidden;
    min-height: 520px;
    border: 1px solid rgba(31, 25, 19, 0.08);
    border-radius: 20px;
    background: #1d1d1b;
    box-shadow: 0 22px 55px rgba(31, 25, 19, 0.14);
}

.viewer-frame iframe {
    display: block;
    width: 100%;
    height: min(71vh, 740px);
    min-height: 520px;
    border: 0;
}

.viewer-label {
    position: absolute;
    left: 22px;
    bottom: 22px;
    z-index: 5;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(31, 29, 26, 0.82);
    color: var(--white);
    font-size: 13px;
    font-weight: 700;
    backdrop-filter: blur(8px);
    pointer-events: none;
}

.viewer-message {
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 45px;
    color: var(--white);
    text-align: center;
}

.viewer-message-inner {
    max-width: 580px;
}

.viewer-message h2 {
    margin: 0 0 10px;
    font-size: 30px;
}

.viewer-message p {
    margin: 0;
    color: #d6d1ca;
}

/* ---------- Space content ---------- */

.space-content-shell {
    max-width: 1280px;
    margin: 0 auto;
    padding: 48px 28px 82px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 72px;
    align-items: start;
}

.space-copy {
    padding-top: 7px;
}

.space-copy-eyebrow,
.space-sidebar-kicker {
    margin-bottom: 8px;
    color: var(--terracotta-dark);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.space-copy h2,
.enquiry-card h2 {
    margin: 0;
    color: #24221f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 3.2vw, 40px);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.space-description {
    max-width: 780px;
    margin-top: 18px;
    color: #625d56;
    font-size: 16px;
    line-height: 1.8;
    white-space: pre-line;
}

/* ---------- Venue card ---------- */

.space-sidebar-card {
    position: sticky;
    top: 100px;
    padding: 26px;
    border: 1px solid #ddd8cf;
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
    box-shadow: 0 16px 42px rgba(31, 25, 19, 0.08);
}

.space-sidebar-card h3 {
    margin: 0 0 8px;
    color: #24221f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px;
    font-weight: 600;
    line-height: 1.15;
}

.sidebar-location {
    margin-bottom: 22px;
    color: #746e66;
    font-size: 13px;
    line-height: 1.55;
}

.space-button {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding: 13px 17px;
    border-radius: 9px;
    text-align: center;
    text-decoration: none;
    font-size: 13px;
    font-weight: 750;
    transition:
        transform 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.space-button:hover {
    transform: translateY(-1px);
}

.space-button.primary {
    background: var(--terracotta);
    color: var(--white);
    box-shadow: 0 8px 18px rgba(180, 95, 54, 0.16);
}

.space-button.primary:hover {
    background: var(--terracotta-dark);
    box-shadow: 0 10px 22px rgba(180, 95, 54, 0.22);
}

.space-button.secondary {
    border: 1px solid #cbc3b8;
    background: var(--white);
    color: #2b2926;
}

.space-button.secondary:hover {
    border-color: #bdb3a8;
    background: #fbf9f5;
}

/* ---------- Enquiry ---------- */

.enquiry-section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 28px 95px;
}

.enquiry-card {
    padding: clamp(30px, 4vw, 48px);
    border: 1px solid #ded8cf;
    border-radius: 20px;
    background: var(--white);
    box-shadow: 0 18px 48px rgba(31, 25, 19, 0.07);
}

.enquiry-intro {
    max-width: 680px;
    margin-top: 11px;
    color: #746e66;
    font-size: 14px;
}

.enquiry-grid {
    margin-top: 27px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
}

.enquiry-field.full {
    grid-column: 1 / -1;
}

.enquiry-field label {
    display: block;
    margin-bottom: 7px;
    color: #403c37;
    font-size: 12px;
    font-weight: 750;
}

.enquiry-field input,
.enquiry-field select,
.enquiry-field textarea {
    width: 100%;
    border: 1px solid #cbc3b8;
    border-radius: 9px;
    background: var(--white);
    color: #24221f;
    font: inherit;
    font-size: 14px;
}

.enquiry-field input,
.enquiry-field select {
    height: 47px;
    padding: 0 13px;
}

.enquiry-field textarea {
    min-height: 132px;
    padding: 13px;
    resize: vertical;
}

.enquiry-field input:focus,
.enquiry-field select:focus,
.enquiry-field textarea:focus {
    outline: 2px solid rgba(180, 95, 54, 0.16);
    border-color: var(--terracotta);
}

.enquiry-actions {
    margin-top: 22px;
}

.enquiry-submit {
    min-height: 47px;
    padding: 0 22px;
    border: 0;
    border-radius: 9px;
    background: var(--terracotta);
    color: var(--white);
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
}

.enquiry-submit:hover {
    background: var(--terracotta-dark);
}

.enquiry-success,
.enquiry-error {
    margin-top: 22px;
    padding: 15px 17px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 650;
}

.enquiry-success {
    border: 1px solid #b8dbc5;
    background: #eff9f2;
    color: #23663d;
}

.enquiry-error {
    border: 1px solid #e5b9b2;
    background: #fff1ef;
    color: #8a2f22;
}


/* ---------- All spaces at this venue ---------- */

.venue-spaces-bottom {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 28px 95px;
}

.venue-spaces-bottom-heading {
    margin-bottom: 24px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
}

.venue-spaces-bottom-heading h2 {
    margin: 0;
    color: #24221f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 3.5vw, 42px);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.venue-spaces-bottom-heading > a {
    flex: 0 0 auto;
    color: var(--terracotta-dark);
    text-decoration: none;
    font-size: 13px;
    font-weight: 750;
}

.venue-spaces-bottom-heading > a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.venue-spaces-bottom-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.venue-space-bottom-card {
    overflow: hidden;
    border: 1px solid #ded8cf;
    border-radius: 17px;
    background: var(--white);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 10px 28px rgba(31, 25, 19, 0.06);
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}

.venue-space-bottom-card:hover {
    transform: translateY(-3px);
    border-color: #cfc6bb;
    box-shadow: 0 16px 38px rgba(31, 25, 19, 0.10);
}

.venue-space-bottom-card.is-current {
    border-color: rgba(201, 111, 74, .45);
}

.venue-space-bottom-image {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--cream-strong);
}

.venue-space-bottom-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.venue-space-bottom-card:hover .venue-space-bottom-image img {
    transform: scale(1.025);
}

.venue-space-bottom-copy {
    padding: 20px;
}

.venue-space-bottom-meta {
    min-height: 22px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.venue-space-bottom-meta span {
    color: #79736c;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.venue-space-bottom-meta .current-space-label {
    color: var(--terracotta-dark);
}

.venue-space-bottom-card h3 {
    margin: 7px 0 8px;
    color: var(--green-950);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px;
    font-weight: 600;
    line-height: 1.15;
}

.venue-space-bottom-card p {
    margin: 0;
    color: #746e66;
    font-size: 13px;
    line-height: 1.6;
}

.venue-space-bottom-link {
    display: inline-block;
    margin-top: 16px;
    color: var(--terracotta-dark);
    font-size: 12px;
    font-weight: 750;
}


/* ---------- Responsive ---------- */

@media (max-width: 900px) {
    .venue-spaces-bottom-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .space-content-shell {
        grid-template-columns: 1fr;
        gap: 36px;
        padding-top: 42px;
    }

    .space-sidebar-card {
        position: static;
        max-width: none;
    }

    .viewer-frame,
    .viewer-frame iframe,
    .viewer-message {
        min-height: 430px;
    }

    .viewer-frame iframe {
        height: 60vh;
    }
}

@media (max-width: 640px) {
    .venue-spaces-bottom {
        padding-left: 18px;
        padding-right: 18px;
        padding-bottom: 75px;
    }

    .venue-spaces-bottom-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .venue-spaces-bottom-grid {
        grid-template-columns: 1fr;
    }

    .space-hero {
        padding: 28px 18px 18px;
    }

    .space-breadcrumbs {
        margin-bottom: 15px;
        font-size: 11px;
    }

    .space-hero h1 {
        font-size: clamp(38px, 12vw, 50px);
    }

    .space-intro {
        margin-top: 13px;
        font-size: 16px;
    }

    .space-hero-meta {
        margin-top: 17px;
    }

    .viewer-section {
        padding: 0 12px;
    }

    .viewer-frame {
        border-radius: 15px;
    }

    .viewer-frame,
    .viewer-frame iframe,
    .viewer-message {
        min-height: 360px;
    }

    .space-content-shell,
    .enquiry-section {
        padding-left: 18px;
        padding-right: 18px;
    }

    .space-content-shell {
        padding-top: 38px;
        padding-bottom: 68px;
    }

    .enquiry-grid {
        grid-template-columns: 1fr;
    }

    .enquiry-field.full {
        grid-column: auto;
    }
}

/* ==========================================================================
   Public signup page additions
   /signup.php
   ========================================================================== */

.password-wrap {
    position: relative;
}

.password-wrap input {
    padding-right: 52px;
}

.signup-page .password-toggle {
    position: absolute;
    top: 50%;
    right: 10px;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    border-radius: 8px;
    background: transparent !important;
    color: #68736e !important;
    box-shadow: none !important;
    cursor: pointer;
    transform: translateY(-50%) !important;
}

.signup-page .password-toggle:hover {
    background: rgba(23, 63, 53, 0.08) !important;
    color: #173f35 !important;
    transform: translateY(-50%) !important;
}

.signup-page .password-toggle:focus-visible {
    outline: 2px solid #173f35;
    outline-offset: 2px;
}

.signup-page .password-toggle svg {
    width: 20px;
    height: 20px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.signup-page .password-toggle .icon-hide {
    display: none;
}

.signup-page .password-toggle.is-visible .icon-show {
    display: none;
}

.signup-page .password-toggle.is-visible .icon-hide {
    display: block;
}

/* ==========================================================================
   List Your Venue
   /list-your-venue.php
   ========================================================================== */

.list-your-venue-page {
    --lyv-forest: #173f35;
    --lyv-forest-dark: #0e2d26;
    --lyv-terracotta: #c85f3d;
    --lyv-terracotta-dark: #a9492e;
    --lyv-cream: #f8f5ef;
    --lyv-stone: #f1ede5;
    --lyv-sage: #e2ebe6;
    --lyv-ink: #24302c;
    --lyv-muted: #68726e;
    --lyv-line: #ddd8cf;
    --lyv-white: #ffffff;
    --lyv-shadow: 0 18px 48px rgba(23, 63, 53, 0.1);

    background: var(--lyv-cream);
    color: var(--lyv-ink);
}

.lyv-hero {
    max-width: 1500px;
    margin: 0 auto;
    padding: 28px;
    display: grid;
    grid-template-columns: minmax(360px, 0.82fr) minmax(560px, 1.4fr);
    gap: 52px;
    align-items: center;
}

.lyv-hero-copy {
    padding: 48px 0 48px 25px;
}

.lyv-eyebrow {
    margin-bottom: 14px;
    color: var(--lyv-terracotta-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.list-your-venue-page h1,
.list-your-venue-page h2 {
    margin: 0;
    color: var(--lyv-forest);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 600;
    letter-spacing: -0.045em;
}

.list-your-venue-page h1 {
    max-width: 530px;
    font-size: clamp(54px, 5.3vw, 82px);
    line-height: 1;
}

.list-your-venue-page h2 {
    font-size: clamp(38px, 4vw, 56px);
    line-height: 1.08;
}

.lyv-hero-copy > p {
    max-width: 550px;
    margin: 25px 0 0;
    color: var(--lyv-muted);
    font-size: 18px;
    line-height: 1.72;
}

.lyv-hero-offer {
    margin-top: 25px;
    padding: 17px 19px;
    display: grid;
    gap: 3px;
    border-left: 4px solid var(--lyv-terracotta);
    background: var(--lyv-stone);
}

.lyv-hero-offer strong {
    color: var(--lyv-forest);
    font-size: 17px;
}

.lyv-hero-offer span {
    color: var(--lyv-muted);
    font-size: 13px;
}

.lyv-hero-actions {
    margin-top: 30px;
    display: flex;
    align-items: center;
    gap: 30px;
}

.lyv-button {
    min-height: 52px;
    padding: 0 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 10px;
    font: inherit;
    font-size: 15px;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
}

.lyv-button:hover {
    transform: translateY(-2px);
}

.lyv-button-primary {
    background: var(--lyv-terracotta);
    color: white;
}

.lyv-button-primary:hover {
    background: var(--lyv-terracotta-dark);
}

.lyv-text-link {
    color: var(--lyv-terracotta-dark);
    font-weight: 700;
    text-underline-offset: 5px;
}

.lyv-hero-visual {
    position: relative;
    min-height: 540px;
    overflow: hidden;
    border-radius: 20px;
    background-image:
        linear-gradient(90deg, rgba(14, 45, 38, 0.08), rgba(14, 45, 38, 0.20)),
        url("/assets/images/list-your-venue-hero.jpg"),
        linear-gradient(135deg, #b4c5bc, #496a5d);
    background-position: center;
    background-size: cover;
    box-shadow: var(--lyv-shadow);
}

.lyv-360-badge {
    position: absolute;
    left: 50%;
    bottom: 34px;
    min-width: 138px;
    padding: 13px 18px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 999px;
    background: rgba(14,45,38,.72);
    color: white;
    backdrop-filter: blur(6px);
}

.lyv-360-badge strong {
    font-size: 22px;
}

.lyv-360-badge span {
    font-size: 11px;
}

.lyv-benefits {
    max-width: 1500px;
    margin: 0 auto;
    padding: 22px 48px 52px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid var(--lyv-line);
}

.lyv-benefits article {
    padding: 14px 34px;
    display: flex;
    gap: 17px;
    border-right: 1px solid var(--lyv-line);
}

.lyv-benefits article:last-child {
    border-right: 0;
}

.lyv-benefit-icon {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--lyv-sage);
    color: var(--lyv-forest);
}

.lyv-benefit-icon svg {
    width: 25px;
    height: 25px;
}

.lyv-benefits h2 {
    font-family: inherit;
    font-size: 18px;
    font-weight: 750;
    letter-spacing: -0.02em;
}

.lyv-benefits p {
    margin: 5px 0 0;
    color: var(--lyv-muted);
    font-size: 13px;
}

.lyv-pricing {
    padding: 95px 28px 105px;
}

.lyv-pricing-intro {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

.lyv-pricing-intro > p {
    max-width: 760px;
    margin: 21px auto 0;
    color: var(--lyv-muted);
    font-size: 17px;
    line-height: 1.75;
}

.lyv-pricing-highlights {
    margin-top: 27px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 9px;
}

.lyv-pricing-highlights > span {
    padding: 8px 13px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--lyv-line);
    border-radius: 999px;
    background: white;
    color: var(--lyv-forest);
    font-size: 12px;
    font-weight: 750;
}

.lyv-mini-icon {
    width: 16px;
    height: 16px;
    display: inline-flex;
    flex: 0 0 16px;
}

.lyv-mini-icon svg {
    width: 100%;
    height: 100%;
}

.lyv-pricing-layout {
    max-width: 1200px;
    margin: 48px auto 0;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(310px, 0.65fr);
    gap: 24px;
    align-items: start;
}

.lyv-pricing-table-wrap {
    overflow: hidden;
    border: 1px solid var(--lyv-line);
    border-radius: 20px;
    background: white;
    box-shadow: var(--lyv-shadow);
}

.lyv-pricing-table-heading {
    padding: 26px 28px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
    border-bottom: 1px solid var(--lyv-line);
}

.lyv-pricing-table-heading > div {
    display: grid;
    gap: 4px;
}

.lyv-pricing-table-heading strong {
    color: var(--lyv-forest);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
}

.lyv-pricing-table-heading span {
    color: var(--lyv-muted);
    font-size: 13px;
}

.lyv-pricing-row {
    min-height: 54px;
    padding: 0 28px;
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
    align-items: center;
    gap: 16px;
    border-bottom: 1px solid #ece8e0;
    font-size: 14px;
}

.lyv-pricing-row:last-child {
    border-bottom: 0;
}

.lyv-pricing-row strong {
    color: var(--lyv-forest);
    font-size: 17px;
}

.lyv-pricing-row-head {
    min-height: 48px;
    background: var(--lyv-stone);
    color: var(--lyv-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.lyv-pricing-row.is-highlighted {
    background: #f1f7f3;
}

.lyv-pricing-row.is-highlighted span:first-child::after {
    margin-left: 9px;
    padding: 3px 7px;
    border-radius: 999px;
    background: var(--lyv-forest);
    color: white;
    content: "Popular";
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.lyv-price-card {
    padding: 34px;
    border-radius: 21px;
    background: var(--lyv-forest);
    color: white;
    box-shadow: var(--lyv-shadow);
}

.lyv-price-card > span {
    color: #b8ccc4;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.lyv-price {
    margin: 17px 0 14px;
    display: flex;
    align-items: baseline;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 72px;
    line-height: 1;
}

.lyv-price sup {
    font-size: 31px;
}

.lyv-price small {
    margin-left: 7px;
    font-family: inherit;
    font-size: 14px;
}

.lyv-price-card-intro {
    margin: 0;
    color: #cedbd6;
    font-size: 13px;
}

.lyv-price-card ul {
    margin: 22px 0 25px;
    padding: 20px 0;
    border-top: 1px solid rgba(255,255,255,.18);
    border-bottom: 1px solid rgba(255,255,255,.18);
    list-style: none;
}

.lyv-price-card li {
    padding: 5px 0;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13px;
}

.lyv-price-card li .lyv-mini-icon {
    margin-top: 2px;
    color: #a7cbbd;
}

.lyv-button-light {
    width: 100%;
    background: white;
    color: var(--lyv-forest);
}

.lyv-price-note {
    margin: 16px 0 0;
    color: #aebfba;
    font-size: 11px;
    line-height: 1.55;
}

.lyv-process,
.lyv-faq {
    padding: 100px 28px;
    background: var(--lyv-stone);
}

.lyv-section-heading {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.lyv-section-heading > p {
    margin: 16px 0 0;
    color: var(--lyv-muted);
    font-size: 16px;
}

.lyv-steps {
    max-width: 1200px;
    margin: 50px auto 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.lyv-steps article {
    padding: 34px;
    border: 1px solid var(--lyv-line);
    border-radius: 17px;
    background: white;
}

.lyv-steps strong {
    width: 42px;
    height: 42px;
    margin-bottom: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--lyv-forest);
    color: white;
}

.lyv-steps h3 {
    margin: 0;
    color: var(--lyv-forest);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
}

.lyv-steps p {
    margin: 11px 0 0;
    color: var(--lyv-muted);
    font-size: 14px;
}

.lyv-sharing {
    padding: 100px 28px;
    background: var(--lyv-forest-dark);
    color: white;
}

.lyv-sharing .lyv-section-heading h2 {
    color: white;
}

.lyv-sharing .lyv-section-heading > p {
    color: #bdcbc6;
}

.lyv-sharing-grid {
    max-width: 1200px;
    margin: 48px auto 0;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
}

.lyv-sharing-grid article {
    grid-column: span 2;
    padding: 27px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 15px;
    background: rgba(255,255,255,.055);
}

.lyv-sharing-grid article:nth-child(4) {
    grid-column: 2 / span 2;
}

.lyv-sharing-grid article > span {
    color: var(--lyv-terracotta);
    font-size: 12px;
    font-weight: 800;
}

.lyv-sharing-grid h3 {
    margin: 24px 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px;
    font-weight: 600;
}

.lyv-sharing-grid p {
    margin: 0;
    color: #bdcbc6;
    font-size: 13px;
    line-height: 1.65;
}

.lyv-social-channels {
    margin-top: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lyv-social-channels span {
    padding: 4px 7px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    color: #d7e2de;
    font-size: 10px;
}

.lyv-sharing-note {
    max-width: 1200px;
    margin: 18px auto 0;
    padding: 18px 21px;
    display: flex;
    justify-content: space-between;
    gap: 25px;
    border-left: 3px solid var(--lyv-terracotta);
    background: rgba(255,255,255,.055);
}

.lyv-sharing-note span {
    color: #bdcbc6;
    font-size: 13px;
}

.lyv-free-trial {
    padding: 90px 28px;
    background: var(--lyv-cream);
}

.lyv-free-trial-card {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(270px, .55fr);
    gap: 35px;
    align-items: center;
    border: 1px solid #cad9d1;
    border-radius: 24px;
    background: linear-gradient(135deg, #edf5f0 0%, #fbfcfb 100%);
    box-shadow: var(--lyv-shadow);
}

.lyv-free-trial-heading {
    display: flex;
    align-items: center;
    gap: 15px;
}

.lyv-free-trial-icon {
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 58px;
    border-radius: 17px;
    background: var(--lyv-forest);
    color: white;
}

.lyv-free-trial-icon svg {
    width: 29px;
    height: 29px;
}

.lyv-free-trial h2 {
    margin-top: 10px;
}

.lyv-free-trial-copy > p {
    max-width: 720px;
    margin: 17px 0 0;
    color: var(--lyv-muted);
    font-size: 16px;
}

.lyv-free-trial-list {
    margin: 22px 0 0;
    padding: 0;
    display: grid;
    gap: 10px;
    list-style: none;
}

.lyv-free-trial-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--lyv-ink);
    font-size: 14px;
}

.lyv-free-trial-list .lyv-mini-icon {
    margin-top: 3px;
    color: #26805c;
}

.lyv-free-trial-action {
    padding: 28px;
    border: 1px solid rgba(23,63,53,.12);
    border-radius: 19px;
    background: white;
    text-align: center;
}

.lyv-free-trial-badge {
    width: 130px;
    height: 130px;
    margin: 0 auto 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--lyv-forest);
    border-radius: 24px;
    color: var(--lyv-forest);
}

.lyv-free-trial-badge strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 48px;
    line-height: .9;
}

.lyv-free-trial-badge span {
    margin-top: 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.lyv-free-trial-action p {
    margin: 0 0 20px;
    color: var(--lyv-muted);
    font-size: 14px;
}

.lyv-free-trial-action .lyv-button {
    width: 100%;
}

.lyv-signup {
    max-width: 1200px;
    margin: 0 auto;
    padding: 105px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
}

.lyv-signup > div {
    max-width: 760px;
}

.lyv-signup p {
    margin: 20px 0 0;
    color: var(--lyv-muted);
    font-size: 16px;
    line-height: 1.7;
}

.lyv-signup > .lyv-button {
    flex: 0 0 auto;
    min-width: 190px;
}

.lyv-faq {
    background: var(--lyv-cream);
}

.lyv-faq-grid {
    max-width: 950px;
    margin: 45px auto 0;
    display: grid;
    gap: 10px;
}

.lyv-faq details {
    padding: 20px 22px;
    border: 1px solid var(--lyv-line);
    border-radius: 11px;
    background: white;
}

.lyv-faq summary {
    color: var(--lyv-forest);
    font-weight: 750;
    cursor: pointer;
}

.lyv-faq details p {
    margin: 12px 0 0;
    color: var(--lyv-muted);
    font-size: 14px;
}

@media (max-width: 980px) {
    .lyv-hero,
    .lyv-pricing-layout,
    .lyv-free-trial-card {
        grid-template-columns: 1fr;
    }

    .lyv-price-card {
        max-width: none;
    }

    .lyv-sharing-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lyv-sharing-grid article,
    .lyv-sharing-grid article:nth-child(4) {
        grid-column: auto;
    }

    .lyv-hero-copy {
        padding: 35px 0 5px;
    }

    .lyv-benefits {
        grid-template-columns: 1fr;
    }

    .lyv-benefits article {
        border-right: 0;
        border-bottom: 1px solid var(--lyv-line);
    }

    .lyv-steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {

    .lyv-hero {
        padding: 25px 18px 35px;
        gap: 30px;
    }

    h1 {
        font-size: 49px;
    }

    .lyv-hero-actions {
        align-items: stretch;
        flex-direction: column;
        gap: 17px;
    }

    .lyv-hero-actions .lyv-text-link {
        text-align: center;
    }

    .lyv-hero-visual {
        min-height: 360px;
    }

    .lyv-benefits {
        padding: 15px 18px 40px;
    }

    .lyv-pricing,
    .lyv-process,
    .lyv-faq,
    .lyv-sharing,
    .lyv-free-trial {
        padding: 75px 18px;
    }

    .lyv-pricing-table-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .lyv-pricing-table-heading .lyv-button {
        width: 100%;
    }

    .lyv-pricing-row {
        padding: 13px 18px;
        grid-template-columns: 1fr auto;
        gap: 3px 14px;
    }

    .lyv-pricing-row span:last-child {
        grid-column: 1 / -1;
        color: var(--lyv-muted);
        font-size: 12px;
    }

    .lyv-pricing-row-head {
        display: none;
    }

    .lyv-sharing-grid {
        grid-template-columns: 1fr;
    }

    .lyv-sharing-note,
    .lyv-signup {
        align-items: flex-start;
        flex-direction: column;
    }

    .lyv-free-trial-card {
        padding: 25px;
    }

    .lyv-signup {
        padding: 80px 18px;
    }

    .lyv-signup > .lyv-button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
    }
}

/*
|--------------------------------------------------------------------------
| Added icons
|--------------------------------------------------------------------------
*/

.lyv-inline-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 18px;
}

.lyv-inline-icon svg,
.lyv-benefit-icon svg,
.lyv-trial-icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

.lyv-benefit-icon {
    padding: 13px;
    color: var(--lyv-forest);
}

.lyv-pricing-highlights span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/*
|--------------------------------------------------------------------------
| 30-day free trial
|--------------------------------------------------------------------------
*/

.lyv-trial {
    padding: 95px 28px;
    background: var(--lyv-cream);
}

.lyv-trial-card {
    max-width: 1200px;
    margin: 0 auto;
    padding: 38px;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(310px, 0.65fr);
    gap: 32px;
    align-items: center;
    border: 1px solid rgba(23, 63, 53, 0.12);
    border-radius: 24px;
    background:
        radial-gradient(circle at top right, rgba(226, 235, 230, 0.85), transparent 42%),
        linear-gradient(135deg, #f5faf7, #edf4ef);
    box-shadow: var(--lyv-shadow);
}

.lyv-trial-heading {
    display: flex;
    align-items: flex-start;
    gap: 17px;
}

.lyv-trial-heading .lyv-eyebrow {
    margin-bottom: 8px;
}

.lyv-trial-heading h2 {
    font-size: clamp(35px, 4vw, 52px);
}

.lyv-trial-icon {
    width: 58px;
    height: 58px;
    padding: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 58px;
    border-radius: 17px;
    background: var(--lyv-forest);
    color: white;
}

.lyv-trial-intro {
    max-width: 680px;
    margin: 20px 0 0;
    color: var(--lyv-muted);
    font-size: 16px;
    line-height: 1.7;
}

.lyv-trial-list-title {
    display: block;
    margin-top: 21px;
    color: var(--lyv-forest);
}

.lyv-trial-list {
    margin: 14px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
    list-style: none;
}

.lyv-trial-list li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    color: var(--lyv-ink);
    font-size: 14px;
}

.lyv-trial-check {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 22px;
    border-radius: 50%;
    background: #d9ebdf;
    color: var(--lyv-forest);
    font-size: 12px;
    font-weight: 900;
}

.lyv-trial-cta {
    padding: 27px;
    border: 1px solid rgba(23, 63, 53, 0.10);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.82);
    text-align: center;
}

.lyv-trial-badge {
    width: 128px;
    height: 128px;
    margin: 0 auto 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--lyv-forest);
    border-radius: 25px;
    color: var(--lyv-forest);
}

.lyv-trial-badge strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 48px;
    line-height: 0.9;
}

.lyv-trial-badge span {
    margin-top: 8px;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lyv-trial-cta p {
    margin: 0 0 20px;
    color: var(--lyv-muted);
    font-size: 14px;
    line-height: 1.65;
}

.lyv-trial-cta p strong {
    color: var(--lyv-forest);
}

.lyv-trial-cta .lyv-button {
    width: 100%;
}

@media (max-width: 980px) {
    .lyv-trial-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .lyv-trial {
        padding: 75px 18px;
    }

    .lyv-trial-card {
        padding: 24px;
    }

    .lyv-trial-heading {
        flex-direction: column;
    }

    .lyv-trial-list {
        grid-template-columns: 1fr;
    }
}

/*
|--------------------------------------------------------------------------
| Sharing card number and social icon refinements
|--------------------------------------------------------------------------
*/

.lyv-sharing-grid article > span:first-child {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    border-radius: 17px;
    background: rgba(204, 93, 58, 0.13);
    color: #d76742;
    font-size: 24px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: -0.03em;
}

.lyv-social-channels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.lyv-social-channels span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 0 10px;
}

.lyv-social-channels svg {
    width: 15px;
    height: 15px;
    display: block;
    flex: 0 0 15px;
    fill: currentColor;
}

@media (max-width: 680px) {
    .lyv-sharing-grid article > span:first-child {
        width: 52px;
        height: 52px;
        font-size: 21px;
    }
}


.lyv-sharing-grid .lyv-sharing-social {
    grid-column: span 2;
    padding: 34px 36px;
}

.lyv-sharing-grid .lyv-sharing-social h3 {
    font-size: 31px;
}

.lyv-sharing-grid .lyv-sharing-social p {
    max-width: 680px;
    font-size: 16px;
    line-height: 1.7;
}

.lyv-sharing-grid .lyv-sharing-social .lyv-social-channels {
    margin-top: 22px;
    gap: 10px;
}

.lyv-sharing-grid .lyv-sharing-social .lyv-social-channels span {
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 13px;
}

.lyv-sharing-grid .lyv-sharing-social .lyv-social-channels svg {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
}

@media (max-width: 780px) {
    .lyv-sharing-grid .lyv-sharing-social {
        grid-column: auto;
        padding: 28px;
    }

    .lyv-sharing-grid .lyv-sharing-social h3 {
        font-size: 27px;
    }
}

/* ==========================================================================
   Space page — final overrides
   ========================================================================== */

.space-page .space-venue-label {
    margin-bottom: 8px;
    color: #A95740;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.space-page .space-hero h1 {
    max-width: 760px;
    margin: 0;
    color: #263F40;
    font-size: clamp(38px, 4vw, 54px);
    line-height: 1.04;
    letter-spacing: -.035em;
}

.space-page .space-intro {
    max-width: 760px;
    margin-top: 15px;
    font-size: 18px;
    line-height: 1.6;
}

.space-page .venue-spaces-bottom {
    max-width: 1280px;
    margin: 0 auto;
    padding: 20px 28px 90px;
}

.space-page .venue-spaces-bottom-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 24px;
}

.space-page .venue-spaces-bottom-heading .space-copy-eyebrow {
    margin-bottom: 7px;
    color: #A95740;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.space-page .venue-spaces-bottom-heading h2 {
    margin: 0;
    color: #263F40;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 3vw, 42px);
    font-weight: 600;
    line-height: 1.1;
}

.space-page .venue-spaces-bottom-heading > a {
    margin-bottom: 5px;
    color: #285F63;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.space-page .venue-spaces-bottom-heading > a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.space-page .venue-spaces-bottom-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.space-page .venue-space-bottom-card {
    display: block;
    overflow: hidden;
    border: 1px solid #DED5C7;
    border-radius: 16px;
    background: #fff;
    color: #263F40;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(38, 63, 64, .08);
    transition: transform .25s ease, box-shadow .25s ease;
}

.space-page .venue-space-bottom-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px rgba(38, 63, 64, .13);
}

.space-page .venue-space-bottom-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #DED5C7;
}

.space-page .venue-space-bottom-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.space-page .venue-space-bottom-copy {
    padding: 20px;
}

.space-page .venue-space-bottom-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-bottom: 8px;
}

.space-page .venue-space-bottom-meta span {
    color: #746e66;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.space-page .venue-space-bottom-meta .current-space-label {
    color: #A95740;
}

.space-page .venue-space-bottom-card h3 {
    margin: 0 0 10px;
    color: #263F40;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.15;
}

.space-page .venue-space-bottom-card p {
    margin: 0;
    color: #625d56;
    font-size: 14px;
    line-height: 1.6;
}

.space-page .venue-space-bottom-link {
    display: inline-block;
    margin-top: 17px;
    color: #A95740;
    font-size: 13px;
    font-weight: 700;
}

.space-page .venue-space-bottom-card.is-current {
    border-color: rgba(169, 87, 64, .45);
}

@media (max-width: 900px) {
    .space-page .venue-spaces-bottom-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .space-page .space-venue-label {
        font-size: 15px;
    }

    .space-page .space-hero h1 {
        font-size: 40px;
    }

    .space-page .venue-spaces-bottom {
        padding-left: 18px;
        padding-right: 18px;
    }

    .space-page .venue-spaces-bottom-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .space-page .venue-spaces-bottom-grid {
        grid-template-columns: 1fr;
    }
}

/* ==================================================
   LIST YOUR VENUE — HOW IT WORKS
   Compact vertical spacing
   ================================================== */

.list-your-venue-page .lyv-process {
    padding-top: 52px;
    padding-bottom: 56px;
}

.list-your-venue-page .lyv-process .lyv-section-heading {
    margin-bottom: 0;
}

.list-your-venue-page .lyv-process .lyv-section-heading h2 {
    margin-bottom: 10px;
}

.list-your-venue-page .lyv-steps {
    margin-top: 30px;
    gap: 22px;
}

.list-your-venue-page .lyv-steps article {
    padding: 26px 30px;
    min-height: 0;
}

.list-your-venue-page .lyv-steps strong {
    margin-bottom: 22px;
}

@media (max-width: 768px) {
    .list-your-venue-page .lyv-process {
        padding-top: 42px;
        padding-bottom: 44px;
    }

    .list-your-venue-page .lyv-steps {
        margin-top: 24px;
        gap: 16px;
    }

    .list-your-venue-page .lyv-steps article {
        padding: 24px;
    }

    .list-your-venue-page .lyv-steps strong {
        margin-bottom: 18px;
    }
}


/* ==================================================
   LIST YOUR VENUE — FEATURE CARD ILLUSTRATIONS
   Restores SVG artwork in "More than a 360° tour."
   ================================================== */

.list-your-venue-page .lyv-sharing-visual {
    height: 108px;
    margin: 0 0 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.list-your-venue-page .lyv-sharing-visual svg {
    width: 100%;
    height: 108px;
    display: block;
    overflow: visible;
}

.list-your-venue-page .lyv-sharing-visual svg text {
    fill: rgba(248, 245, 239, 0.52);
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        sans-serif;
    font-size: 5px;
    font-weight: 800;
    letter-spacing: 1.35px;
}

.list-your-venue-page .lyv-visual-ring,
.list-your-venue-page .lyv-visual-orbit,
.list-your-venue-page .lyv-visual-link,
.list-your-venue-page .lyv-visual-window,
.list-your-venue-page .lyv-visual-code,
.list-your-venue-page .lyv-visual-panel,
.list-your-venue-page .lyv-visual-flow,
.list-your-venue-page .lyv-visual-dot,
.list-your-venue-page .lyv-visual-phone,
.list-your-venue-page .lyv-visual-qr,
.list-your-venue-page .lyv-visual-qr-block,
.list-your-venue-page .lyv-visual-scan,
.list-your-venue-page .lyv-visual-network,
.list-your-venue-page .lyv-visual-node,
.list-your-venue-page .lyv-visual-share,
.list-your-venue-page .lyv-visual-axis,
.list-your-venue-page .lyv-visual-bar,
.list-your-venue-page .lyv-visual-trend,
.list-your-venue-page .lyv-visual-eye {
    vector-effect: non-scaling-stroke;
}

.list-your-venue-page .lyv-visual-ring,
.list-your-venue-page .lyv-visual-orbit,
.list-your-venue-page .lyv-visual-link,
.list-your-venue-page .lyv-visual-window,
.list-your-venue-page .lyv-visual-code,
.list-your-venue-page .lyv-visual-panel,
.list-your-venue-page .lyv-visual-flow,
.list-your-venue-page .lyv-visual-dot,
.list-your-venue-page .lyv-visual-phone,
.list-your-venue-page .lyv-visual-qr,
.list-your-venue-page .lyv-visual-scan,
.list-your-venue-page .lyv-visual-network,
.list-your-venue-page .lyv-visual-node,
.list-your-venue-page .lyv-visual-share,
.list-your-venue-page .lyv-visual-axis,
.list-your-venue-page .lyv-visual-trend,
.list-your-venue-page .lyv-visual-eye {
    stroke: rgba(222, 235, 229, 0.58);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.list-your-venue-page .lyv-visual-orbit,
.list-your-venue-page .lyv-visual-flow,
.list-your-venue-page .lyv-visual-scan,
.list-your-venue-page .lyv-visual-share,
.list-your-venue-page .lyv-visual-trend {
    stroke: var(--terracotta);
}

.list-your-venue-page .lyv-visual-panel,
.list-your-venue-page .lyv-visual-dot,
.list-your-venue-page .lyv-visual-node-main {
    stroke: var(--terracotta);
}

.list-your-venue-page .lyv-visual-qr-block,
.list-your-venue-page .lyv-visual-bar {
    fill: rgba(222, 235, 229, 0.46);
    stroke: rgba(222, 235, 229, 0.58);
    stroke-width: 1.2;
}

.list-your-venue-page .lyv-visual-bar-2,
.list-your-venue-page .lyv-visual-bar-3 {
    fill: rgba(201, 111, 74, 0.18);
}

.list-your-venue-page .lyv-sharing-number {
    position: relative;
    z-index: 2;
}

@media (max-width: 768px) {
    .list-your-venue-page .lyv-sharing-visual {
        height: 96px;
        margin-bottom: 16px;
    }

    .list-your-venue-page .lyv-sharing-visual svg {
        height: 96px;
    }
}


/* ==================================================
   LIST YOUR VENUE — 3 × 3 FEATURE GRID
   Overrides the old 6-card centering rule.
   ================================================== */

@media (min-width: 781px) {
    .list-your-venue-page .lyv-sharing-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .list-your-venue-page .lyv-sharing-grid article,
    .list-your-venue-page .lyv-sharing-grid article:nth-child(4),
    .list-your-venue-page .lyv-sharing-grid .lyv-sharing-social {
        grid-column: auto;
    }
}


/* ==================================================
   LIST YOUR VENUE — FINAL 3x3 / INCLUDED NOTE FIX
   ================================================== */

/* Keep all 9 feature cards visually equal */
.list-your-venue-page .lyv-sharing-grid .lyv-sharing-social {
    grid-column: auto;
    padding: 27px;
}

.list-your-venue-page .lyv-sharing-grid .lyv-sharing-social h3 {
    font-size: 24px;
}

.list-your-venue-page .lyv-sharing-grid .lyv-sharing-social p {
    max-width: none;
    font-size: 13px;
    line-height: 1.65;
}

.list-your-venue-page .lyv-sharing-grid .lyv-sharing-social .lyv-social-channels {
    margin-top: 15px;
    gap: 8px;
}

.list-your-venue-page .lyv-sharing-grid .lyv-sharing-social .lyv-social-channels span {
    min-height: 32px;
    padding: 0 10px;
    font-size: 10px;
}

.list-your-venue-page .lyv-sharing-grid .lyv-sharing-social .lyv-social-channels svg {
    width: 15px;
    height: 15px;
    flex-basis: 15px;
}

/* Compact "Included with every live space" strip */
.list-your-venue-page .lyv-sharing-note {
    max-width: 1200px;
    margin: 18px auto 0;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.list-your-venue-page .lyv-sharing-note-title {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    color: #ffffff;
}

.list-your-venue-page .lyv-sharing-note-title strong {
    font-size: 14px;
    line-height: 1.3;
}

.list-your-venue-page .lyv-sharing-note-icon {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
    color: #bdcbc6;
}

.list-your-venue-page .lyv-sharing-note-icon svg {
    width: 24px !important;
    height: 24px !important;
    display: block;
}

.list-your-venue-page .lyv-sharing-note-copy {
    text-align: right;
    line-height: 1.55;
}

@media (max-width: 780px) {
    .list-your-venue-page .lyv-sharing-note {
        align-items: flex-start;
        flex-direction: column;
        gap: 9px;
    }

    .list-your-venue-page .lyv-sharing-note-copy {
        text-align: left;
    }
}


/* ==================================================
   LIST YOUR VENUE — INCLUDED NOTE CHECK ICON FIX
   ================================================== */

.list-your-venue-page .lyv-sharing-note-icon,
.list-your-venue-page .lyv-sharing-note-icon svg {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    min-height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
}

.list-your-venue-page .lyv-sharing-note-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px !important;
    line-height: 1;
    overflow: hidden;
}

.list-your-venue-page .lyv-sharing-note-icon svg {
    display: block !important;
    flex: 0 0 24px !important;
    overflow: visible;
}


/* ==========================================================================
   VuSpaces — PUBLIC STYLE REBOOT
   Photographer-inspired structure + OpenStreetMap park green accent
   Added 2026-09-23
   ========================================================================== */

:root {
    --vs-bg: #f7f7f5;
    --vs-surface: #ffffff;
    --vs-surface-soft: #f1f2ef;

    --vs-text: #202326;
    --vs-muted: #64696c;

    --vs-border: #e5e6e4;
    --vs-border-dark: #d5d7d8;

    /* Park / map inspired lime */
    --vs-lime: #c9f8cc;
    --vs-lime-hover: #b6edba;
    --vs-lime-strong: #9fdfa7;
    --vs-lime-soft: #e7f9e8;

    --vs-radius-sm: 8px;
    --vs-radius-md: 14px;
    --vs-radius-lg: 18px;

    --vs-shadow-card: 0 10px 28px rgba(0, 0, 0, 0.055);
    --vs-shadow-large: 0 24px 70px rgba(0, 0, 0, 0.10);

    /* Re-map legacy variables */
    --green-950: #202326;
    --green-900: #202326;
    --green-800: #43494b;
    --green-100: #e7f9e8;

    --cream: #f7f7f5;
    --cream-strong: #f1f2ef;

    --terracotta: #c9f8cc;
    --terracotta-dark: #9fdfa7;

    --ink: #202326;
    --muted: #64696c;
    --line: #e5e6e4;
    --white: #ffffff;

    --shadow-soft: var(--vs-shadow-large);
    --shadow-card: var(--vs-shadow-card);
}


/* ==========================================================================
   BASE
   ========================================================================== */

html {
    background: var(--vs-bg);
}

body,
.venue-page,
.space-page,
.list-your-venue-page {
    background: var(--vs-bg);
    color: var(--vs-text);
}

body {
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;
    line-height: 1.6;
}

a {
    color: inherit;
}

::selection {
    background: var(--vs-lime);
    color: var(--vs-text);
}


/* ==========================================================================
   TYPE
   ========================================================================== */

.logo,
.vsh-logo,
.vsf-logo,
.hero h1,
.section-top h2,
.list-heading strong,
.type-name,
.card-title,
.venue-hero h1,
.venue-section-heading h2,
.venue-space-title,
.venue-about-copy h2,
.space-hero h1,
.space-copy h2,
.enquiry-card h2,
.space-sidebar-card h3,
.venue-spaces-bottom-heading h2,
.venue-space-bottom-card h3,
.signup-page .signup-promise h2,
.signup-page h1,
.list-your-venue-page h1,
.list-your-venue-page h2,
.lyv-pricing-table-heading strong,
.lyv-price,
.lyv-steps h3,
.lyv-trial-badge strong,
.lyv-free-trial-badge strong {
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif !important;
}

.hero h1,
.venue-hero h1,
.space-hero h1,
.list-your-venue-page h1,
.signup-page h1 {
    color: var(--vs-text) !important;
    font-weight: 700 !important;
    letter-spacing: -2px !important;
}

.section-top h2,
.venue-section-heading h2,
.venue-about-copy h2,
.space-copy h2,
.enquiry-card h2,
.venue-spaces-bottom-heading h2,
.list-your-venue-page h2 {
    color: var(--vs-text) !important;
    font-weight: 700 !important;
    letter-spacing: -1.2px !important;
}

.hero-intro,
.venue-intro,
.space-intro,
.space-description,
.venue-about-text,
.enquiry-intro,
.card-meta,
.sidebar-location,
.lyv-hero-copy > p,
.signup-page .intro {
    color: var(--vs-muted) !important;
}


/* ==========================================================================
   EYEBROWS / LABELS
   ========================================================================== */

.eyebrow,
.venue-eyebrow,
.space-venue-label,
.space-copy-eyebrow,
.space-sidebar-kicker,
.lyv-eyebrow,
.signup-page .eyebrow,
.signup-page .promise-eyebrow {
    color: #5d6668 !important;
    font-size: 12px !important;
    font-weight: 750 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase;
}


/* ==========================================================================
   HEADER
   ========================================================================== */

.site-header,
.vsh-header {
    min-height: 74px;
    padding: 0 24px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #e8e8e8;
    background: rgba(255,255,255,.97);
    color: var(--vs-text);
    backdrop-filter: blur(12px);
    box-shadow: none;
}

.header-inner,
.vsh-inner {
    width: 100%;
}

.logo,
.vsh-logo {
    color: var(--vs-text) !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    letter-spacing: -.5px !important;
}

.nav,
.vsh-nav {
    gap: 24px;
}

.nav a,
.vsh-nav a {
    color: var(--vs-text) !important;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.nav a:hover,
.vsh-nav a:hover {
    color: #000 !important;
}


/* ==========================================================================
   BUTTON SYSTEM
   ========================================================================== */

.header-cta,
.vsh-cta,
.search-button,
.card-link,
.venue-explore-button,
.venue-button.primary,
.space-button.primary,
.enquiry-submit,
.signup-page .card button,
.lyv-button-primary,
.lyv-button-light,
.nav .mobile-login-link,
.vsh-nav .vsh-mobile-cta {
    min-height: 46px;
    border: 1px solid var(--vs-lime-strong) !important;
    border-radius: var(--vs-radius-sm) !important;
    background: var(--vs-lime) !important;
    color: var(--vs-text) !important;
    -webkit-text-fill-color: var(--vs-text) !important;
    box-shadow: none !important;
    font-weight: 700 !important;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.header-cta:hover,
.vsh-cta:hover,
.search-button:hover,
.card-link:hover,
.venue-explore-button:hover,
.venue-button.primary:hover,
.space-button.primary:hover,
.enquiry-submit:hover,
.signup-page .card button:hover,
.lyv-button-primary:hover,
.lyv-button-light:hover,
.nav .mobile-login-link:hover,
.vsh-nav .vsh-mobile-cta:hover {
    border-color: var(--vs-lime-strong) !important;
    background: var(--vs-lime-hover) !important;
    color: #111 !important;
    transform: translateY(-1px);
}

.vsh-account-cta,
.clear-button,
.venue-button.secondary,
.space-button.secondary {
    border: 1px solid var(--vs-border-dark) !important;
    border-radius: var(--vs-radius-sm) !important;
    background: var(--vs-surface) !important;
    color: var(--vs-text) !important;
    box-shadow: none !important;
}

.vsh-account-cta:hover,
.clear-button:hover,
.venue-button.secondary:hover,
.space-button.secondary:hover {
    border-color: var(--vs-text) !important;
    background: var(--vs-surface) !important;
    color: var(--vs-text) !important;
}


/* ==========================================================================
   HERO
   ========================================================================== */

.hero {
    padding-top: 56px;
    padding-bottom: 30px;
}

.hero h1 {
    max-width: 900px;
}

.hero-intro {
    max-width: 760px;
    margin-top: 14px;
    font-size: 18px;
    line-height: 1.65;
}


/* ==========================================================================
   SEARCH / FILTERS
   ========================================================================== */

.search-form,
.filter-field select,
.signup-page input,
.enquiry-field input,
.enquiry-field select,
.enquiry-field textarea {
    border: 1px solid var(--vs-border-dark) !important;
    border-radius: var(--vs-radius-sm) !important;
    background: var(--vs-surface) !important;
    color: var(--vs-text) !important;
    box-shadow: none !important;
}

.search-form {
    padding: 5px;
}

.search-input {
    color: var(--vs-text);
}

.search-input:focus,
.filter-field select:focus,
.signup-page input:focus,
.enquiry-field input:focus,
.enquiry-field select:focus,
.enquiry-field textarea:focus {
    outline: none !important;
    border-color: #747a7c !important;
    box-shadow: 0 0 0 3px rgba(32,35,38,.08) !important;
}


/* ==========================================================================
   DISCOVERY / MAP
   ========================================================================== */

.discovery-shell {
    border: 1px solid var(--vs-border);
    border-radius: var(--vs-radius-md);
    background: var(--vs-surface);
    box-shadow: var(--vs-shadow-card);
}

.discovery-list,
.list-heading {
    background: #fff;
}

.discovery-list {
    border-left-color: var(--vs-border);
}

.list-heading {
    border-bottom-color: var(--vs-border);
}

.list-heading strong,
.map-list-title,
.popup-space {
    color: var(--vs-text);
}

.map-list-card {
    border-bottom-color: #eeeeec;
    border-left-width: 3px;
}

.map-list-card:hover {
    background: var(--vs-bg);
}

.map-list-card.is-active {
    border-left-color: var(--vs-lime-strong);
    background: var(--vs-lime-soft);
    box-shadow: inset 0 0 0 1px rgba(32,35,38,.035);
}

.map-list-venue,
.popup-venue,
.popup-primary-link {
    color: #596163;
}

.map-list-image,
.card-image,
.venue-space-placeholder,
.venue-space-bottom-image {
    background: var(--vs-surface-soft);
}

.tour-label,
.popup-tour,
.card-badge {
    border-radius: 999px;
    background: var(--vs-text);
    color: #fff;
}


/* ==========================================================================
   CARDS
   ========================================================================== */

.type-card,
.space-card,
.venue-space-card,
.venue-contact-card,
.space-sidebar-card,
.enquiry-card,
.venue-space-bottom-card,
.vsl-card,
.signup-page .card,
.lyv-pricing-table-wrap,
.lyv-steps article,
.lyv-faq details,
.lyv-free-trial-action,
.lyv-trial-cta {
    border: 1px solid var(--vs-border) !important;
    border-radius: var(--vs-radius-md) !important;
    background: var(--vs-surface) !important;
    box-shadow: none !important;
}

.type-card,
.space-card,
.venue-space-card,
.venue-space-bottom-card {
    transition:
        transform .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.type-card:hover,
.space-card:hover,
.venue-space-card:hover,
.venue-space-bottom-card:hover {
    transform: translateY(-2px);
    border-color: var(--vs-border-dark) !important;
    box-shadow: var(--vs-shadow-card) !important;
}

.type-name,
.card-title,
.venue-space-title,
.venue-about-copy h2,
.venue-contact-card h3,
.space-copy h2,
.enquiry-card h2,
.space-sidebar-card h3,
.venue-spaces-bottom-heading h2,
.venue-space-bottom-card h3 {
    color: var(--vs-text) !important;
}

.card-body,
.venue-space-body,
.venue-space-bottom-copy {
    padding: 24px;
}


/* ==========================================================================
   PILLS / META
   ========================================================================== */

.meta-pill,
.venue-meta-pill,
.venue-space-detail,
.space-hero-meta span,
.lyv-pricing-highlights > span {
    border: 1px solid var(--vs-border) !important;
    border-radius: 999px;
    background: var(--vs-surface-soft) !important;
    color: #555d60 !important;
}

.featured-badge {
    border: 1px solid var(--vs-border);
    background: rgba(255,255,255,.96);
    color: var(--vs-text);
}


/* ==========================================================================
   VENUE PAGE
   ========================================================================== */

.venue-page {
    background: var(--vs-bg);
}

.venue-hero {
    padding-top: 54px;
}

.venue-hero-image {
    border-radius: var(--vs-radius-lg);
    box-shadow: var(--vs-shadow-large);
}

.venue-space-type {
    color: #5d6668;
}

.venue-space-description,
.venue-about-text,
.venue-contact-location {
    color: var(--vs-muted);
}


/* ==========================================================================
   SPACE PAGE
   ========================================================================== */

.space-page {
    background: var(--vs-bg);
}

.space-page .space-venue-label,
.space-page .venue-spaces-bottom-heading .space-copy-eyebrow,
.space-page .venue-space-bottom-meta .current-space-label,
.space-page .venue-space-bottom-link {
    color: #5d6668 !important;
}

.viewer-frame {
    border-radius: var(--vs-radius-lg);
    box-shadow: var(--vs-shadow-large);
}

.space-sidebar-card {
    background: #fff !important;
}


/* ==========================================================================
   SIGNUP PAGE
   ========================================================================== */

.signup-page {
    background:
        linear-gradient(
            90deg,
            #202326 0,
            #202326 46%,
            #f7f7f5 46%,
            #f7f7f5 100%
        ) !important;
}

.signup-page .signup-panel {
    color: #fff;
}

.signup-page .signup-promise h2,
.signup-page .promise-pricing strong {
    color: #fff !important;
}

.signup-page .signup-promise > p,
.signup-page .promise-pricing {
    color: rgba(255,255,255,.72) !important;
}

.signup-page .signup-points li {
    color: rgba(255,255,255,.92) !important;
}

.signup-page .signup-points li::before {
    color: var(--vs-lime) !important;
}

.signup-page .promise-pricing {
    border-left-color: var(--vs-lime) !important;
    background: rgba(255,255,255,.07);
}

.signup-page .card {
    border-radius: var(--vs-radius-lg) !important;
    box-shadow: var(--vs-shadow-large) !important;
}


/* ==========================================================================
   LIST YOUR VENUE
   ========================================================================== */

.list-your-venue-page {
    --lyv-forest: #202326;
    --lyv-forest-dark: #202326;
    --lyv-terracotta: #c9f8cc;
    --lyv-terracotta-dark: #9fdfa7;
    --lyv-cream: #f7f7f5;
    --lyv-stone: #f1f2ef;
    --lyv-sage: #e7f9e8;
    --lyv-ink: #202326;
    --lyv-muted: #64696c;
    --lyv-line: #e5e6e4;
    --lyv-white: #ffffff;
    --lyv-shadow: var(--vs-shadow-card);

    background: var(--vs-bg);
    color: var(--vs-text);
}

.lyv-hero-offer {
    border-left-color: var(--vs-lime-strong);
    background: var(--vs-surface-soft);
}

.lyv-benefit-icon,
.lyv-steps strong,
.lyv-trial-icon,
.lyv-free-trial-icon {
    background: var(--vs-text);
    color: #fff;
}

.lyv-price-card,
.lyv-sharing {
    background: var(--vs-text);
}

.lyv-price-card .lyv-button-light {
    border-color: var(--vs-lime-strong) !important;
    background: var(--vs-lime) !important;
    color: var(--vs-text) !important;
}

.lyv-sharing-grid article {
    border-color: rgba(255,255,255,.14);
    background: rgba(255,255,255,.055);
}

.lyv-sharing-grid article > span:first-child {
    background: rgba(201,248,204,.13) !important;
    color: var(--vs-lime) !important;
}

.lyv-trial-card,
.lyv-free-trial-card {
    border: 1px solid var(--vs-border) !important;
    background: #fff !important;
    box-shadow: none !important;
}

.lyv-trial-check {
    background: var(--vs-lime-soft);
    color: var(--vs-text);
}


/* ==========================================================================
   LEGAL
   ========================================================================== */

.vsl-page {
    color: var(--vs-text);
}

.vsl-page h1,
.vsl-page h2 {
    color: var(--vs-text);
}

.vsl-page p,
.vsl-page li {
    color: var(--vs-muted);
}

.vsl-page a {
    color: var(--vs-text);
    text-decoration-color: var(--vs-lime-strong);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}


/* ==========================================================================
   FOOTER
   ========================================================================== */

.footer,
.vsf-footer {
    border-top-color: #202326;
    background: #202326;
    color: rgba(255,255,255,.68);
}

.vsf-logo,
.vsf-link-heading,
.footer strong {
    color: #fff;
}

.vsf-tagline,
.vsf-link-group a,
.vsf-legal a {
    color: rgba(255,255,255,.70);
}

.vsf-link-group a:hover,
.vsf-legal a:hover {
    color: var(--vs-lime);
}


/* ==========================================================================
   SMALL ACCENTS
   ========================================================================== */

.results-summary.is-loading,
.no-results strong {
    color: var(--vs-text);
}

.vsh-account-icon {
    background: var(--vs-lime-soft);
    color: var(--vs-text);
}

.venue-360-badge,
.viewer-label {
    background: rgba(32,35,38,.86);
    color: #fff;
}

.lyv-pricing-row.is-highlighted {
    background: var(--vs-lime-soft);
}

.lyv-pricing-row.is-highlighted span:first-child::after {
    background: var(--vs-lime);
    color: var(--vs-text);
}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 900px) {
    .signup-page {
        background: var(--vs-bg) !important;
    }

    .signup-page .signup-panel {
        background: #202326 !important;
    }
}

@media (max-width: 680px) {
    .site-header,
    .vsh-header {
        min-height: 66px;
        padding: 0 18px;
    }

    .logo,
    .vsh-logo {
        font-size: 23px !important;
    }

    .menu-toggle,
    .vsh-toggle {
        border-color: var(--vs-border-dark);
        border-radius: var(--vs-radius-sm);
        background: #fff;
        color: var(--vs-text);
    }

    .nav,
    .vsh-nav {
        background: rgba(255,255,255,.995) !important;
        box-shadow: 0 18px 30px rgba(0,0,0,.08);
    }

    .hero {
        padding-top: 42px;
    }

    .hero-intro {
        font-size: 17px;
    }

    .venue-hero-image,
    .viewer-frame {
        border-radius: 14px;
    }
}


/* ==========================================================================
   VuSpaces wordmark + shared header final alignment
   Matches Photographer area
   ========================================================================== */

.vsh-inner {
    max-width: 1180px;
}

.vsh-logo,
.vsf-logo {
    display: inline-flex;
    align-items: baseline;
}

.vsh-logo-vu,
.vsf-logo-vu {
    font-weight: 700 !important;
}

.vsh-logo-spaces,
.vsf-logo-spaces {
    font-weight: 400 !important;
}

@media (max-width: 680px) {
    .vsh-inner {
        max-width: none;
    }
}


/* ==========================================================================
   EYEBROWS — stronger visibility
   ========================================================================== */

.eyebrow,
.venue-eyebrow,
.space-venue-label,
.space-copy-eyebrow,
.space-sidebar-kicker,
.lyv-eyebrow,
.signup-page .eyebrow,
.signup-page .promise-eyebrow {
    color: #4f585a !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.35;
    letter-spacing: 1.7px !important;
    text-transform: uppercase;
}

/* Eyebrows on dark sections */
.lyv-sharing .lyv-eyebrow,
.signup-page .promise-eyebrow,
.lyv-price-card .lyv-eyebrow {
    color: #c9f8cc !important;
}

/* Slightly stronger spacing below eyebrow labels */
.eyebrow,
.venue-eyebrow,
.space-venue-label,
.space-copy-eyebrow,
.space-sidebar-kicker,
.lyv-eyebrow,
.signup-page .eyebrow,
.signup-page .promise-eyebrow {
    margin-bottom: 10px;
}


/* Find location button */
.find-map-button {
    background: #202427 !important;
    color: #ffffff !important;
    border: 0 !important;
}

.find-map-button:hover,
.find-map-button:focus {
    background: #303638 !important;
    color: #ffffff !important;
}

.find-map-button:disabled {
    color: #ffffff !important;
    opacity: 0.65;
}