/*
 * VivahLok theme — loaded after aiz-core.css on frontend pages.
 * Maroon + gold palette; primary colours also come from the admin
 * appearance settings via --primary / --hov-primary.
 */
:root {
    --vl-hdr-m: 98px; /* phone header: logo row + section strip */
    --vl-maroon: #8e1b3a;
    --vl-maroon-dark: #6b1229;
    --vl-maroon-deep: #2a0d16;
    --vl-rose: #c8385a;
    --vl-gold: #d4a54a;
    --vl-gold-dark: #b8862b;
    --vl-gold-soft: #f8eedb;
    --vl-cream: #fff9f3;
    --vl-ink: #2b1a1f;
    --vl-muted: #6e5e63;
    --vl-line: #eadfd6;
    --vl-wine: #4a1419;
    --vl-wine-deep: #350e12;
    --vl-header: #4e161b;
    --vl-sand: #f8f2ea;
    --vl-sand-deep: #f1e5d6;
    --vl-radius: 14px;
    --vl-shadow: 0 10px 30px rgba(43, 26, 31, .08);
    --vl-shadow-lg: 0 24px 60px rgba(43, 26, 31, .18);
    --vl-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
}

body { color: var(--vl-muted); }
h1, h2, h3, .vl-serif { font-family: var(--vl-serif); color: var(--vl-ink); }
a { color: var(--vl-maroon); }
a:hover { color: var(--vl-maroon-dark); }

/* ---------- Buttons ---------- */
.btn-vl,
.btn-primary,
.bg-primary-grad {
    background: linear-gradient(135deg, var(--vl-maroon) 0%, var(--vl-rose) 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
}
.btn-vl:hover, .btn-primary:hover { filter: brightness(1.08); box-shadow: 0 8px 20px rgba(142, 27, 58, .28); }
.btn-vl { border-radius: 999px; font-weight: 600; padding: .7rem 1.6rem; letter-spacing: .2px; }
.btn-vl-gold {
    background: var(--vl-gold); color: var(--vl-maroon-deep) !important; border-radius: 999px;
    font-weight: 600; padding: .6rem 1.4rem; border: 0;
}
.btn-vl-gold:hover { background: var(--vl-gold-dark); color: #fff !important; }
.btn-vl-outline {
    border: 1.5px solid var(--vl-maroon); color: var(--vl-maroon) !important; border-radius: 999px;
    font-weight: 600; padding: .55rem 1.4rem; background: transparent;
}
.btn-vl-outline:hover { background: var(--vl-maroon); color: #fff !important; }
.text-primary-grad {
    background: linear-gradient(135deg, var(--vl-maroon), var(--vl-rose)) !important;
    -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important;
}
.text-gold { color: var(--vl-gold) !important; }
.text-maroon { color: var(--vl-maroon) !important; }
.bg-cream { background: var(--vl-cream) !important; }
.bg-maroon-deep { background: var(--vl-maroon-deep) !important; }

/* ---------- Header ---------- */
.vl-header { background: var(--vl-header); box-shadow: 0 6px 24px rgba(20, 6, 9, .25); }
.vl-header .logo img { height: 44px; width: auto; }
@media (min-width: 992px) { .vl-header-row { height: 76px; } }
.vl-nav { list-style: none; margin: 0 auto; padding: 0 1rem; display: flex; align-items: center; gap: .15rem; }
.vl-nav > li > a {
    display: block; padding: 1.6rem .85rem; color: rgba(255, 255, 255, .86); font-weight: 500; font-size: 14.5px;
    position: relative; white-space: nowrap;
}
.vl-nav > li > a::after {
    content: ''; position: absolute; left: .85rem; right: .85rem; bottom: 1.15rem; height: 2px;
    background: var(--vl-gold); transform: scaleX(0); transition: transform .2s ease;
}
.vl-nav > li > a:hover::after, .vl-nav > li.active > a::after { transform: scaleX(1); }
.vl-nav > li > a:hover, .vl-nav > li.active > a { color: #fff; }
.vl-nav > li.active > a { color: var(--vl-gold); }
.vl-more-menu { min-width: 210px; padding: .4rem; }
.vl-more-menu .dropdown-item { display: flex; align-items: center; gap: .6rem; padding: .55rem .8rem; border-radius: 8px; color: var(--vl-ink); font-size: 14px; }
.vl-more-menu .dropdown-item i { color: var(--vl-gold-dark); font-size: 18px; }
.vl-more-menu .dropdown-item:hover { background: var(--vl-gold-soft); color: var(--vl-maroon); }
.vl-header-actions { gap: 1.1rem; }
.vl-header-login { color: rgba(255, 255, 255, .9); font-weight: 500; font-size: 14.5px; }
.vl-header-login:hover { color: var(--vl-gold); }
.vl-header-icon { position: relative; color: rgba(255, 255, 255, .9); font-size: 21px; display: inline-flex; padding: 4px; }
.vl-header-icon:hover { color: var(--vl-gold); }
.vl-header-icon .badge-status { top: 4px; right: 3px; }
.vl-header-user { display: inline-flex; align-items: center; gap: .5rem; color: #fff; font-weight: 500; font-size: 14px; }
.vl-header-user:hover { color: var(--vl-gold); }
.vl-header-user img { border: 2px solid var(--vl-gold); }
.vl-header .vl-lang-header > a, .vl-header .vl-lang-mobile > a { color: rgba(255, 255, 255, .9) !important; opacity: 1; font-size: 14px; }
.vl-lang-header > a:hover, .vl-header .vl-lang-mobile > a:hover { color: var(--vl-gold); }

/* Rectangular buttons from the redesign (header, hero) */
.vl-btn-gold { background: var(--vl-gold); color: var(--vl-maroon-deep) !important; border: 0; border-radius: 6px; font-weight: 600; padding: .6rem 1.25rem; font-size: 14px; }
.vl-btn-gold:hover { background: var(--vl-gold-dark); color: #fff !important; }
.vl-btn-wine { background: var(--vl-maroon); color: #fff !important; border: 1px solid var(--vl-maroon); border-radius: 6px; font-weight: 600; padding: .85rem 1.9rem; }
.vl-btn-wine:hover { background: var(--vl-maroon-dark); border-color: var(--vl-maroon-dark); box-shadow: 0 10px 24px rgba(0, 0, 0, .3); }
.vl-btn-ghost { background: rgba(0, 0, 0, .15); color: #fff !important; border: 1px solid rgba(255, 255, 255, .75); border-radius: 6px; font-weight: 600; padding: .85rem 1.9rem; }
.vl-btn-ghost:hover { background: #fff; color: var(--vl-maroon-deep) !important; }
.vl-header .dropdown-menu { border: 0; box-shadow: var(--vl-shadow-lg); border-radius: var(--vl-radius); }
.vl-browse-menu { min-width: 520px; padding: 1.25rem; }
.vl-browse-menu h6 { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; color: var(--vl-gold-dark); }
.vl-browse-menu a { display: block; padding: .2rem 0; color: var(--vl-ink); font-size: 14px; }
.vl-browse-menu a:hover { color: var(--vl-maroon); }
.vl-mobile-nav { overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
.vl-mobile-nav { border-color: rgba(255, 255, 255, .12) !important; }
.vl-mobile-nav a { display: inline-block; padding: .65rem .85rem; color: rgba(255, 255, 255, .82); font-weight: 500; font-size: 14px; }
.vl-mobile-nav a.active { color: var(--vl-gold); box-shadow: inset 0 -2px 0 var(--vl-gold); }
/* Member app bar: logo | divider | daily sections | search, language, alerts, avatar */
.vl-header-app { background: var(--vl-wine-deep); }
.vl-app-divider { width: 1px; height: 30px; margin: 0 1.1rem 0 1.25rem; background: rgba(255, 248, 239, .22); }
.vl-app-nav { padding: 0; margin: 0; }
.vl-app-nav > li > a { padding-left: .75rem; padding-right: .75rem; font-size: 14px; }
.vl-app-nav > li > a::after { left: .75rem; right: .75rem; }
.vl-nav-dot { position: absolute; top: 1.35rem; right: .3rem; width: 7px; height: 7px; border-radius: 50%; background: var(--vl-gold); }
.vl-lang-compact > a span { display: none; }
.vl-account-menu { min-width: 240px; }
.vl-account-head { padding: .6rem .8rem .7rem; margin-bottom: .3rem; border-bottom: 1px solid var(--vl-line); line-height: 1.35; }
.vl-account-head strong { display: block; color: var(--vl-ink); font-size: 14px; }
.vl-account-head span { font-size: 12px; color: var(--vl-muted); }
@media (min-width: 992px) and (max-width: 1199.98px) {
    .vl-app-nav > li > a { padding-left: .5rem; padding-right: .5rem; font-size: 13.5px; }
    .vl-app-nav > li > a::after { left: .5rem; right: .5rem; }
    .vl-app-divider { margin: 0 .6rem 0 .8rem; }
    .vl-header-app .vl-header-actions { gap: .75rem; }
}
.vl-app-mobile-nav a { display: inline-flex; align-items: center; gap: .35rem; }
.vl-app-mobile-nav a i { font-size: 17px; }

/* ---------- Hero ---------- */
.vl-hero { position: relative; min-height: 640px; display: flex; align-items: center; overflow: hidden; background: var(--vl-maroon-deep); }
.vl-hero-bg, .vl-hero-bg .aiz-carousel, .vl-hero-bg .slick-list, .vl-hero-bg .slick-track { position: absolute; inset: 0; height: 100%; }
.vl-hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.vl-hero::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(100deg, rgba(42, 13, 22, .92) 0%, rgba(107, 18, 41, .72) 45%, rgba(42, 13, 22, .25) 100%);
}
.vl-hero-pattern {
    background-image: radial-gradient(rgba(212, 165, 74, .18) 1px, transparent 1px);
    background-size: 22px 22px;
}
.vl-hero-inner { position: relative; z-index: 2; width: 100%; padding: 8rem 0 5rem; }
.vl-hero h1 { color: #fff; font-size: 3rem; line-height: 1.15; font-weight: 700; }
.vl-hero h1 span { color: var(--vl-gold); }
.vl-hero .lead { color: rgba(255, 255, 255, .85); font-size: 1.15rem; max-width: 560px; }
.vl-eyebrow {
    display: inline-flex; align-items: center; gap: .5rem; color: var(--vl-gold); font-weight: 600;
    text-transform: uppercase; letter-spacing: 2px; font-size: 12px;
}
.vl-eyebrow::before { content: ''; width: 28px; height: 1.5px; background: currentColor; }

.vl-search {
    background: #fff; border-radius: 18px; box-shadow: var(--vl-shadow-lg); padding: 1.25rem; margin-top: 2.25rem;
}
.vl-search label { font-size: 12px; font-weight: 600; color: var(--vl-muted); text-transform: uppercase; letter-spacing: .6px; margin-bottom: .35rem; }
.vl-search .form-control, .vl-search .bootstrap-select > .dropdown-toggle {
    height: 48px; border-radius: 10px; border: 1px solid var(--vl-line); background: var(--vl-cream); color: var(--vl-ink);
}
.vl-search .form-control:focus { border-color: var(--vl-gold); box-shadow: 0 0 0 3px rgba(212, 165, 74, .2); }
.vl-search .vl-age { display: flex; align-items: center; gap: .4rem; }
.vl-search .vl-age span { color: var(--vl-muted); font-size: 13px; }
.vl-search .btn-vl { height: 48px; width: 100%; }
/* One row on desktop, two columns on tablets, stacked on phones */
.vl-search-grid { display: flex; align-items: flex-end; gap: .85rem; }
.vl-search-field { flex: 1 1 0; min-width: 0; }
.vl-search-field:has(.vl-age) { flex-grow: 1.35; }
.vl-search-submit { flex: 0 0 150px; }
@media (max-width: 991.98px) {
    .vl-search-grid { flex-wrap: wrap; }
    .vl-search-field { flex: 1 1 calc(50% - .85rem); }
    .vl-search-submit { flex: 1 1 100%; }
}
@media (max-width: 575.98px) {
    .vl-search-field { flex-basis: 100%; }
}
.vl-hero-trust { color: rgba(255, 255, 255, .8); font-size: 14px; margin-top: 1.25rem; }
.vl-hero-trust i { color: var(--vl-gold); }

/* Cinematic hero: photo/video background, dark overlay, value headline, trust bar */
.vl-hero-cinematic { min-height: 720px; align-items: stretch; background: radial-gradient(ellipse at 75% 30%, #5c1a24 0%, var(--vl-wine) 45%, #1d080c 100%); }
.vl-hero-cinematic::after { background: linear-gradient(90deg, rgba(20, 6, 9, .88) 0%, rgba(20, 6, 9, .62) 42%, rgba(20, 6, 9, .12) 75%), linear-gradient(0deg, rgba(20, 6, 9, .75) 0%, transparent 38%); }
.vl-hero-cinematic:not(.has-media)::after { background: linear-gradient(0deg, rgba(20, 6, 9, .5) 0%, transparent 40%); }
.vl-hero-cinematic .vl-hero-poster { position: absolute; inset: 0; animation: vlKenBurns 24s ease-in-out infinite alternate; }
.vl-hero-cinematic.has-media { background: #1a0b0b; }
/* Desktop: the couple sits on the right and fades into the dark side where the headline is */
@media (min-width: 992px) {
    .vl-hero-cinematic .vl-hero-poster, .vl-hero-cinematic .vl-hero-video { object-position: 70% 20%; }
    .vl-hero-cinematic.has-media::after { background: linear-gradient(90deg, rgba(14, 6, 6, .92) 0%, rgba(14, 6, 6, .7) 30%, rgba(14, 6, 6, .15) 55%, rgba(14, 6, 6, 0) 70%), linear-gradient(0deg, rgba(14, 6, 6, .85) 0%, rgba(14, 6, 6, 0) 32%); }
}
.vl-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.2s ease; }
.vl-hero-video.is-ready { opacity: 1; }
@keyframes vlKenBurns { from { transform: scale(1); } to { transform: scale(1.08); } }
.vl-hero-cinematic .vl-hero-inner { display: flex; flex-direction: column; justify-content: center; padding: 9.5rem 0 2rem; }
.vl-hero-cinematic .vl-hero-inner > .container { display: flex; flex-direction: column; flex: 1; }
.vl-hero-cinematic .vl-hero-inner > .container > .row { flex: 1; align-items: center; }
.vl-hero-cinematic h1 { font-size: 3.2rem; font-weight: 500; line-height: 1.16; letter-spacing: -.4px; max-width: 9.6em; color: #fff8ef; }
.vl-hero-cinematic .lead { color: rgba(255, 248, 239, .8); font-size: 1.08rem; line-height: 1.65; max-width: 30em; }
.vl-hero-ctas { gap: .85rem; margin-top: .5rem; }
/* Glass trust panel: large gold figures, small warm-white labels, thin separators */
.vl-hero-trustbar {
    display: flex; align-items: center; margin-top: 3.25rem; padding: 1.25rem 1.25rem; border-radius: 12px;
    background: rgba(18, 7, 8, .5); border: 1px solid rgba(212, 165, 74, .3);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.vl-hero-trustbar .item { flex: 1; text-align: center; padding: .15rem 1.25rem; color: rgba(255, 248, 239, .78); font-size: 13px; line-height: 1.45; }
.vl-hero-trustbar .item + .item { border-left: 1px solid rgba(255, 248, 239, .14); }
.vl-hero-trustbar .lbl-short { display: none; }
.vl-hero-trustbar strong { display: block; font-family: var(--vl-serif); color: var(--vl-gold); font-size: 2rem; font-weight: 500; line-height: 1.15; margin-bottom: .25rem; letter-spacing: .2px; }
.vl-hero-sound { flex: 0 0 auto; display: flex; align-items: center; gap: .9rem; padding-left: 1.25rem; border-left: 1px solid rgba(255, 248, 239, .14); color: rgba(255, 248, 239, .78); font-size: 12.5px; line-height: 1.35; text-align: center; max-width: 230px; }
.vl-hero-sound[hidden] { display: none; }
.vl-hero-mute {
    flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 248, 239, .35);
    background: transparent; color: #fff; font-size: 20px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
}
.vl-hero-mute:hover { background: rgba(255, 255, 255, .12); }
/* Visible keyboard focus on the dark hero and header */
.vl-hero-cinematic a:focus-visible, .vl-hero-cinematic button:focus-visible, .vl-header a:focus-visible, .vl-header button:focus-visible { outline: 2px solid var(--vl-gold); outline-offset: 3px; box-shadow: none; }
.vl-browse-cta { display: flex !important; align-items: center; gap: .5rem; margin-bottom: 1rem; padding: .6rem .8rem !important; border-radius: 8px; background: var(--vl-gold-soft); color: var(--vl-maroon) !important; font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .vl-hero-cinematic .vl-hero-poster { animation: none; } }

/* Quick search band under the hero */
.vl-search-band { background: var(--vl-sand); padding: 3.5rem 0 3rem; }
.vl-search-head h2 { font-size: 2.1rem; font-weight: 600; color: var(--vl-maroon-deep); margin-bottom: .4rem; }
.vl-search-head p { color: var(--vl-muted); }
.vl-search-band .vl-search { margin-top: 1.5rem; border-radius: 12px; box-shadow: 0 14px 40px rgba(43, 26, 31, .1); }
.vl-search-band .vl-search .btn-vl { border-radius: 8px; background: var(--vl-maroon) !important; }
/* "New here? / Already a member?" as two tappable cards */
.vl-search-paths { display: flex; gap: .85rem; margin-top: 1.25rem; }
.vl-path {
    flex: 0 1 330px; display: flex; align-items: center; gap: .85rem; min-height: 64px; padding: .7rem 1rem;
    background: #fff; border: 1px solid var(--vl-line); border-radius: 12px; color: var(--vl-ink);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.vl-path:hover, .vl-path:focus-visible { color: var(--vl-ink); border-color: var(--vl-gold); box-shadow: 0 8px 22px rgba(43, 26, 31, .08); transform: translateY(-1px); }
.vl-path:focus-visible { outline: 2px solid var(--vl-gold); outline-offset: 2px; }
.vl-path .ico { flex: 0 0 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--vl-gold-soft); color: var(--vl-maroon); font-size: 20px; }
.vl-path .txt { flex: 1; min-width: 0; line-height: 1.3; }
.vl-path strong { display: block; font-size: 14.5px; color: var(--vl-maroon-deep); }
.vl-path small { display: block; font-size: 13px; color: var(--vl-muted); }
.vl-path .go { font-size: 18px; color: var(--vl-gold-dark); transition: transform .2s ease; }
.vl-path:hover .go { transform: translateX(3px); }
.vl-path-new { border-color: rgba(212, 165, 74, .55); }
.vl-path-new .ico { background: var(--vl-maroon); color: #fff; }

/* Trust cards + how it works */
.vl-trust { background: var(--vl-sand); padding-top: 1rem; }
.vl-heading-left { margin-bottom: 2.25rem; }
.vl-heading-left h2 { font-size: 2.4rem; font-weight: 600; color: var(--vl-maroon-deep); margin-bottom: .5rem; }
.vl-heading-left p { font-size: 1.05rem; color: var(--vl-ink); opacity: .8; margin-bottom: 1rem; }
.vl-heading-left::after { content: ''; display: block; width: 180px; height: 1.5px; background: linear-gradient(90deg, var(--vl-gold), transparent); }
.vl-trust-card {
    height: 100%; min-height: 230px; padding: 1.6rem 1.4rem; border-radius: 10px; color: rgba(255, 255, 255, .88);
    background: linear-gradient(160deg, #5a1a20 0%, var(--vl-wine) 100%); box-shadow: 0 12px 30px rgba(74, 20, 25, .22);
    transition: transform .2s ease;
}
.vl-trust-card:hover { transform: translateY(-4px); }
.vl-trust-card h3 { color: var(--vl-gold); font-size: 1.3rem; font-weight: 600; margin-bottom: 1rem; line-height: 1.25; }
.vl-trust-card p { margin: 0; font-size: 14px; line-height: 1.75; }
.vl-trust-photo { width: 100%; height: 100%; min-height: 230px; object-fit: cover; border-radius: 10px; }
.vl-hiw {
    display: flex; gap: 2rem; margin-top: 1.5rem; padding: 2.25rem 2rem; border-radius: 14px;
    background: var(--vl-sand-deep); border: 1px solid rgba(212, 165, 74, .25);
}
.vl-hiw-intro { flex: 0 0 200px; }
.vl-hiw-intro h2 { font-size: 1.6rem; font-weight: 500; color: var(--vl-maroon-deep); margin-bottom: .9rem; }
.vl-hiw-intro p { font-size: 14px; color: var(--vl-ink); opacity: .8; line-height: 1.7; }
.vl-hiw-steps { flex: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.vl-hiw-steps li { position: relative; }
.vl-hiw-steps .num { display: flex; align-items: center; gap: .9rem; font-family: var(--vl-serif); font-size: 2.6rem; color: var(--vl-gold-dark); line-height: 1; margin-bottom: .9rem; }
.vl-hiw-steps li:not(:last-child) .num::after { content: ''; flex: 1; height: 1.5px; background: var(--vl-gold); opacity: .7; margin-right: -.75rem; }
.vl-hiw-steps h3 { font-family: inherit; font-size: 1.05rem; font-weight: 500; color: var(--vl-maroon-deep); margin-bottom: .45rem; }
.vl-hiw-steps p { font-size: 13.5px; line-height: 1.65; color: var(--vl-muted); }

/* ---------- Sections ---------- */
.vl-section { padding: 5rem 0; }
.vl-section-sm { padding: 3.5rem 0; }
.vl-section-title { text-align: center; max-width: 720px; margin: 0 auto 3rem; }
.vl-section-title h2 { font-size: 2.25rem; font-weight: 700; margin-bottom: .75rem; }
.vl-section-title p { font-size: 1.05rem; color: var(--vl-muted); margin: 0; }
.vl-ornament { display: flex; align-items: center; justify-content: center; gap: .6rem; color: var(--vl-gold); margin-bottom: .75rem; }
.vl-ornament::before, .vl-ornament::after { content: ''; width: 40px; height: 1.5px; background: currentColor; opacity: .7; }
.vl-section-dark .vl-section-title h2 { color: #fff; }
.vl-section-dark .vl-section-title p { color: rgba(255, 255, 255, .7); }

/* Stats strip */
.vl-stats { background: var(--vl-cream); border-bottom: 1px solid var(--vl-line); }
.vl-stat { text-align: center; padding: 2rem 1rem; }
.vl-stat .num { font-family: var(--vl-serif); font-size: 2.1rem; font-weight: 700; color: var(--vl-maroon); line-height: 1.1; }
.vl-stat .label { font-size: 14px; color: var(--vl-muted); margin-top: .35rem; }
.vl-stat i { font-size: 30px; color: var(--vl-gold); margin-bottom: .5rem; display: block; }

/* Feature cards */
.vl-feature {
    background: #fff; border: 1px solid var(--vl-line); border-radius: var(--vl-radius); padding: 2rem 1.75rem;
    height: 100%; transition: transform .2s ease, box-shadow .2s ease;
}
.vl-feature:hover { transform: translateY(-4px); box-shadow: var(--vl-shadow); }
.vl-feature .icon {
    width: 64px; height: 64px; border-radius: 50%; background: var(--vl-gold-soft); color: var(--vl-maroon);
    display: flex; align-items: center; justify-content: center; font-size: 30px; margin-bottom: 1.25rem;
}
.vl-feature h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: .6rem; }
.vl-feature p { margin: 0; font-size: 15px; line-height: 1.7; }

/* How it works */
.vl-step { text-align: center; position: relative; padding: 0 1rem; }
.vl-step .badge-num {
    width: 36px; height: 36px; border-radius: 50%; background: var(--vl-maroon); color: #fff; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1rem; box-shadow: 0 0 0 6px var(--vl-gold-soft);
}
.vl-step img { height: 72px; width: auto; margin-bottom: 1rem; }
.vl-step h3 { font-size: 1.1rem; font-weight: 700; }

/* Member cards (wrap existing member_box_1) */
.vl-member-card > .rounded { border-radius: var(--vl-radius) !important; border-color: var(--vl-line) !important; transition: box-shadow .2s ease, transform .2s ease; }
.vl-member-card > .rounded:hover { box-shadow: var(--vl-shadow); transform: translateY(-3px); }
.vl-member-card .h-350px { height: 300px !important; }

/* Happy stories */
.vl-story { border-radius: var(--vl-radius); overflow: hidden; background: #fff; box-shadow: var(--vl-shadow); height: 100%; }
.vl-story img { width: 100%; height: 260px; object-fit: cover; }
.vl-story .body { padding: 1.25rem 1.4rem 1.5rem; }
.vl-story .names { font-family: var(--vl-serif); color: var(--vl-maroon); font-size: 1.15rem; font-weight: 700; }

/* Packages */
.vl-package { border: 1px solid var(--vl-line); border-radius: var(--vl-radius); background: #fff; height: 100%; transition: box-shadow .2s ease; }
.vl-package:hover { box-shadow: var(--vl-shadow); }
.vl-package .price { font-family: var(--vl-serif); font-size: 2.4rem; font-weight: 700; color: var(--vl-maroon); }

/* FAQ */
.vl-faq .card { border: 1px solid var(--vl-line); border-radius: 12px !important; margin-bottom: .75rem; overflow: hidden; }
.vl-faq .card-header { background: #fff; border: 0; padding: 0; }
.vl-faq .card-header button {
    width: 100%; text-align: left; padding: 1.1rem 1.25rem; background: none; border: 0; color: var(--vl-ink);
    font-weight: 600; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.vl-faq .card-header button:focus { outline: 2px solid var(--vl-gold); outline-offset: -2px; }
.vl-faq .card-header button i { color: var(--vl-gold-dark); transition: transform .2s ease; }
.vl-faq .card-header button[aria-expanded="true"] i { transform: rotate(45deg); }
.vl-faq .card-body { padding: 0 1.25rem 1.2rem; line-height: 1.75; }

/* Browse grid */
.vl-browse .nav-tabs { border: 0; justify-content: center; gap: .5rem; margin-bottom: 2rem; flex-wrap: wrap; }
.vl-browse .nav-tabs .nav-link {
    border: 1px solid var(--vl-line); border-radius: 999px; color: var(--vl-ink); font-weight: 500; padding: .5rem 1.2rem; background: #fff;
}
.vl-browse .nav-tabs .nav-link.active { background: var(--vl-maroon); color: #fff; border-color: var(--vl-maroon); }
.vl-browse-links { columns: 4 180px; column-gap: 2rem; list-style: none; padding: 0; margin: 0; }
.vl-browse-links li { break-inside: avoid; padding: .3rem 0; }
.vl-browse-links a { color: var(--vl-ink); font-size: 15px; }
.vl-browse-links a:hover { color: var(--vl-maroon); text-decoration: underline; }

/* CTA band */
.vl-cta { background: linear-gradient(120deg, var(--vl-maroon-dark), var(--vl-maroon) 55%, var(--vl-rose)); color: #fff; border-radius: 22px; padding: 3rem; position: relative; overflow: hidden; }
.vl-cta h2 { color: #fff; font-size: 2rem; }
.vl-cta p { color: rgba(255, 255, 255, .85); }

/* Landing pages */
.vl-page-hero { background: linear-gradient(120deg, var(--vl-maroon-deep), var(--vl-maroon)); color: #fff; padding: 4.5rem 0 3.5rem; }
.vl-page-hero h1 { color: #fff; font-size: 2.5rem; }
.vl-page-hero p { color: rgba(255, 255, 255, .8); }
.vl-breadcrumb { font-size: 13px; color: rgba(255, 255, 255, .7); }
.vl-breadcrumb a { color: var(--vl-gold); }
.vl-empty { border: 1.5px dashed var(--vl-line); border-radius: var(--vl-radius); padding: 3rem 1.5rem; text-align: center; background: var(--vl-cream); }
.vl-empty i { font-size: 48px; color: var(--vl-gold); }
.vl-chip { display: inline-block; border: 1px solid var(--vl-line); border-radius: 999px; padding: .35rem .9rem; margin: 0 .35rem .5rem 0; color: var(--vl-ink); font-size: 14px; background: #fff; }
.vl-chip:hover { border-color: var(--vl-maroon); color: var(--vl-maroon); }

/* ---------- Footer ---------- */
.aiz-footer.vl-footer { background: var(--vl-maroon-deep) !important; color: rgba(255, 255, 255, .72); }
.vl-footer h4 { color: var(--vl-gold) !important; font-family: 'Poppins', sans-serif; font-size: 13px; letter-spacing: 1.2px; text-transform: uppercase; font-weight: 600; margin-bottom: 1.1rem; }
.vl-footer a { color: rgba(255, 255, 255, .72); }
.vl-footer a:hover { color: #fff; }
.vl-footer ul li { margin-bottom: .55rem; }
.vl-footer .vl-footer-browse a { display: inline-block; margin: 0 .9rem .5rem 0; font-size: 13px; }
.vl-footer .vl-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .12); }
.vl-footer .social a { background: rgba(255, 255, 255, .08); }

/* Space under the absolutely positioned header on inner pages */
.vl-page-offset { padding-top: 102px; }
@media (min-width: 992px) {
    .vl-page-offset { padding-top: 76px; }
    .vl-page-offset.vl-page-offset-member { padding-top: 76px; }
}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
    .vl-hero { min-height: 0; }
    .vl-hero-inner { padding: 6.5rem 0 3rem; }
    .vl-hero h1 { font-size: 2.2rem; }
    .vl-section { padding: 3.5rem 0; }
    .vl-section-title h2 { font-size: 1.75rem; }
    .vl-cta { padding: 2rem 1.5rem; }
    .vl-page-hero h1 { font-size: 1.9rem; }
    .vl-hero-cinematic { min-height: 0; }
    .vl-hero-cinematic .vl-hero-inner { padding: 8rem 0 1.5rem; }
    .vl-hero-cinematic h1 { font-size: 2.4rem; }
    .vl-hero-trustbar strong { font-size: 1.6rem; }
    .vl-hero-sound { display: none; }
    .vl-hero-cinematic::after, .vl-hero-cinematic.has-media::after { background: linear-gradient(0deg, rgba(26, 11, 11, .95) 0%, rgba(26, 11, 11, .75) 45%, rgba(26, 11, 11, .35) 100%); }
    .vl-hero-cinematic .vl-hero-poster { object-position: 50% 20%; }
    /* Phones/tablets: show the couple's faces at the top, text and buttons below them */
    .vl-hero-cinematic.has-media .vl-hero-poster { object-position: 50% 0; }
    .vl-hero-cinematic.has-media .vl-hero-inner { padding-top: calc(110px + min(70vw, 480px)); }
    .vl-hero-cinematic.has-media::after { background: linear-gradient(180deg, rgba(14, 6, 6, .35) 0, rgba(14, 6, 6, 0) 90px, rgba(14, 6, 6, 0) calc(40px + min(48vw, 330px)), rgba(14, 6, 6, .9) calc(110px + min(70vw, 480px)), rgba(14, 6, 6, .96) 100%); }
    .vl-hero-trustbar { padding: 1rem .5rem; margin-top: 2.25rem; }
    .vl-hero-trustbar .item { padding: .15rem .6rem; font-size: 12px; }
    .vl-hiw { flex-direction: column; padding: 1.75rem 1.5rem; }
    .vl-hiw-intro { flex: none; }
    .vl-hiw-steps { grid-template-columns: repeat(2, 1fr); }
    .vl-hiw-steps .num::after { display: none; }
    .vl-heading-left h2, .vl-search-head h2 { font-size: 1.8rem; }
}
@media (max-width: 575.98px) {
    .vl-header .logo img { height: 36px; }
    .vl-mobile-auth .btn { padding: .35rem .8rem !important; font-size: 13px; white-space: nowrap; }
    .vl-hero-inner { padding-top: 7.5rem; }
    .vl-hero h1 { font-size: 1.85rem; }
    .vl-stat .num { font-size: 1.6rem; }
    .vl-browse-links { columns: 2; }
    /* Phones: the couple photo keeps its natural shape at the top (both faces always in view),
       then fades into dark behind the headline; buttons sit side by side; trust figures in one row */
    .vl-hero-cinematic.has-media { background: #0e0606; }
    .vl-hero-cinematic.has-media .vl-hero-bg { top: var(--vl-hdr-m); bottom: auto; height: 150vw; }
    .vl-hero-cinematic.has-media .vl-hero-poster { object-position: 50% 0; animation: none; }
    .vl-hero-cinematic.has-media::after { background: linear-gradient(180deg, rgba(14, 6, 6, 0) 0, rgba(14, 6, 6, 0) calc(var(--vl-hdr-m) + 40vw), rgba(14, 6, 6, .88) calc(var(--vl-hdr-m) + 72vw), #0e0606 calc(var(--vl-hdr-m) + 96vw)); }
    .vl-hero-cinematic.has-media .vl-hero-inner { padding: calc(var(--vl-hdr-m) + 66vw) 0 1.5rem; }
    .vl-hero-cinematic h1 { font-size: 1.85rem; line-height: 1.18; margin-bottom: .6rem !important; text-shadow: 0 2px 18px rgba(0, 0, 0, .45); }
    .vl-hero-cinematic .lead { font-size: .98rem; line-height: 1.55; margin-bottom: 1.15rem !important; }
    .vl-hero-ctas { flex-wrap: nowrap !important; gap: .6rem; margin-top: 0; }
    .vl-hero-ctas .btn { flex: 1 1 0; min-width: 0; padding: .8rem .5rem; font-size: 14px; white-space: nowrap; min-height: 48px; }
    .vl-hero-trustbar { margin-top: 1.4rem; padding: .75rem .25rem; }
    .vl-hero-trustbar .item { padding: 0 .35rem; font-size: 11.5px; line-height: 1.3; }
    .vl-hero-trustbar strong { font-size: 1.2rem; margin-bottom: .15rem; }
    .vl-hero-trustbar .lbl-long { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } /* still read by screen readers */
    .vl-hero-trustbar .lbl-short { display: block; }
    .vl-hiw-steps { grid-template-columns: 1fr; }
    .vl-trust-card { min-height: 0; }
    .vl-search-paths { flex-direction: column; gap: .6rem; }
    .vl-path { flex: none; }
}

/* Admin-managed custom pages (terms, privacy, about ...) */
.vl-page-content { line-height: 1.75; max-width: 900px; margin: 0 auto; }
.vl-page-content h3 { font-size: 1.3rem; font-weight: 700; margin: 1.75rem 0 .6rem; }
.vl-page-content ul { padding-left: 1.25rem; }
.vl-page-content li { margin-bottom: .35rem; }

/* Member dashboard: profile awaiting approval */
.vl-pending { border: 1px solid var(--vl-gold); background: var(--vl-cream); border-radius: var(--vl-radius); padding: 1.25rem 1.4rem; color: var(--vl-ink); }
.vl-pending-icon { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 50%; background: var(--vl-gold-soft); color: var(--vl-maroon); display: flex; align-items: center; justify-content: center; font-size: 26px; }
.vl-pending-progress { height: 6px; background: var(--vl-line); border-radius: 999px; overflow: hidden; }
.vl-pending-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--vl-maroon), var(--vl-gold)); }
.vl-pending-step { display: flex; align-items: center; gap: .75rem; padding: .7rem 0; border-top: 1px dashed var(--vl-line); }
.vl-pending-step > i { font-size: 22px; color: var(--vl-muted); }
.vl-pending-step.is-done > i { color: #2e7d32; }
.vl-pending-step.is-done .fw-600 { text-decoration: line-through; opacity: .7; }

/* Homepage special-audience tiles (Second Marriage, NRI) */
.vl-special-tile { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; background: #fff; border: 1px solid var(--vl-line); border-radius: var(--vl-radius); color: var(--vl-ink); height: 100%; transition: box-shadow .2s ease, transform .2s ease; }
.vl-special-tile:hover { color: var(--vl-ink); box-shadow: var(--vl-shadow); transform: translateY(-2px); }
.vl-special-tile .icon { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 50%; background: var(--vl-gold-soft); color: var(--vl-maroon); display: flex; align-items: center; justify-content: center; font-size: 26px; }
.vl-special-tile strong { display: block; font-family: var(--vl-serif); font-size: 1.15rem; color: var(--vl-maroon); }
.vl-special-tile small { display: block; color: var(--vl-muted); font-size: 13px; line-height: 1.5; }
.vl-special-tile > .la-arrow-right { color: var(--vl-gold-dark); font-size: 20px; }

/* Incoming call prompt and profile extras */
.vl-incoming-call { position: fixed; right: 16px; bottom: 80px; z-index: 1080; width: min(360px, calc(100vw - 32px)); display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; background: var(--vl-maroon-deep); color: #fff; border-radius: 16px; box-shadow: var(--vl-shadow-lg); animation: vlRing 1.2s ease-in-out infinite alternate; }
.vl-incoming-call[hidden] { display: none; }
.vl-incoming-call img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid var(--vl-gold); }
.vl-incoming-call .btn { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 20px; padding: 0; }
@keyframes vlRing { from { box-shadow: 0 0 0 0 rgba(212,165,74,.5); } to { box-shadow: 0 0 0 12px rgba(212,165,74,0); } }
.vl-profile-extras { border: 1px solid var(--vl-line); border-radius: var(--vl-radius); padding: 1rem 1.25rem; background: var(--vl-cream); }

/* Online meetups */
.vl-meetup-card { border: 1px solid var(--vl-line); border-radius: var(--vl-radius); overflow: hidden; background: #fff; color: var(--vl-ink); transition: box-shadow .2s ease, transform .2s ease; }
.vl-meetup-card:hover { color: var(--vl-ink); box-shadow: var(--vl-shadow); transform: translateY(-3px); }
.vl-meetup-card img { height: 170px; object-fit: cover; }
.vl-meetup-banner { height: 170px; display: flex; align-items: center; justify-content: center; font-size: 56px; color: var(--vl-gold); background: linear-gradient(120deg, var(--vl-maroon-deep), var(--vl-maroon)); }
.vl-meetup-date { font-size: 13px; color: var(--vl-maroon); font-weight: 600; }
.vl-meetup-panel { border: 1px solid var(--vl-gold); background: var(--vl-cream); border-radius: var(--vl-radius); padding: 1.5rem; position: sticky; top: 120px; }

/* Language switcher */
.vl-lang > a { color: inherit; white-space: nowrap; }
.vl-lang-top > a { color: rgba(255, 255, 255, .85); }
.vl-lang-top > a:hover { color: var(--vl-gold); }
.vl-lang-mobile > a { color: var(--vl-ink); font-size: 13px; }
.vl-lang-mobile > a span { display: none; }
/* Menu: two-column grid; item colours set explicitly because the dark top bar makes links white */
.vl-lang-menu { width: 340px; max-width: calc(100vw - 24px); padding: .5rem; border: 0; border-radius: 14px; box-shadow: var(--vl-shadow-lg); background: #fff; }
.vl-lang-menu.show { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.vl-lang .vl-lang-menu .dropdown-item { display: flex; flex-direction: column; align-items: flex-start; padding: .45rem .75rem; border-radius: 8px; color: var(--vl-ink) !important; background: transparent; white-space: normal; line-height: 1.35; }
.vl-lang .vl-lang-menu .dropdown-item small { margin: 0 !important; font-size: 11px; color: var(--vl-muted); opacity: 1; }
.vl-lang .vl-lang-menu .dropdown-item:hover, .vl-lang .vl-lang-menu .dropdown-item:focus { background: var(--vl-gold-soft); color: var(--vl-maroon) !important; }
.vl-lang .vl-lang-menu .dropdown-item.active { background: var(--vl-maroon); color: #fff !important; }
.vl-lang .vl-lang-menu .dropdown-item.active small { color: rgba(255, 255, 255, .75); }

/* Small phones: keep logo, language and both auth buttons on one line in every language */
@media (max-width: 575.98px) {
    .vl-header .logo img { height: 30px; max-width: 130px; }
    .vl-mobile-auth { gap: 4px; min-width: 0; }
    .vl-mobile-auth .btn { padding: .3rem .6rem !important; font-size: 12px; white-space: nowrap; }
    .vl-mobile-auth .vl-login-btn { width: 34px; height: 30px; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; font-size: 16px; }
    .vl-mobile-auth .mr-1, .vl-mobile-auth .mr-2 { margin-right: 0 !important; }
}

/* Invite friends / share profile cards on the dashboard */
.vl-invite { border: 1px solid var(--vl-line); background: #fff; border-radius: var(--vl-radius); padding: 1.25rem 1.4rem; color: var(--vl-ink); }

/* Public profile card (/p/{code}) */
.vl-pcard { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: var(--vl-shadow-lg); }
.vl-pcard-photo { position: relative; height: 320px; background: var(--vl-gold-soft); }
.vl-pcard-photo img { width: 100%; height: 100%; object-fit: cover; }
.vl-pcard-lock { position: absolute; left: 1rem; bottom: 1rem; background: rgba(42, 13, 22, .8); color: #fff; font-size: 13px; padding: .35rem .75rem; border-radius: 999px; }
.vl-pcard-facts li { display: flex; align-items: center; gap: .6rem; padding: .35rem 0; border-bottom: 1px dashed var(--vl-line); color: var(--vl-ink); }
.vl-pcard-facts li i { color: var(--vl-gold-dark); font-size: 20px; width: 22px; text-align: center; }

/* Matrimony landing pages: stats tiles and bars */
.vl-lstat { background: #fff; border: 1px solid var(--vl-line); border-radius: var(--vl-radius); padding: .9rem 1rem; text-align: center; }
.vl-lstat strong { display: block; font-size: 26px; color: var(--vl-maroon); line-height: 1.1; }
.vl-lstat span { text-transform: capitalize; font-size: 13px; color: var(--vl-ink); opacity: .75; }
.vl-bar { display: flex; align-items: center; gap: .6rem; font-size: 13px; margin-bottom: .4rem; color: var(--vl-ink); }
.vl-bar span { flex: 0 0 42%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vl-bar div { flex: 1; height: 8px; background: var(--vl-gold-soft); border-radius: 4px; overflow: hidden; }
.vl-bar i { display: block; height: 100%; background: var(--vl-maroon); border-radius: 4px; min-width: 4px; }
.vl-bar b { flex: 0 0 2.5rem; text-align: right; font-weight: 600; }

/* Marriage Guide hub and articles */
.vl-chip-active { background: var(--vl-maroon); border-color: var(--vl-maroon); color: #fff !important; }
.vl-article-card { display: block; height: 100%; background: #fff; border: 1px solid var(--vl-line); border-radius: var(--vl-radius); overflow: hidden; color: var(--vl-ink) !important; transition: box-shadow .2s, transform .2s; }
.vl-article-card:hover { box-shadow: var(--vl-shadow-lg); transform: translateY(-2px); }
.vl-article-card img { width: 100%; height: 180px; object-fit: cover; }
.vl-article-cover { height: 140px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--vl-gold-soft), #fff); color: var(--vl-gold-dark); font-size: 48px; }
.vl-article { font-size: 17px; line-height: 1.75; color: var(--vl-ink); }
.vl-article h2 { font-size: 1.45rem; font-weight: 700; margin: 2rem 0 .75rem; }
.vl-article h3 { font-size: 1.15rem; font-weight: 700; margin: 1.5rem 0 .5rem; }
.vl-article p, .vl-article ul, .vl-article ol { margin-bottom: 1rem; }
.vl-article li { margin-bottom: .35rem; }

/* Phones: slim cookie notice above the bottom bar so it never covers the hero buttons */
@media (max-width: 575.98px) {
    .aiz-cookie-alert { left: 8px !important; right: 8px !important; bottom: 66px !important; width: auto !important; max-width: none !important; }
    .aiz-cookie-alert > div { display: flex; align-items: center; gap: .75rem; padding: .6rem .75rem !important; }
    .aiz-cookie-alert > div > .text-white { margin: 0 !important; font-size: 12px; line-height: 1.4; }
    .aiz-cookie-alert .btn { flex: 0 0 auto; padding: .4rem .8rem; font-size: 12px; white-space: nowrap; }
}
/* Swipeable section strip: fade the right edge so it is clear there is more to scroll */
@media (max-width: 991.98px) {
    .vl-mobile-nav .container { overflow-x: auto; white-space: nowrap; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
    .vl-mobile-nav .container::-webkit-scrollbar { display: none; }
    .vl-mobile-nav a { min-height: 44px; display: inline-flex; align-items: center; }
}

/* Right-to-left (Urdu): the text sits on the right, so mirror the hero photo to keep the couple
   clear of the headline, and darken the right side instead of the left */
@media (min-width: 992px) {
    [dir="rtl"] .vl-hero-cinematic .vl-hero-bg { transform: scaleX(-1); }
    [dir="rtl"] .vl-hero-cinematic.has-media::after { background: linear-gradient(270deg, rgba(14, 6, 6, .92) 0%, rgba(14, 6, 6, .7) 30%, rgba(14, 6, 6, .15) 55%, rgba(14, 6, 6, 0) 70%), linear-gradient(0deg, rgba(14, 6, 6, .85) 0%, rgba(14, 6, 6, 0) 32%); }
}
[dir="rtl"] .vl-hero-trustbar .item + .item { border-left: 0; border-right: 1px solid rgba(255, 248, 239, .14); }
[dir="rtl"] .vl-path .go { transform: scaleX(-1); }

/* Member profile: photos section */
.vl-photo-row { display: flex; align-items: center; gap: 1.25rem; }
.vl-photo-current { flex: 0 0 112px; width: 112px; height: 112px; border-radius: 50%; overflow: hidden; border: 3px solid var(--vl-gold-soft); box-shadow: 0 0 0 1px var(--vl-line); background: var(--vl-cream); }
.vl-photo-current img { width: 100%; height: 100%; object-fit: cover; }
.vl-file-btn { cursor: pointer; }
.vl-file-btn.disabled { opacity: .6; pointer-events: none; }
.vl-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: .75rem; }
.vl-gallery-grid:empty { display: none; }
.vl-gallery-item { position: relative; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--vl-cream); border: 1px solid var(--vl-line); }
.vl-gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.vl-gallery-item.is-new { outline: 2px dashed var(--vl-gold); outline-offset: -2px; }
.vl-gallery-del { position: absolute; top: 6px; right: 6px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(20, 6, 9, .7); color: #fff; font-size: 16px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.vl-gallery-del:hover, .vl-gallery-del:focus-visible { background: #c62828; }
.vl-dropzone { display: flex; flex-direction: column; align-items: center; gap: .2rem; margin: 0; padding: 1.5rem 1rem; border: 1.5px dashed var(--vl-gold); border-radius: 12px; background: var(--vl-cream); text-align: center; cursor: pointer; transition: background .2s ease; }
.vl-dropzone:hover { background: var(--vl-gold-soft); }
.vl-dropzone i { font-size: 34px; color: var(--vl-maroon); }
.vl-dropzone strong { color: var(--vl-maroon-deep); }
.vl-dropzone span { font-size: 13px; color: var(--vl-muted); }
@media (max-width: 575.98px) {
    .vl-photo-row { gap: 1rem; }
    .vl-photo-current { flex-basis: 88px; width: 88px; height: 88px; }
    .vl-gallery-grid { grid-template-columns: repeat(3, 1fr); gap: .5rem; }
}
