:root {
    --va-emerald: #2F5D50;
    --va-emerald-deep: #16302B;
    --va-brass: #C8A95B;
    --va-brass-deep: #A8842F;
    --va-stone: #F6F4EF;
    --va-charcoal: #10171A;
}

html, body {
    margin: 0;
    padding: 0;
    font-family: 'Jost', 'Helvetica Neue', Arial, sans-serif;
    scroll-behavior: smooth;
}

h1, h2, h3, h4, .serif {
    font-family: 'Cormorant Garamond', Georgia, serif;
}

/* ---------- scrollbar ---------- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(120,130,124,.4); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: rgba(120,130,124,.7); }

/* ---------- eyebrow label ---------- */
.va-eyebrow {
    text-transform: uppercase;
    letter-spacing: 3px;
    font-size: .72rem;
    font-weight: 500;
    color: var(--va-brass-deep);
    display: inline-flex;
    align-items: center;
    gap: .6rem;
}
.va-eyebrow::before {
    content: "";
    width: 28px;
    height: 1px;
    background: var(--va-brass);
    display: inline-block;
}

/* ---------- public hero ---------- */
.va-hero {
    position: relative;
    min-height: 92vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: radial-gradient(120% 120% at 70% 10%, #214b40 0%, #16302B 45%, #0c1c18 100%);
}
.va-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: .55;
    filter: saturate(1.05);
    transform: scale(1.05);
    animation: vaSlowZoom 24s ease-in-out infinite alternate;
}
@keyframes vaSlowZoom { from { transform: scale(1.05); } to { transform: scale(1.16); } }
.va-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(8,18,15,.85) 0%, rgba(8,18,15,.55) 45%, rgba(8,18,15,.15) 100%);
}
.va-hero-inner { position: relative; z-index: 2; }

.va-hero-title {
    color: #F4F1EA;
    font-size: clamp(2.8rem, 6vw, 5.4rem);
    line-height: 1.02;
    font-weight: 600;
    letter-spacing: -1px;
}
.va-hero-accent { color: var(--va-brass); font-style: italic; }

/* staggered entrance */
.va-reveal { opacity: 0; transform: translateY(22px); animation: vaReveal .9s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes vaReveal { to { opacity: 1; transform: none; } }
.va-d1 { animation-delay: .1s; }
.va-d2 { animation-delay: .28s; }
.va-d3 { animation-delay: .46s; }
.va-d4 { animation-delay: .64s; }

/* ---------- gallery cards ---------- */
.va-gallery-card {
    position: relative;
    overflow: hidden;
    border-radius: 6px;
    cursor: pointer;
    background: #0c1c18;
}
.va-gallery-card img, .va-gallery-card .va-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .9s cubic-bezier(.2,.7,.2,1), filter .6s ease;
}
.va-gallery-card:hover img, .va-gallery-card:hover .va-img { transform: scale(1.07); }
.va-gallery-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.4rem;
    background: linear-gradient(0deg, rgba(7,16,13,.92) 0%, rgba(7,16,13,.35) 45%, rgba(7,16,13,0) 70%);
    color: #F4F1EA;
}
.va-gallery-overlay .va-cat {
    text-transform: uppercase;
    letter-spacing: 2.5px;
    font-size: .64rem;
    color: var(--va-brass);
    opacity: 0;
    transform: translateY(8px);
    transition: all .45s ease;
}
.va-gallery-card:hover .va-cat { opacity: 1; transform: none; }
.va-gallery-meta {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-top: .25rem; opacity: .85; font-size: .78rem;
}

/* ---------- generic card lift ---------- */
.va-lift { transition: transform .35s ease, box-shadow .35s ease; }
.va-lift:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(0,0,0,.45); }

/* ---------- kpi tile ---------- */
.va-kpi { position: relative; overflow: hidden; }
.va-kpi::after {
    content: "";
    position: absolute;
    right: -30px; top: -30px;
    width: 120px; height: 120px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(200,169,91,.16), transparent 70%);
}
.va-kpi-value { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; line-height: 1; }

/* brass divider rule */
.va-rule { width: 56px; height: 2px; background: var(--va-brass); border: 0; margin: 1rem 0; }

/* section background tint */
.va-section-stone { background: var(--va-stone); }
.va-section-deep { background: var(--va-emerald-deep); color: #ECE9E1; }

/* monogram avatar */
.va-monogram { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; letter-spacing: .5px; }

/* public nav links */
.va-navlink {
    color: #EFEDE6; text-decoration: none; letter-spacing: 1.5px;
    text-transform: uppercase; font-size: .74rem; font-weight: 500;
    padding: .25rem 0; position: relative;
}
.va-navlink::after {
    content: ""; position: absolute; left: 0; bottom: -2px; height: 1px; width: 0;
    background: var(--va-brass); transition: width .35s ease;
}
.va-navlink:hover::after { width: 100%; }

.va-fade { animation: vaReveal .8s ease forwards; }

/* Blazor error ui (keep template behaviour, restyled) */
#blazor-error-ui {
    color-scheme: light only;
    background: #16302B;
    color: #F4F1EA;
    bottom: 0;
    box-shadow: 0 -1px 8px rgba(0,0,0,.3);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.8rem 1.4rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}
#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 1rem;
    top: 0.6rem;
}
.blazor-error-boundary {
    background: #b23a3a;
    padding: 1rem;
    color: white;
}
