/* Viva Loca Event Platform — public experience */

.vleh-event-route {
    background: #f7f0e8;
}

.vleh-event-route,
.vleh-event-route * {
    box-sizing: border-box;
}

.vleh-shell {
    --vleh-primary-rgb: 75, 18, 61;
    --vleh-accent-rgb: 233, 135, 36;
    --vleh-page-width: 1180px;
    --vleh-reading-width: 760px;
    --vleh-radius-sm: 12px;
    --vleh-radius: 20px;
    --vleh-radius-lg: 34px;
    --vleh-shadow-sm: 0 10px 30px rgba(36, 5, 31, 0.08);
    --vleh-shadow: 0 24px 70px rgba(36, 5, 31, 0.14);
    --vleh-border: rgba(75, 18, 61, 0.14);
    --vleh-focus: #4b123d;
    color: var(--vleh-ink);
    background:
        radial-gradient(circle at 7% 10%, rgba(242, 196, 109, 0.2), transparent 25rem),
        linear-gradient(180deg, #fffdf9 0, var(--vleh-surface) 32rem, #f7f0e8 100%);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    min-height: 100vh;
    overflow: clip;
}

.vleh-shell :where(h1, h2, h3, p, dl, dd, figure) {
    margin-top: 0;
}

.vleh-shell :where(a, button, input, textarea, summary) {
    font: inherit;
}

.vleh-shell :where(a, button, input, textarea, summary):focus-visible {
    outline: 3px solid var(--vleh-focus);
    outline-offset: 4px;
}

.vleh-shell img {
    max-width: 100%;
}

.vleh-skip-link {
    background: #fff;
    border: 2px solid var(--vleh-primary, #4b123d);
    border-radius: 8px;
    color: var(--vleh-primary, #4b123d);
    font-weight: 800;
    left: 16px;
    padding: 10px 14px;
    position: fixed;
    top: -100px;
    z-index: 1000000;
}

.vleh-skip-link:focus {
    outline: 3px solid var(--vleh-primary, #4b123d);
    outline-offset: 4px;
    top: 16px;
}

.vleh-main,
.vleh-eventbar,
.vleh-system-banner {
    margin-inline: auto;
    max-width: var(--vleh-page-width);
    width: calc(100% - 40px);
}

.vleh-main {
    padding-bottom: 92px;
}

.vleh-system-banner {
    align-items: center;
    border-radius: 0 0 14px 14px;
    display: flex;
    gap: 10px 18px;
    justify-content: center;
    padding: 11px 18px;
    text-align: center;
}

.vleh-system-banner--preview {
    background: #fff4cc;
    border: 1px solid #e8c862;
    color: #563f00;
}

.vleh-system-banner--archived {
    background: #ece9ec;
    border: 1px solid #c8c0c6;
    color: #423840;
}

.vleh-eventbar {
    align-items: center;
    backdrop-filter: blur(16px);
    background: rgba(255, 253, 249, 0.9);
    border: 1px solid rgba(75, 18, 61, 0.1);
    border-radius: 18px;
    box-shadow: 0 8px 34px rgba(36, 5, 31, 0.08);
    display: flex;
    justify-content: space-between;
    margin-top: 18px;
    min-height: 70px;
    padding: 10px 12px 10px 14px;
    position: sticky;
    top: 12px;
    z-index: 900;
}

.vleh-eventbar__brand {
    align-items: center;
    color: var(--vleh-ink);
    display: inline-flex;
    gap: 11px;
    min-width: 0;
    text-decoration: none;
}

.vleh-eventbar__brand > span:last-child {
    display: grid;
    line-height: 1.2;
    min-width: 0;
}

.vleh-eventbar__brand small {
    color: #74666f;
    font-size: 0.7rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vleh-eventbar__brand strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vleh-eventbar__mark {
    align-items: center;
    background: var(--vleh-primary);
    border-radius: 11px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 42px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 0.92rem;
    font-weight: 800;
    height: 42px;
    justify-content: center;
}

.vleh-eventbar__actions,
.vleh-button-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.vleh-button-row--center {
    justify-content: center;
}

.vleh-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    font-weight: 800;
    gap: 9px;
    justify-content: center;
    line-height: 1.15;
    min-height: 50px;
    padding: 14px 21px;
    text-align: center;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

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

.vleh-button--small {
    min-height: 42px;
    padding: 10px 17px;
}

.vleh-button--hero {
    box-shadow: 0 14px 34px rgba(36, 5, 31, 0.24);
    min-height: 56px;
    padding-inline: 26px;
}

.vleh-button--checkout {
    box-shadow: 0 16px 36px rgba(36, 5, 31, 0.28);
    font-size: clamp(1rem, 1.6vw, 1.18rem);
    min-height: 64px;
    padding: 17px 30px;
}

.vleh-button--wide {
    width: 100%;
}

.vleh-button--primary {
    background: var(--vleh-primary);
    border-color: var(--vleh-primary);
    color: #fff;
}

.vleh-button--primary:hover {
    box-shadow: 0 13px 28px rgba(36, 5, 31, 0.22);
    color: #fff;
}

.vleh-button--secondary,
.vleh-button--ghost {
    background: #fff;
    border-color: var(--vleh-border);
    color: var(--vleh-primary);
}

.vleh-button--ghost {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
}

.vleh-button--light {
    background: #fff;
    color: var(--vleh-primary-dark);
}

.vleh-button--disabled {
    background: #dcd5da;
    border-color: #dcd5da;
    color: #655c62;
    cursor: not-allowed;
}

.vleh-button--disabled:hover {
    transform: none;
}

.vleh-text-link {
    color: var(--vleh-primary);
    font-weight: 800;
    text-underline-offset: 4px;
}

.vleh-hero {
    background:
        radial-gradient(circle at 16% 10%, rgba(242, 196, 109, 0.2), transparent 19rem),
        radial-gradient(circle at 55% 100%, rgba(233, 135, 36, 0.18), transparent 28rem),
        linear-gradient(135deg, var(--vleh-primary-dark), var(--vleh-primary));
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--vleh-radius-lg);
    box-shadow: var(--vleh-shadow);
    color: #fff;
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(340px, 0.96fr);
    margin-top: 24px;
    min-height: 650px;
    overflow: hidden;
    position: relative;
}

.vleh-hero::before {
    border: 1px solid rgba(242, 196, 109, 0.25);
    border-radius: 50%;
    content: "";
    height: 360px;
    left: -210px;
    position: absolute;
    top: -210px;
    width: 360px;
}

.vleh-hero__copy {
    align-self: center;
    padding: clamp(40px, 7vw, 88px) clamp(28px, 5vw, 68px);
    position: relative;
    z-index: 2;
}

.vleh-kicker {
    color: #8a3c00;
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.15em;
    margin-bottom: 12px;
    text-transform: uppercase;
}

.vleh-hero .vleh-kicker {
    color: var(--vleh-gold);
}

.vleh-hero h1 {
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6vw, 6.3rem);
    font-weight: 700;
    letter-spacing: -0.045em;
    line-height: 0.93;
    margin-bottom: 22px;
    max-width: 780px;
    text-wrap: balance;
}

.vleh-hero__subtitle {
    color: rgba(255, 255, 255, 0.84);
    font-size: clamp(1.05rem, 2vw, 1.32rem);
    font-weight: 600;
    margin-bottom: 30px;
    max-width: 620px;
}

.vleh-hero__facts {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1.45fr) minmax(120px, 0.75fr);
    margin-bottom: 28px;
}

.vleh-hero__facts > div {
    background: rgba(255, 255, 255, 0.075);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 14px;
    min-width: 0;
    padding: 14px 16px;
}

.vleh-hero__facts > div + div {
    padding-left: 16px;
}

.vleh-hero__fact--datetime {
    grid-column: 1 / -1;
}

.vleh-hero__facts dt {
    color: var(--vleh-gold);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.vleh-hero__facts dd {
    color: #fff;
    font-size: 0.93rem;
    font-weight: 750;
    line-height: 1.35;
    margin-bottom: 0;
    margin-top: 5px;
    overflow-wrap: normal;
    text-wrap: pretty;
}

.vleh-hero__facts small {
    color: rgba(255, 255, 255, 0.7);
    display: block;
    font-size: 0.78rem;
    font-weight: 550;
    margin-top: 3px;
}

.vleh-microcopy {
    color: #6f626b;
    font-size: 0.82rem;
    line-height: 1.5;
    margin: 14px 0 0;
}

.vleh-hero .vleh-microcopy {
    color: rgba(255, 255, 255, 0.68);
    max-width: 580px;
}

.vleh-hero__media {
    background:
        radial-gradient(circle at 82% 16%, rgba(255, 244, 183, 0.78), transparent 28%),
        linear-gradient(145deg, #6f1d42 0%, #b66a2d 38%, #e1ad45 70%, #f4d77b 100%);
    display: grid;
    min-height: 650px;
    overflow: hidden;
    place-items: center;
    position: relative;
}

.vleh-hero__media::after {
    background: linear-gradient(90deg, var(--vleh-primary) 0, transparent 28%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.vleh-hero__media > img {
    box-sizing: border-box;
    display: block;
    height: 100%;
    object-fit: contain;
    object-position: center;
    padding: 124px 18px 18px;
    width: 100%;
}

.vleh-hero__art {
    background:
        radial-gradient(circle at 30% 24%, var(--vleh-gold) 0 5px, transparent 6px),
        repeating-radial-gradient(circle at 30% 24%, transparent 0 26px, rgba(242, 196, 109, 0.34) 27px 29px, transparent 30px 56px),
        linear-gradient(145deg, var(--vleh-primary), var(--vleh-accent));
    height: 100%;
}

.vleh-hero__stamp {
    align-items: center;
    background: var(--vleh-gold);
    border-radius: 50%;
    top: 24px;
    box-shadow: 0 15px 32px rgba(36, 5, 31, 0.28);
    color: var(--vleh-primary-dark);
    display: flex;
    flex-direction: column;
    height: 82px;
    justify-content: center;
    line-height: 1;
    position: absolute;
    right: 24px;
    text-transform: uppercase;
    width: 82px;
    z-index: 3;
}

.vleh-hero__stamp span {
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.vleh-hero__stamp strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.9rem;
    margin-top: 3px;
}

.vleh-trust-strip {
    background: #fff;
    border: 1px solid var(--vleh-border);
    border-radius: var(--vleh-radius);
    box-shadow: var(--vleh-shadow-sm);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: -22px auto 0;
    max-width: 1040px;
    padding: 22px 28px;
    position: relative;
    z-index: 5;
}

.vleh-trust-strip div {
    display: grid;
    gap: 3px;
    padding-inline: 20px;
}

.vleh-trust-strip div + div {
    border-left: 1px solid var(--vleh-border);
}

.vleh-trust-strip strong {
    color: var(--vleh-primary);
}

.vleh-trust-strip span {
    color: #756771;
    font-size: 0.85rem;
}

.vleh-section {
    padding-block: clamp(60px, 9vw, 112px);
}

.vleh-section + .vleh-section {
    border-top: 1px solid rgba(75, 18, 61, 0.1);
}

.vleh-section-heading {
    margin-bottom: 36px;
    max-width: var(--vleh-reading-width);
}

.vleh-section-heading--split {
    align-items: end;
    display: flex;
    justify-content: space-between;
    max-width: none;
}

.vleh-section-heading h2,
.vleh-payment-copy h2,
.vleh-venue-section h2,
.vleh-support-section h2,
.vleh-next-step h2,
.vleh-qr-panel h2 {
    color: var(--vleh-primary-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.15rem, 4vw, 4rem);
    letter-spacing: -0.035em;
    line-height: 1.02;
    margin-bottom: 16px;
    text-wrap: balance;
}

.vleh-section-heading > p:last-child,
.vleh-payment-copy > p,
.vleh-venue-section p,
.vleh-support-section p {
    color: #675962;
    font-size: 1.05rem;
    max-width: 690px;
}

.vleh-story__grid {
    display: grid;
    gap: clamp(40px, 7vw, 90px);
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.vleh-rich-text {
    color: #564851;
}

.vleh-rich-text :where(p, li) {
    line-height: 1.75;
}

.vleh-story__copy {
    font-size: 1.08rem;
}

.vleh-story__copy > p:first-child:first-letter {
    color: var(--vleh-primary);
    float: left;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 4.6rem;
    line-height: 0.75;
    padding: 12px 10px 0 0;
}

.vleh-highlights {
    display: grid;
    gap: 12px;
}

.vleh-highlight-card {
    align-items: start;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid var(--vleh-border);
    border-radius: var(--vleh-radius);
    display: grid;
    gap: 18px;
    grid-template-columns: 44px minmax(0, 1fr);
    padding: 20px;
}

.vleh-highlight-card > span {
    color: var(--vleh-accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-weight: 700;
}

.vleh-highlight-card h3 {
    color: var(--vleh-primary-dark);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 1.04rem;
    font-weight: 760;
    letter-spacing: -0.012em;
    line-height: 1.35;
    margin-bottom: 4px;
    overflow-wrap: anywhere;
}

.vleh-highlight-card p {
    color: #6f616a;
    font-size: 0.9rem;
    margin-bottom: 0;
}

.vleh-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.vleh-social-links a {
    background: #fff;
    border: 1px solid var(--vleh-border);
    border-radius: 999px;
    color: var(--vleh-primary);
    font-size: 0.86rem;
    font-weight: 800;
    padding: 9px 14px;
    text-decoration: none;
}

.vleh-social-links span {
    margin-left: 6px;
}

.vleh-gallery {
    display: grid;
    gap: 12px;
    grid-auto-rows: 210px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vleh-gallery__item {
    background: #ded3d9;
    border-radius: 18px;
    color: #fff;
    overflow: hidden;
    position: relative;
}

.vleh-gallery__item--1,
.vleh-gallery__item--5 {
    grid-column: span 2;
    grid-row: span 2;
}

.vleh-gallery__item img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform 350ms ease;
    width: 100%;
}

.vleh-gallery__item:hover img {
    transform: scale(1.025);
}

.vleh-gallery__open {
    background: rgba(36, 5, 31, 0.82);
    border-radius: 999px;
    bottom: 12px;
    font-size: 0.76rem;
    font-weight: 800;
    opacity: 0;
    padding: 7px 11px;
    position: absolute;
    right: 12px;
    transform: translateY(4px);
    transition: opacity 160ms ease, transform 160ms ease;
}

.vleh-gallery__item:hover .vleh-gallery__open,
.vleh-gallery__item:focus-visible .vleh-gallery__open {
    opacity: 1;
    transform: translateY(0);
}

.vleh-timeline {
    list-style: none;
    margin: 0;
    max-width: 900px;
    padding: 0;
}

.vleh-timeline li {
    display: grid;
    gap: 22px;
    grid-template-columns: 130px minmax(0, 1fr);
    min-height: 96px;
    padding-bottom: 28px;
    position: relative;
}

.vleh-timeline li::before {
    background: var(--vleh-accent);
    border: 5px solid #f7f0e8;
    border-radius: 50%;
    content: "";
    height: 18px;
    left: 139px;
    position: absolute;
    top: 4px;
    width: 18px;
    z-index: 2;
}

.vleh-timeline li::after {
    background: rgba(75, 18, 61, 0.18);
    content: "";
    height: 100%;
    left: 147px;
    position: absolute;
    top: 12px;
    width: 2px;
}

.vleh-timeline li:last-child::after {
    display: none;
}

.vleh-timeline time {
    color: var(--vleh-primary);
    font-size: 0.84rem;
    font-weight: 850;
    text-align: right;
}

.vleh-timeline li > div {
    padding-left: 28px;
}

.vleh-timeline h3 {
    color: var(--vleh-primary-dark);
    font-size: 1.08rem;
    margin-bottom: 5px;
}

.vleh-timeline p {
    color: #6c5f67;
    margin-bottom: 0;
}

.vleh-booking-section {
    scroll-margin-top: 105px;
}

.vleh-booking-layout,
.vleh-payment-layout {
    align-items: start;
    display: grid;
    gap: clamp(26px, 5vw, 64px);
    grid-template-columns: minmax(0, 1.22fr) minmax(300px, 0.78fr);
}

.vleh-registration-form,
.vleh-order-card,
.vleh-payment-copy,
.vleh-external-qr {
    background: #fff;
    border: 1px solid var(--vleh-border);
    border-radius: 26px;
    box-shadow: var(--vleh-shadow-sm);
}

.vleh-registration-form {
    padding: clamp(22px, 4vw, 42px);
}

.vleh-honeypot {
    height: 1px;
    left: -10000px;
    overflow: hidden;
    position: absolute;
    top: auto;
    width: 1px;
}

.vleh-form-errors {
    background: #fff2f0;
    border: 1px solid #d76455;
    border-radius: var(--vleh-radius-sm);
    color: #771e14;
    margin-bottom: 26px;
    padding: 17px 19px;
}

.vleh-form-errors h3 {
    font-size: 1rem;
    margin-bottom: 7px;
}

.vleh-form-errors ul {
    margin: 0;
    padding-left: 20px;
}

.vleh-fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

.vleh-fieldset + .vleh-fieldset {
    border-top: 1px solid var(--vleh-border);
    margin-top: 34px;
    padding-top: 34px;
}

.vleh-fieldset legend {
    color: var(--vleh-primary-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    font-weight: 700;
    margin-bottom: 4px;
    padding: 0;
}

.vleh-field-hint {
    color: #766972;
    font-size: 0.88rem;
    margin-bottom: 18px;
}

.vleh-ticket-list {
    display: grid;
    gap: 10px;
}

.vleh-ticket {
    align-items: center;
    background: #fffcf7;
    border: 1px solid var(--vleh-border);
    border-radius: 16px;
    display: flex;
    gap: 18px;
    justify-content: space-between;
    min-height: 104px;
    padding: 16px 18px;
}

.vleh-ticket__info {
    display: grid;
    min-width: 0;
}

.vleh-ticket__info label {
    color: var(--vleh-primary-dark);
    font-weight: 850;
}

.vleh-ticket__info small {
    color: #766972;
    font-size: 0.8rem;
}

.vleh-ticket__info strong {
    color: var(--vleh-accent);
    font-size: 0.9rem;
    margin-top: 4px;
}

.vleh-stepper {
    align-items: center;
    background: #fff;
    border: 1px solid var(--vleh-border);
    border-radius: 999px;
    display: flex;
    flex: 0 0 auto;
    overflow: hidden;
}

.vleh-stepper button {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--vleh-primary);
    cursor: pointer;
    display: inline-flex;
    font-size: 1.2rem;
    height: 42px;
    justify-content: center;
    padding: 0;
    width: 42px;
}

.vleh-stepper button:hover {
    background: rgba(75, 18, 61, 0.06);
}

.vleh-stepper input {
    appearance: textfield;
    background: transparent;
    border: 0;
    color: var(--vleh-primary-dark);
    font-weight: 850;
    height: 42px;
    padding: 0;
    text-align: center;
    width: 42px;
}

.vleh-stepper input::-webkit-inner-spin-button,
.vleh-stepper input::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

.vleh-field-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

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

.vleh-field label {
    color: var(--vleh-primary-dark);
    display: inline-block;
    font-size: 0.88rem;
    font-weight: 800;
    margin-bottom: 6px;
}

.vleh-field label > span {
    color: #b73a2c;
    margin-left: 3px;
}

.vleh-field .vleh-optional {
    color: #857981;
    font-weight: 550;
}

.vleh-field input,
.vleh-field textarea {
    background: #fffcf8;
    border: 1px solid rgba(75, 18, 61, 0.24);
    border-radius: 12px;
    color: var(--vleh-ink);
    min-height: 50px;
    padding: 12px 14px;
    width: 100%;
}

.vleh-field textarea {
    min-height: 100px;
    resize: vertical;
}

.vleh-field input:focus,
.vleh-field textarea:focus {
    border-color: var(--vleh-primary);
    box-shadow: 0 0 0 3px rgba(75, 18, 61, 0.1);
}

.vleh-field input[aria-invalid="true"],
.vleh-field textarea[aria-invalid="true"] {
    border-color: #b93729;
}

.vleh-field-error {
    color: #a42c20;
    font-size: 0.8rem;
    font-weight: 700;
    margin: 6px 0 0;
}

.vleh-consent {
    align-items: start;
    display: grid;
    gap: 10px;
    grid-template-columns: 20px minmax(0, 1fr);
    margin: 28px 0 20px;
}

.vleh-consent input {
    accent-color: var(--vleh-primary);
    height: 19px;
    margin-top: 3px;
    width: 19px;
}

.vleh-consent label {
    color: #5f525a;
    font-size: 0.88rem;
}

.vleh-submit[aria-busy="true"] {
    cursor: wait;
    opacity: 0.76;
}

.vleh-spinner {
    animation: vleh-spin 700ms linear infinite;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    border-top-color: #fff;
    display: none;
    height: 18px;
    width: 18px;
}

.vleh-submit[aria-busy="true"] .vleh-spinner {
    display: inline-block;
}

@keyframes vleh-spin {
    to { transform: rotate(360deg); }
}

.vleh-order-card {
    padding: 28px;
    position: sticky;
    top: 104px;
}

.vleh-order-card h3,
.vleh-external-qr h3 {
    color: var(--vleh-primary-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.8rem;
    margin-bottom: 18px;
}

.vleh-order-lines {
    border-block: 1px solid var(--vleh-border);
    min-height: 70px;
    padding-block: 14px;
}

.vleh-order-line,
.vleh-order-total,
.vleh-receipt-items > div {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.vleh-order-line {
    color: #5e5059;
    font-size: 0.88rem;
    padding-block: 4px;
}

.vleh-empty-order {
    color: #887b84;
    font-size: 0.86rem;
    margin: 8px 0;
}

.vleh-order-total {
    color: var(--vleh-primary-dark);
    font-weight: 800;
    padding-block: 18px;
}

.vleh-order-total strong {
    font-size: 1.25rem;
}

.vleh-order-process {
    border-top: 1px solid var(--vleh-border);
    display: grid;
    gap: 13px 10px;
    grid-template-columns: 28px minmax(0, 1fr);
    padding-top: 22px;
}

.vleh-order-process > span {
    align-items: center;
    background: var(--vleh-primary);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 850;
    height: 26px;
    justify-content: center;
    width: 26px;
}

.vleh-order-process p {
    display: grid;
    margin-bottom: 0;
}

.vleh-order-process strong {
    color: var(--vleh-primary-dark);
    font-size: 0.86rem;
}

.vleh-order-process small {
    color: #82747d;
    font-size: 0.76rem;
}

.vleh-payment-copy,
.vleh-external-qr {
    padding: clamp(26px, 5vw, 50px);
}

.vleh-payment-copy {
    background:
        radial-gradient(circle at 90% 10%, rgba(242, 196, 109, 0.26), transparent 15rem),
        #fff;
}

.vleh-price-callout {
    color: var(--vleh-primary) !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.1rem !important;
    font-weight: 700;
}

.vleh-public-prices {
    border-block: 1px solid var(--vleh-border);
    margin: 24px 0;
}

.vleh-public-prices > div {
    align-items: center;
    display: flex;
    gap: 20px;
    justify-content: space-between;
    padding-block: 14px;
}

.vleh-public-prices > div + div {
    border-top: 1px solid var(--vleh-border);
}

.vleh-public-prices dt {
    color: var(--vleh-primary-dark);
    display: grid;
    font-weight: 850;
}

.vleh-public-prices dt small {
    color: #766972;
    font-size: 0.78rem;
    font-weight: 550;
}

.vleh-public-prices dd {
    color: var(--vleh-primary);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0;
}

.vleh-external-qr {
    text-align: center;
}

.vleh-payment-qr {
    background: #fff;
    border: 1px solid rgba(75, 18, 61, 0.15);
    display: block;
    height: auto;
    image-rendering: auto;
    margin: 18px auto;
    max-width: 100%;
    object-fit: contain;
    padding: 8px;
    width: min(100%, 360px);
}

.vleh-payment-instructions {
    font-size: 0.88rem;
    text-align: left;
}

.vleh-authority-note {
    background: #fff8e7;
    border: 1px solid #e8c878;
    border-radius: 12px;
    color: #614811;
    font-size: 0.82rem;
    line-height: 1.55;
    margin: 18px 0 0;
    padding: 12px 14px;
}

.vleh-venue-section {
    align-items: center;
    display: flex;
    gap: 30px;
    justify-content: space-between;
}

.vleh-venue-section h2 {
    font-size: clamp(2rem, 3vw, 3.2rem);
    margin-bottom: 10px;
}

.vleh-accordion-list {
    border-top: 1px solid var(--vleh-border);
    max-width: 900px;
}

.vleh-accordion {
    border-bottom: 1px solid var(--vleh-border);
}

.vleh-accordion summary {
    align-items: center;
    color: var(--vleh-primary-dark);
    cursor: pointer;
    display: flex;
    font-size: 1.03rem;
    font-weight: 800;
    justify-content: space-between;
    list-style: none;
    min-height: 68px;
    padding: 16px 4px;
}

.vleh-accordion summary::-webkit-details-marker {
    display: none;
}

.vleh-accordion summary span {
    color: var(--vleh-accent);
    font-size: 1.5rem;
    transition: transform 180ms ease;
}

.vleh-accordion[open] summary span {
    transform: rotate(45deg);
}

.vleh-accordion > div {
    color: #655861;
    max-width: 760px;
    padding: 0 38px 24px 4px;
}

.vleh-terms-list {
    margin: 0;
    padding-left: 20px;
}

.vleh-terms-list li + li {
    margin-top: 8px;
}

.vleh-support-section {
    align-items: center;
    background:
        radial-gradient(circle at 80% 20%, rgba(242, 196, 109, 0.22), transparent 18rem),
        var(--vleh-primary-dark);
    border-radius: var(--vleh-radius-lg);
    color: #fff;
    display: flex;
    gap: 30px;
    justify-content: space-between;
    margin-bottom: 24px;
    padding: clamp(34px, 6vw, 68px);
}

.vleh-support-section h2,
.vleh-support-section p {
    color: #fff;
}

.vleh-support-section p {
    margin-bottom: 0;
    opacity: 0.76;
}

.vleh-support-section .vleh-kicker {
    color: var(--vleh-gold);
}

.vleh-receipt-hero {
    padding: clamp(38px, 7vw, 82px) 0;
}

.vleh-receipt-card,
.vleh-message-card {
    background: #fff;
    border: 1px solid var(--vleh-border);
    border-radius: var(--vleh-radius-lg);
    box-shadow: var(--vleh-shadow);
    margin-inline: auto;
    max-width: 780px;
    padding: clamp(28px, 6vw, 62px);
    text-align: center;
}

.vleh-message-card {
    margin-block: 70px;
}

.vleh-message-card h1,
.vleh-receipt-card h1 {
    color: var(--vleh-primary-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 5vw, 4.5rem);
    letter-spacing: -0.035em;
    line-height: 1;
    margin-bottom: 18px;
}

.vleh-message-card p,
.vleh-receipt-intro {
    color: #655861;
    margin-inline: auto;
    max-width: 590px;
}

.vleh-status-orb {
    align-items: center;
    border-radius: 50%;
    display: inline-flex;
    font-size: 2rem;
    font-weight: 900;
    height: 72px;
    justify-content: center;
    margin-bottom: 20px;
    width: 72px;
}

.vleh-status-orb.is-confirmed {
    background: #e3f7e9;
    color: #19743b;
}

.vleh-status-orb.is-pending {
    background: #fff0d6;
    color: #9a5a00;
}

.vleh-status-orb.is-terminal {
    background: #fde8e6;
    color: #a42c20;
}

.vleh-code-panel {
    background: var(--vleh-surface);
    border: 1px dashed rgba(75, 18, 61, 0.3);
    border-radius: 16px;
    display: grid;
    justify-items: center;
    margin: 28px auto;
    max-width: 440px;
    padding: 18px;
}

.vleh-code-panel > span {
    color: #786b73;
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.vleh-code-panel strong {
    color: var(--vleh-primary);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: clamp(1.35rem, 4vw, 2rem);
    letter-spacing: 0.05em;
    overflow-wrap: anywhere;
}

.vleh-copy-button {
    background: transparent;
    border: 0;
    color: var(--vleh-primary);
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 800;
    margin-top: 8px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.vleh-receipt-facts {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-block: 26px;
}

.vleh-receipt-facts > div {
    background: #fffcf8;
    border: 1px solid var(--vleh-border);
    border-radius: 12px;
    display: grid;
    padding: 13px;
}

.vleh-receipt-facts dt {
    color: #7d7078;
    font-size: 0.7rem;
    font-weight: 750;
    text-transform: uppercase;
}

.vleh-receipt-facts dd {
    color: var(--vleh-primary-dark);
    font-size: 0.86rem;
    font-weight: 800;
    margin: 3px 0 0;
    overflow-wrap: anywhere;
}

.vleh-receipt-items {
    border-block: 1px solid var(--vleh-border);
    margin-block: 24px;
    padding-block: 12px;
    text-align: left;
}

.vleh-receipt-items > div {
    color: #5f525a;
    padding-block: 5px;
}

.vleh-next-step,
.vleh-qr-panel {
    background: #fffcf7;
    border: 1px solid var(--vleh-border);
    border-radius: 18px;
    margin-top: 26px;
    padding: 24px;
    text-align: left;
}

.vleh-next-step h2,
.vleh-qr-panel h2 {
    font-size: 1.75rem;
    margin-bottom: 10px;
}

.vleh-qr-panel {
    align-items: center;
    display: grid;
    gap: 26px;
    grid-template-columns: minmax(0, 1fr) minmax(210px, 280px);
}

.vleh-qr-panel .vleh-payment-qr {
    margin: 0;
    width: 100%;
}

.vleh-receipt-card > .vleh-authority-note {
    text-align: left;
}

.vleh-lightbox {
    background: #130a11;
    border: 0;
    border-radius: 18px;
    box-shadow: 0 30px 100px rgba(0, 0, 0, 0.5);
    color: #fff;
    height: min(88vh, 900px);
    margin: auto;
    max-height: 900px;
    max-width: min(94vw, 1200px);
    padding: 0;
    width: 94vw;
}

.vleh-lightbox::backdrop {
    background: rgba(10, 3, 8, 0.82);
    backdrop-filter: blur(5px);
}

.vleh-lightbox[open] {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
}

.vleh-lightbox img {
    height: 100%;
    object-fit: contain;
    padding: 38px 20px 10px;
    width: 100%;
}

.vleh-lightbox p {
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
    min-height: 48px;
    padding: 10px 60px 18px;
    text-align: center;
}

.vleh-lightbox__close {
    align-items: center;
    background: #fff;
    border: 0;
    border-radius: 50%;
    color: #111;
    cursor: pointer;
    display: inline-flex;
    font-size: 1.6rem;
    height: 42px;
    justify-content: center;
    padding: 0;
    position: absolute;
    right: 14px;
    top: 14px;
    width: 42px;
    z-index: 2;
}

/* 0.3 premium navigation and conversion layer. */
.vleh-eventbar {
    isolation: isolate;
    transition: box-shadow 180ms ease, transform 180ms ease, background-color 180ms ease;
}

.vleh-eventbar.is-scrolled {
    background: rgba(255, 253, 249, 0.97);
    box-shadow: 0 16px 46px rgba(36, 5, 31, 0.16);
}

.vleh-eventbar__progress {
    background: rgba(75, 18, 61, 0.07);
    border-radius: 999px;
    bottom: -1px;
    height: 3px;
    left: 18px;
    overflow: hidden;
    pointer-events: none;
    position: absolute;
    right: 18px;
}

.vleh-eventbar__progress > span {
    background: linear-gradient(90deg, var(--vleh-accent), var(--vleh-gold));
    display: block;
    height: 100%;
    transform: scaleX(0);
    transform-origin: left center;
    width: 100%;
}

.vleh-share-button {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 999px;
    color: var(--vleh-primary);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.88rem;
    font-weight: 800;
    gap: 6px;
    min-height: 40px;
    padding: 8px 11px;
}

.vleh-share-button:hover {
    background: rgba(75, 18, 61, 0.07);
}

.vleh-share-status {
    color: #5c4d57;
    font-size: 0.75rem;
    position: absolute;
    right: 20px;
    top: calc(100% + 8px);
}

.vleh-hero__status {
    align-items: center;
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.9);
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 750;
    gap: 8px;
    margin-bottom: 18px;
    padding: 7px 11px;
}

.vleh-hero__status > span {
    background: #7cf0af;
    border: 3px solid rgba(124, 240, 175, 0.2);
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(124, 240, 175, 0.08);
    height: 8px;
    width: 8px;
}

.vleh-hero__media > img {
    filter: drop-shadow(0 18px 34px rgba(54, 17, 24, 0.24));
    transform: none;
    transition: filter 500ms ease;
}

@media (hover: hover) and (pointer: fine) {
    .vleh-hero:hover .vleh-hero__media > img {
        filter: drop-shadow(0 22px 42px rgba(54, 17, 24, 0.3));
        transform: none;
    }
}

.vleh-trust-strip div {
    padding-left: 50px;
    position: relative;
}

.vleh-trust-strip div::before {
    align-items: center;
    background: linear-gradient(145deg, rgba(75, 18, 61, 0.1), rgba(233, 135, 36, 0.14));
    border: 1px solid rgba(75, 18, 61, 0.1);
    border-radius: 12px;
    color: var(--vleh-primary);
    content: "✓";
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 32px;
    justify-content: center;
    left: 8px;
    position: absolute;
    top: 2px;
    width: 32px;
}

.vleh-jumpnav {
    align-items: center;
    background: rgba(255, 253, 249, 0.84);
    border: 1px solid var(--vleh-border);
    border-radius: 999px;
    display: flex;
    gap: 4px;
    margin: 18px auto 0;
    max-width: max-content;
    overflow-x: auto;
    padding: 6px;
    scrollbar-width: none;
}

.vleh-jumpnav::-webkit-scrollbar {
    display: none;
}

.vleh-jumpnav > span {
    color: #8a7b85;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.11em;
    padding: 8px 10px 8px 14px;
    text-transform: uppercase;
}

.vleh-jumpnav a {
    border-radius: 999px;
    color: var(--vleh-primary-dark);
    font-size: 0.82rem;
    font-weight: 780;
    padding: 8px 13px;
    text-decoration: none;
    white-space: nowrap;
}

.vleh-jumpnav a:hover,
.vleh-jumpnav a.is-active {
    background: var(--vleh-primary);
    color: #fff;
}

.vleh-section[id] {
    scroll-margin-top: 110px;
}

.vleh-payment-layout {
    box-shadow: 0 24px 70px rgba(36, 5, 31, 0.1);
}

.vleh-payment-layout--direct {
    grid-template-columns: minmax(0, 1fr);
}

.vleh-mobile-cta {
    display: none;
}

.vleh-page--message {
    background: #f7f0e8;
    min-height: 70vh;
    padding: 1px 20px;
}

@media (max-width: 980px) {
    .vleh-hero {
        grid-template-columns: 1fr;
    }

    .vleh-hero__media {
        min-height: 0;
        order: -1;
    }

    .vleh-hero__media::after {
        display: none;
    }

    .vleh-hero__copy {
        margin-top: 0;
        padding-top: 30px;
    }

    .vleh-hero__media > img {
        height: auto;
        max-height: none;
        padding: 96px 14px 14px;
    }

    .vleh-story__grid,
    .vleh-booking-layout,
    .vleh-payment-layout {
        grid-template-columns: 1fr;
    }

    .vleh-order-card {
        position: static;
    }

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

    .vleh-gallery__item--5 {
        grid-column: span 1;
        grid-row: span 1;
    }
}

@media (max-width: 720px) {
    .vleh-main,
    .vleh-eventbar,
    .vleh-system-banner {
        width: calc(100% - 24px);
    }

    .vleh-main {
        padding-bottom: calc(132px + env(safe-area-inset-bottom));
    }

    .vleh-eventbar {
        min-height: 62px;
        top: 6px;
    }

    .vleh-eventbar__progress {
        left: 12px;
        right: 12px;
    }

    .vleh-eventbar__mark {
        flex-basis: 38px;
        height: 38px;
        width: 38px;
    }

    .vleh-eventbar__brand small,
    .vleh-hide-mobile,
    .vleh-eventbar__actions .vleh-button {
        display: none;
    }

    .vleh-eventbar__brand strong {
        font-size: 0.88rem;
        max-width: 65vw;
    }

    .vleh-share-button {
        font-size: 0;
        justify-content: center;
        padding: 8px;
        width: 40px;
    }

    .vleh-share-button > span {
        font-size: 1rem;
    }

    .vleh-system-banner {
        align-items: flex-start;
        flex-direction: column;
        gap: 1px;
        text-align: left;
    }

    .vleh-hero {
        border-radius: 24px;
        margin-top: 12px;
        min-height: 0;
    }

    .vleh-hero__media {
        min-height: 0;
    }

    .vleh-hero__media > img {
        height: auto;
        padding: 84px 10px 10px;
    }

    .vleh-hero__copy {
        margin-top: 0;
        padding: 24px 22px 34px;
    }

    .vleh-hero h1 {
        font-size: clamp(2.75rem, 15vw, 4.8rem);
    }

    .vleh-hero__status {
        font-size: 0.68rem;
        margin-bottom: 14px;
        max-width: 100%;
    }

    .vleh-hero__facts {
        gap: 13px;
        grid-template-columns: 1fr;
    }

    .vleh-hero__facts > div,
    .vleh-hero__facts > div + div {
        border-left: 0;
        padding: 0;
    }

    .vleh-hero__stamp {
        height: 70px;
        top: 14px;
        right: 16px;
        width: 70px;
    }

    .vleh-hero__stamp strong {
        font-size: 1.75rem;
    }

    .vleh-trust-strip {
        gap: 12px;
        grid-template-columns: 1fr;
        margin-top: 12px;
        padding: 18px;
    }

    .vleh-trust-strip div,
    .vleh-trust-strip div + div {
        border-left: 0;
        padding-left: 44px;
    }

    .vleh-trust-strip div + div {
        border-top: 1px solid var(--vleh-border);
        padding-top: 14px;
    }

    .vleh-trust-strip div::before {
        left: 0;
    }

    .vleh-trust-strip div + div::before {
        top: 14px;
    }

    .vleh-jumpnav {
        justify-content: flex-start;
        margin-top: 12px;
        max-width: 100%;
        width: 100%;
    }

    .vleh-jumpnav > span {
        display: none;
    }

    .vleh-jumpnav a {
        flex: 0 0 auto;
    }

    .vleh-section {
        padding-block: 62px;
    }

    .vleh-section-heading--split,
    .vleh-venue-section,
    .vleh-support-section {
        align-items: flex-start;
        flex-direction: column;
    }

    .vleh-social-links {
        justify-content: flex-start;
    }

    .vleh-gallery {
        display: flex;
        gap: 10px;
        margin-inline: -12px;
        overflow-x: auto;
        padding: 0 12px 16px;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
    }

    .vleh-gallery__item,
    .vleh-gallery__item--1,
    .vleh-gallery__item--5 {
        flex: 0 0 min(82vw, 360px);
        height: 420px;
        scroll-snap-align: center;
    }

    .vleh-highlight-card {
        gap: 12px;
        grid-template-columns: 34px minmax(0, 1fr);
        padding: 18px;
    }

    .vleh-highlight-card > span {
        font-size: 1.15rem;
    }

    .vleh-highlight-card h3 {
        font-size: 1rem;
        letter-spacing: -0.015em;
        line-height: 1.38;
    }

    .vleh-highlight-card p {
        font-size: 0.9rem;
        line-height: 1.55;
    }

    .vleh-timeline li {
        gap: 12px;
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .vleh-timeline li::before {
        left: 78px;
    }

    .vleh-timeline li::after {
        left: 86px;
    }

    .vleh-timeline li > div {
        padding-left: 24px;
    }

    .vleh-field-grid,
    .vleh-receipt-facts {
        grid-template-columns: 1fr;
    }

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

    .vleh-qr-panel {
        grid-template-columns: 1fr;
    }

    .vleh-qr-panel .vleh-payment-qr {
        margin-inline: auto;
        max-width: 320px;
    }

    .vleh-mobile-cta {
        align-items: center;
        background: rgba(255, 253, 249, 0.96);
        border: 1px solid rgba(75, 18, 61, 0.14);
        border-radius: 17px;
        bottom: max(10px, env(safe-area-inset-bottom));
        box-shadow: 0 14px 42px rgba(36, 5, 31, 0.24);
        display: flex;
        gap: 10px;
        justify-content: space-between;
        left: 10px;
        padding: 9px;
        position: fixed;
        right: 10px;
        transform: translateY(0);
        transition: opacity 180ms ease, transform 180ms ease;
        z-index: 950;
    }

    .vleh-mobile-cta.is-hidden {
        opacity: 0;
        pointer-events: none;
        transform: translateY(calc(100% + 24px));
    }

    .vleh-mobile-cta > div {
        display: grid;
        line-height: 1.2;
        min-width: 0;
        padding-left: 6px;
    }

    .vleh-mobile-cta small {
        color: #766972;
        font-size: 0.66rem;
        max-width: 40vw;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .vleh-mobile-cta strong {
        color: var(--vleh-primary);
        font-size: 0.85rem;
    }

    .vleh-mobile-cta .vleh-button {
        flex: 0 0 auto;
        min-height: 46px;
        padding: 12px 17px;
    }
}

@media (max-width: 480px) {
    .vleh-button-row {
        align-items: stretch;
        flex-direction: column;
    }

    .vleh-button-row .vleh-button {
        width: 100%;
    }

    .vleh-ticket {
        align-items: stretch;
        flex-direction: column;
    }

    .vleh-stepper {
        align-self: flex-start;
    }

    .vleh-registration-form,
    .vleh-order-card,
    .vleh-payment-copy,
    .vleh-external-qr,
    .vleh-receipt-card,
    .vleh-message-card {
        border-radius: 20px;
        padding: 22px;
    }

    .vleh-gallery__item,
    .vleh-gallery__item--1,
    .vleh-gallery__item--5 {
        flex-basis: 84vw;
        height: 380px;
    }
}

.vleh-video-links { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--vleh-line); }
.vleh-video-links > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; align-items: start; }
.vleh-video-links a { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; min-height: 88px; padding: 18px; border: 1px solid var(--vleh-line); border-radius: 18px; color: var(--vleh-ink); background: var(--vleh-surface); text-decoration: none; transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.vleh-video-links a:hover { transform: translateY(-2px); border-color: var(--vleh-primary); box-shadow: 0 14px 34px rgba(39,14,31,.1); }
.vleh-video-icon { grid-row: 1 / 3; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; background: var(--vleh-primary); font-size: 15px; }
.vleh-video-links small { color: var(--vleh-muted); }
.vleh-video-embed { display: flex; flex-direction: column; min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--vleh-line); border-radius: 18px; background: #fff; }
.vleh-video-embed__stage { position: relative; width: 100%; overflow: hidden; background: linear-gradient(145deg,#2c1225,#5f184d); }
.vleh-video-embed--landscape .vleh-video-embed__stage { aspect-ratio: 16 / 9; }
.vleh-video-embed--portrait { justify-self: center; width: min(100%,420px); }
.vleh-video-embed--portrait .vleh-video-embed__stage { aspect-ratio: 9 / 16; }
.vleh-video-embed iframe,
.vleh-video-embed video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; background: #1f0e1b; }
.vleh-video-embed video { object-fit: contain; }
.vleh-video-embed figcaption { padding: 12px 16px; }
.vleh-video-embed figcaption a { display: inline-flex; min-height: 44px; align-items: center; color: var(--vleh-primary); font-weight: 780; }
.vleh-event-route .grecaptcha-badge { bottom: calc(88px + env(safe-area-inset-bottom)) !important; z-index: 940 !important; }
.vleh-gallery__link { display: inline-flex; margin: 8px 0 18px; color: var(--vleh-primary); font-weight: 750; text-decoration: none; }
.vleh-partners-section { background: linear-gradient(145deg,rgba(255,255,255,.95),rgba(247,239,229,.84)); }
.vleh-partner-groups { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-flow: dense; gap: 16px; align-items: start; }
.vleh-partner-group { overflow: hidden; border: 1px solid var(--vleh-line); border-radius: 20px; background: rgba(255,255,255,.86); box-shadow: 0 14px 38px rgba(37,15,30,.07); }
.vleh-partner-group--span-2 { grid-column: span 2; }
.vleh-partner-group--span-3 { grid-column: span 3; }
.vleh-partner-group--span-4 { grid-column: span 4; }
.vleh-partner-group__header { display: flex; align-items: center; min-height: 44px; padding: 12px 18px; border-bottom: 1px solid rgba(255,255,255,.18); background: linear-gradient(90deg,#3f112f,#6d1b53) !important; }
.vleh-partner-group__header span { color: #f8d27c !important; font-size: 12px; font-weight: 850; letter-spacing: .14em; line-height: 1.35; overflow-wrap: anywhere; text-transform: uppercase; }
.vleh-partner-grid { display: grid; gap: 1px; background: var(--vleh-line); }
.vleh-partner-grid--1 { grid-template-columns: 1fr; }
.vleh-partner-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.vleh-partner-grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.vleh-partner-grid--4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.vleh-partner-card { display: flex; flex-direction: column; min-height: 0; padding: 18px; background: rgba(255,255,255,.8); }
.vleh-partner-card__logo { display: flex; align-items: center; height: 48px; margin-bottom: 10px; }
.vleh-partner-card__logo img { max-width: 135px; max-height: 44px; object-fit: contain; }
.vleh-partner-card__monogram { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(75,18,61,.14); border-radius: 12px; color: var(--vleh-primary); background: linear-gradient(145deg,rgba(75,18,61,.08),rgba(233,135,36,.13)); font-family: Georgia,"Times New Roman",serif; font-size: 20px; font-weight: 800; }
.vleh-partner-card h3 { margin: 0 0 6px; font-size: 18px; }
.vleh-partner-card p { display: -webkit-box; overflow: hidden; margin: 0 0 10px; color: var(--vleh-muted); font-size: .9rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.vleh-partner-card a { color: var(--vleh-primary); font-size: .84rem; font-weight: 800; text-decoration: none; }

@media (max-width: 1100px) {
    .vleh-partner-groups { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .vleh-partner-group--span-3,
    .vleh-partner-group--span-4 { grid-column: span 3; }
    .vleh-partner-grid--4 { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 780px) {
    .vleh-partner-groups { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .vleh-partner-group--span-2,
    .vleh-partner-group--span-3,
    .vleh-partner-group--span-4 { grid-column: span 2; }
    .vleh-partner-grid--3,
    .vleh-partner-grid--4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 720px) {
    .vleh-video-links > div { grid-template-columns: 1fr; }
    .vleh-video-embed--portrait { width: min(100%,380px); }
}

@media (max-width: 560px) {
    .vleh-partner-groups { grid-template-columns: 1fr; }
    .vleh-partner-group--span-2,
    .vleh-partner-group--span-3,
    .vleh-partner-group--span-4 { grid-column: span 1; }
    .vleh-partner-grid--2,
    .vleh-partner-grid--3,
    .vleh-partner-grid--4 { grid-template-columns: 1fr; }
}
.vleh-arrival-section { background: var(--vleh-ink); color: #fff; }
.vleh-arrival-section .vleh-kicker { color: var(--vleh-accent); }
.vleh-arrival-section h2 { color: #fff; }
.vleh-arrival-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 16px; }
.vleh-arrival-grid article { padding: 22px; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(255,255,255,.07); }
.vleh-arrival-icon { color: var(--vleh-accent); font-size: 22px; }
.vleh-arrival-grid h3 { margin: 12px 0 8px; }
.vleh-arrival-grid p { margin: 0; color: rgba(255,255,255,.75); line-height: 1.65; }

@media (max-width: 720px) {
    .vleh-eventbar__brand,
    .vleh-jumpnav a,
    .vleh-gallery__link,
    .vleh-partner-card a,
    .vleh-venue-section .vleh-text-link {
        align-items: center;
        display: inline-flex;
        min-height: 44px;
    }

    .vleh-hero__status,
    .vleh-hero__facts dt {
        font-size: 0.75rem;
    }

    .vleh-stepper button,
    .vleh-stepper input {
        height: 44px;
        width: 44px;
    }
}

@media (max-width: 340px) {
    .vleh-mobile-cta > div {
        display: none;
    }

    .vleh-mobile-cta .vleh-button {
        flex: 1 1 auto;
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .vleh-shell *,
    .vleh-shell *::before,
    .vleh-shell *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

@media (forced-colors: active) {
    .vleh-button,
    .vleh-stepper,
    .vleh-registration-form,
    .vleh-order-card,
    .vleh-accordion {
        border: 1px solid CanvasText;
    }
}

/* 0.6.9 premium visual preview — presentation only. */
.vleh-event-route {
    background: #f4ecdf;
}

.vleh-shell {
    --vleh-radius: 24px;
    --vleh-radius-lg: 38px;
    --vleh-shadow-sm: 0 14px 40px rgba(45, 13, 36, 0.09);
    --vleh-shadow: 0 30px 90px rgba(45, 13, 36, 0.16);
    background:
        radial-gradient(circle at 8% 8%, rgba(233, 135, 36, 0.16), transparent 23rem),
        radial-gradient(circle at 92% 22%, rgba(116, 32, 84, 0.1), transparent 28rem),
        linear-gradient(180deg, #fffdfa 0, #faf4eb 42rem, #f4ecdf 100%);
    color: #2a1723;
}

.vleh-main {
    position: relative;
}

.vleh-eventbar {
    background: rgba(255, 253, 249, 0.94);
    border-color: rgba(75, 18, 61, 0.13);
    box-shadow: 0 16px 48px rgba(42, 13, 33, 0.11);
    isolation: isolate;
    overflow: hidden;
}

.vleh-eventbar::before {
    background: linear-gradient(90deg, #d69835, #f4d27d 46%, #7e275f);
    bottom: 0;
    content: "";
    height: 3px;
    left: 14px;
    position: absolute;
    right: 14px;
    z-index: -1;
}

.vleh-eventbar__mark {
    background: linear-gradient(145deg, #360725, #741950);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18), 0 7px 18px rgba(55, 8, 39, 0.2);
}

.vleh-button {
    letter-spacing: -0.01em;
}

.vleh-button--primary {
    background: linear-gradient(135deg, #4b123d, #741950);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.vleh-button--primary:hover {
    background: linear-gradient(135deg, #3b0b2f, #681348);
    box-shadow: 0 17px 36px rgba(50, 8, 36, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.vleh-hero {
    background:
        radial-gradient(circle at 14% 10%, rgba(245, 203, 114, 0.2), transparent 22rem),
        radial-gradient(circle at 80% 100%, rgba(152, 45, 100, 0.27), transparent 31rem),
        linear-gradient(145deg, #250219 0%, #42082f 50%, #5c1243 100%);
    border: 1px solid rgba(244, 210, 125, 0.38);
    box-shadow: 0 34px 100px rgba(45, 9, 34, 0.22);
    grid-template-columns: minmax(0, 0.94fr) minmax(390px, 1.06fr);
    height: clamp(680px, 74vw, 760px);
    min-height: 680px;
    isolation: isolate;
}

.vleh-hero::before {
    border-color: rgba(246, 211, 126, 0.32);
    box-shadow: 0 0 0 44px rgba(246, 211, 126, 0.025), 0 0 0 88px rgba(246, 211, 126, 0.018);
}

.vleh-hero::after {
    background: linear-gradient(180deg, transparent, rgba(247, 211, 125, 0.6) 20%, rgba(247, 211, 125, 0.6) 80%, transparent);
    content: "";
    inset: 0 auto 0 44.2%;
    opacity: 0.38;
    pointer-events: none;
    position: absolute;
    width: 1px;
    z-index: 2;
}

.vleh-hero__copy {
    padding: clamp(42px, 5.5vw, 72px) clamp(30px, 4.5vw, 58px);
}

.vleh-hero h1,
.vleh-section-heading h2,
.vleh-payment-copy h2,
.vleh-venue-section h2,
.vleh-support-section h2,
.vleh-next-step h2,
.vleh-qr-panel h2 {
    font-family: "Iowan Old Style", Baskerville, "Palatino Linotype", Georgia, serif;
}

.vleh-hero h1 {
    font-size: clamp(4rem, 6.3vw, 6.7rem);
    letter-spacing: -0.055em;
    line-height: 0.88;
    margin-bottom: 28px;
    text-shadow: 0 12px 38px rgba(18, 0, 13, 0.28);
}

.vleh-hero__subtitle {
    color: rgba(255, 255, 255, 0.88);
    font-size: clamp(1.05rem, 1.8vw, 1.3rem);
    font-weight: 550;
    letter-spacing: -0.018em;
}

.vleh-hero__status {
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(246, 211, 126, 0.25);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.vleh-hero__facts {
    gap: 12px;
}

.vleh-hero__facts > div {
    backdrop-filter: blur(10px);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.055));
    border-color: rgba(248, 220, 151, 0.22);
    border-radius: 16px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    padding: 15px 17px;
}

.vleh-hero__facts dd {
    font-size: 0.95rem;
    line-height: 1.42;
}

.vleh-hero .vleh-button--checkout {
    background: linear-gradient(135deg, #f3c766, #e49a2f);
    border-color: #f8db94;
    box-shadow: 0 16px 38px rgba(18, 0, 13, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.65);
    color: #2d071f;
}

.vleh-hero .vleh-button--checkout:hover {
    background: linear-gradient(135deg, #f8d783, #eaa33b);
    color: #2d071f;
}

.vleh-hero__media {
    background:
        radial-gradient(circle at 78% 10%, rgba(255, 245, 191, 0.82), transparent 26%),
        radial-gradient(circle at 18% 85%, rgba(116, 24, 77, 0.48), transparent 32%),
        linear-gradient(145deg, #6a204e 0%, #b36a32 42%, #d9a540 72%, #f1cf70 100%);
    height: 100%;
    min-height: 0;
    padding: 58px 26px 28px;
}

.vleh-hero__media::after {
    background: linear-gradient(90deg, rgba(67, 8, 48, 0.68), transparent 18%);
}

.vleh-hero__media > img {
    border: 1px solid rgba(255, 246, 204, 0.62);
    border-radius: 7px;
    box-shadow: 0 26px 60px rgba(35, 5, 24, 0.38);
    height: 100%;
    object-fit: contain;
    padding: 0;
    width: 100%;
}

.vleh-hero__stamp {
    background: linear-gradient(145deg, #f7db8f, #e9ab42);
    border: 1px solid rgba(255, 255, 255, 0.56);
    box-shadow: 0 15px 38px rgba(43, 8, 31, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.7);
    right: 18px;
    top: 16px;
}

.vleh-trust-strip {
    background: rgba(255, 254, 251, 0.92);
    border-color: rgba(75, 18, 61, 0.11);
    box-shadow: 0 18px 50px rgba(48, 13, 38, 0.11);
    max-width: 1010px;
}

.vleh-trust-strip div::before {
    background: linear-gradient(145deg, #fff7e4, #f3dfb8);
    border-color: rgba(126, 39, 95, 0.13);
    box-shadow: 0 8px 20px rgba(60, 14, 46, 0.08);
}

.vleh-jumpnav {
    backdrop-filter: blur(14px);
    background: rgba(255, 253, 249, 0.88);
    box-shadow: 0 12px 32px rgba(45, 13, 36, 0.07);
    position: relative;
    z-index: 6;
}

.vleh-section {
    position: relative;
}

.vleh-section + .vleh-section {
    border-top: 0;
}

.vleh-section-heading h2,
.vleh-payment-copy h2,
.vleh-support-section h2 {
    font-weight: 650;
    letter-spacing: -0.05em;
}

.vleh-section-heading .vleh-kicker,
.vleh-payment-copy .vleh-kicker,
.vleh-venue-section .vleh-kicker,
.vleh-support-section .vleh-kicker {
    align-items: center;
    display: flex;
    gap: 10px;
}

.vleh-section-heading .vleh-kicker::before,
.vleh-payment-copy .vleh-kicker::before,
.vleh-venue-section .vleh-kicker::before,
.vleh-support-section .vleh-kicker::before {
    background: linear-gradient(90deg, #e69b31, #f2cc70);
    border-radius: 999px;
    content: "";
    height: 2px;
    width: 34px;
}

.vleh-story,
.vleh-gallery-section,
.vleh-booking-section,
.vleh-partners-section,
.vleh-faq-section {
    border: 1px solid rgba(75, 18, 61, 0.09);
    border-radius: 34px;
    box-shadow: 0 22px 65px rgba(48, 14, 37, 0.07);
    margin-top: 30px;
    padding-inline: clamp(24px, 5.4vw, 68px);
}

.vleh-story,
.vleh-faq-section {
    background: rgba(255, 254, 251, 0.82);
}

.vleh-gallery-section {
    background:
        radial-gradient(circle at 92% 8%, rgba(242, 196, 109, 0.2), transparent 19rem),
        rgba(255, 253, 248, 0.86);
}

.vleh-story__grid {
    gap: clamp(38px, 6vw, 76px);
    grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
}

.vleh-story__copy {
    color: #4f3d48;
    font-size: 1.08rem;
}

.vleh-story__copy > p:first-child:first-letter {
    color: #6e1c53;
    font-size: 5rem;
}

.vleh-highlight-card {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(252, 246, 238, 0.92));
    border-color: rgba(75, 18, 61, 0.11);
    box-shadow: 0 12px 34px rgba(46, 12, 35, 0.06);
    padding: 22px;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.vleh-highlight-card:hover {
    border-color: rgba(218, 149, 49, 0.46);
    box-shadow: 0 18px 42px rgba(46, 12, 35, 0.1);
    transform: translateY(-3px);
}

.vleh-highlight-card > span {
    align-items: center;
    background: linear-gradient(145deg, #fff7e5, #f2ddb3);
    border: 1px solid rgba(218, 149, 49, 0.25);
    border-radius: 50%;
    display: inline-flex;
    font-size: 1rem;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.vleh-gallery {
    gap: 16px;
}

.vleh-gallery__item {
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 22px;
    box-shadow: 0 18px 42px rgba(49, 13, 37, 0.12);
}

.vleh-gallery__item::after {
    background: linear-gradient(180deg, transparent 55%, rgba(30, 3, 21, 0.58));
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.vleh-gallery__open {
    background: rgba(255, 252, 247, 0.92);
    color: #4b123d;
    opacity: 1;
    transform: none;
    z-index: 2;
}

.vleh-video-links {
    border-top-color: rgba(75, 18, 61, 0.1);
}

.vleh-video-links > h3 {
    color: #351029;
    font-family: "Iowan Old Style", Baskerville, "Palatino Linotype", Georgia, serif;
    font-size: 1.65rem;
    font-weight: 650;
}

.vleh-video-embed {
    border-color: rgba(75, 18, 61, 0.13);
    border-radius: 22px;
    box-shadow: 0 18px 50px rgba(43, 11, 33, 0.1);
}

.vleh-schedule-section {
    margin-inline: auto;
    max-width: 980px;
}

.vleh-timeline {
    max-width: 760px;
}

.vleh-timeline li > div {
    background: rgba(255, 254, 251, 0.7);
    border: 1px solid rgba(75, 18, 61, 0.09);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(45, 12, 35, 0.05);
    padding: 17px 20px 17px 28px;
}

.vleh-booking-section {
    background:
        radial-gradient(circle at 90% 8%, rgba(245, 208, 116, 0.22), transparent 22rem),
        linear-gradient(145deg, #2a061e, #4b123d 58%, #68194e);
    border-color: rgba(244, 210, 125, 0.38);
    box-shadow: 0 30px 86px rgba(43, 9, 32, 0.2);
}

.vleh-payment-layout--direct .vleh-payment-copy {
    background: rgba(255, 253, 249, 0.96);
    border-color: rgba(244, 210, 125, 0.42);
    box-shadow: 0 26px 64px rgba(24, 2, 17, 0.28);
    margin-inline: auto;
    max-width: 880px;
    text-align: center;
}

.vleh-payment-layout--direct .vleh-payment-copy > p {
    margin-inline: auto;
}

.vleh-payment-layout--direct .vleh-payment-copy .vleh-kicker {
    justify-content: center;
}

.vleh-payment-layout--direct .vleh-public-prices {
    margin-inline: auto;
    max-width: 620px;
    text-align: left;
}

.vleh-payment-layout--direct .vleh-button-row {
    justify-content: center;
}

.vleh-payment-layout--direct .vleh-button--checkout {
    background: linear-gradient(135deg, #4b123d, #7b1e5c);
    box-shadow: 0 18px 42px rgba(58, 10, 43, 0.25);
    min-width: min(100%, 440px);
}

.vleh-venue-section {
    background: linear-gradient(145deg, rgba(255, 254, 251, 0.72), rgba(248, 237, 223, 0.78));
    border: 1px solid rgba(75, 18, 61, 0.09);
    border-radius: 30px;
    box-shadow: 0 18px 48px rgba(44, 12, 34, 0.06);
    margin-top: 30px;
    padding-inline: clamp(24px, 4.5vw, 56px);
}

.vleh-partners-section {
    background:
        radial-gradient(circle at 90% 12%, rgba(233, 135, 36, 0.13), transparent 20rem),
        linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(247, 239, 229, 0.9));
}

.vleh-partner-groups {
    gap: 18px;
}

.vleh-partner-group {
    border-color: rgba(75, 18, 61, 0.1);
    box-shadow: 0 18px 44px rgba(37, 15, 30, 0.08);
}

.vleh-partner-group__header {
    background: linear-gradient(90deg, #3a0c2c, #67194d) !important;
}

.vleh-partner-card {
    background: rgba(255, 255, 255, 0.92);
    padding: 20px;
}

.vleh-partner-card__logo {
    height: 54px;
}

.vleh-partner-card__logo img {
    filter: drop-shadow(0 6px 12px rgba(43, 12, 32, 0.08));
    max-height: 50px;
}

.vleh-arrival-section {
    background:
        radial-gradient(circle at 90% 12%, rgba(242, 196, 109, 0.18), transparent 22rem),
        linear-gradient(145deg, #1f0b18, #321326 60%, #421732);
    border: 1px solid rgba(244, 210, 125, 0.18);
    border-radius: 34px;
    box-shadow: 0 26px 70px rgba(35, 8, 27, 0.18);
    margin-top: 30px;
    padding-inline: clamp(24px, 5.4vw, 68px);
}

.vleh-arrival-grid article {
    backdrop-filter: blur(8px);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.095), rgba(255, 255, 255, 0.045));
    border-color: rgba(247, 218, 149, 0.18);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.vleh-accordion-list {
    border-top: 0;
    max-width: 100%;
}

.vleh-accordion {
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid rgba(75, 18, 61, 0.09);
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(46, 12, 35, 0.045);
    margin-top: 10px;
    overflow: hidden;
}

.vleh-accordion summary {
    min-height: 64px;
    padding: 15px 18px;
}

.vleh-accordion > div {
    padding: 0 52px 22px 18px;
}

.vleh-support-section {
    background:
        radial-gradient(circle at 85% 10%, rgba(245, 207, 112, 0.24), transparent 18rem),
        linear-gradient(135deg, #250219, #4b123d 62%, #64194c);
    border: 1px solid rgba(247, 215, 139, 0.3);
    box-shadow: 0 28px 76px rgba(41, 8, 30, 0.2);
}

.vleh-mobile-cta {
    backdrop-filter: blur(18px);
    background: rgba(255, 253, 249, 0.94);
    border-color: rgba(75, 18, 61, 0.13);
    box-shadow: 0 18px 54px rgba(43, 9, 32, 0.26);
}

@media (min-width: 981px) {
    .vleh-hero__copy,
    .vleh-hero__media {
        animation: vleh-premium-reveal 620ms cubic-bezier(0.2, 0.75, 0.2, 1) both;
    }

    .vleh-hero__media {
        animation-delay: 90ms;
    }
}

@keyframes vleh-premium-reveal {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 980px) {
    .vleh-hero {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
    }

    .vleh-hero::after {
        display: none;
    }

    .vleh-hero__media {
        height: min(76vw, 720px);
        min-height: 560px;
        order: -1;
        padding: 58px 24px 24px;
    }

    .vleh-hero__media > img {
        height: 100%;
        width: 100%;
    }

    .vleh-story__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .vleh-main,
    .vleh-eventbar,
    .vleh-system-banner {
        width: calc(100% - 20px);
    }

    .vleh-eventbar {
        border-radius: 17px;
        min-height: 60px;
        padding: 9px 10px;
        top: 7px;
    }

    .vleh-eventbar::before {
        left: 10px;
        right: 10px;
    }

    .vleh-hero {
        border-radius: 28px;
        margin-top: 14px;
    }

    .vleh-hero__media {
        height: 70svh;
        min-height: 530px;
        max-height: 640px;
        padding: 54px 14px 16px;
    }

    .vleh-hero__media > img {
        border-radius: 5px;
        height: 100%;
        object-fit: contain;
        width: 100%;
    }

    .vleh-hero__stamp {
        height: 62px;
        right: 12px;
        top: 10px;
        width: 62px;
    }

    .vleh-hero__stamp strong {
        font-size: 1.55rem;
    }

    .vleh-hero__copy {
        padding: 30px 22px 36px;
    }

    .vleh-hero h1 {
        font-size: clamp(3.35rem, 16vw, 4.75rem);
        line-height: 0.9;
        margin-bottom: 20px;
    }

    .vleh-hero__subtitle {
        font-size: 1.05rem;
        line-height: 1.45;
        margin-bottom: 24px;
    }

    .vleh-hero__facts {
        gap: 10px;
    }

    .vleh-hero__facts > div,
    .vleh-hero__facts > div + div {
        background: rgba(255, 255, 255, 0.075);
        border: 1px solid rgba(248, 220, 151, 0.18);
        border-radius: 14px;
        padding: 13px 14px;
    }

    .vleh-hero .vleh-button--checkout {
        min-height: 60px;
    }

    .vleh-trust-strip {
        display: flex;
        gap: 10px;
        margin-inline: -2px;
        overflow-x: auto;
        padding: 12px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .vleh-trust-strip::-webkit-scrollbar {
        display: none;
    }

    .vleh-trust-strip div,
    .vleh-trust-strip div + div {
        border: 0;
        flex: 0 0 min(78vw, 285px);
        min-height: 78px;
        padding: 10px 12px 10px 48px;
        scroll-snap-align: start;
    }

    .vleh-trust-strip div + div {
        border-left: 1px solid rgba(75, 18, 61, 0.1);
    }

    .vleh-trust-strip div::before,
    .vleh-trust-strip div + div::before {
        left: 4px;
        top: 10px;
    }

    .vleh-jumpnav {
        box-shadow: 0 10px 28px rgba(43, 10, 32, 0.08);
    }

    .vleh-section {
        padding-block: 54px;
    }

    .vleh-section-heading {
        margin-bottom: 28px;
    }

    .vleh-section-heading h2,
    .vleh-payment-copy h2,
    .vleh-venue-section h2,
    .vleh-support-section h2 {
        font-size: clamp(2.25rem, 11.5vw, 3.15rem);
        letter-spacing: -0.055em;
        line-height: 0.98;
    }

    .vleh-story,
    .vleh-gallery-section,
    .vleh-booking-section,
    .vleh-partners-section,
    .vleh-faq-section,
    .vleh-arrival-section,
    .vleh-venue-section {
        border-radius: 26px;
        margin-top: 18px;
        padding-inline: 20px;
    }

    .vleh-story__grid {
        gap: 30px;
    }

    .vleh-story__copy {
        font-size: 1rem;
    }

    .vleh-story__copy > p:first-child:first-letter {
        font-size: 4.1rem;
    }

    .vleh-highlight-card {
        gap: 13px;
        grid-template-columns: 42px minmax(0, 1fr);
        padding: 17px;
    }

    .vleh-gallery__item,
    .vleh-gallery__item--1,
    .vleh-gallery__item--5 {
        flex-basis: 78vw;
        height: 360px;
    }

    .vleh-video-links > h3 {
        font-size: 1.45rem;
    }

    .vleh-video-embed--portrait {
        width: min(88vw, 330px);
    }

    .vleh-timeline li > div {
        padding: 15px 16px 15px 22px;
    }

    .vleh-payment-layout--direct .vleh-payment-copy {
        border-radius: 22px;
        padding: 28px 20px;
    }

    .vleh-payment-layout--direct .vleh-public-prices {
        margin-block: 20px;
    }

    .vleh-partner-groups {
        gap: 12px;
    }

    .vleh-partner-group {
        border-radius: 18px;
    }

    .vleh-partner-grid--2,
    .vleh-partner-grid--3,
    .vleh-partner-grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vleh-partner-card {
        padding: 17px;
    }

    .vleh-arrival-grid {
        grid-template-columns: 1fr;
    }

    .vleh-arrival-grid article {
        padding: 19px;
    }

    .vleh-accordion summary {
        font-size: 0.96rem;
        padding: 14px 15px;
    }

    .vleh-support-section {
        border-radius: 26px;
        padding: 30px 22px;
    }

    .vleh-mobile-cta {
        border-radius: 20px;
        bottom: max(8px, env(safe-area-inset-bottom));
        left: 8px;
        padding: 8px;
        right: 8px;
    }

    .vleh-mobile-cta .vleh-button {
        font-size: 0.84rem;
        min-height: 50px;
        padding-inline: 16px;
    }
}

@media (max-width: 390px) {
    .vleh-hero__media {
        height: 66svh;
        min-height: 500px;
    }

    .vleh-mobile-cta > div {
        max-width: 30%;
    }

    .vleh-mobile-cta .vleh-button {
        flex: 1 1 auto;
    }
}

@media (max-width: 340px) {
    .vleh-partner-grid--2,
    .vleh-partner-grid--3,
    .vleh-partner-grid--4 {
        grid-template-columns: 1fr;
    }
}

/* 0.6.9 poster-fit hotfix — preserve every edge and partner logo. */
.vleh-hero__media {
    align-items: center;
    display: flex;
    justify-content: center;
}

.vleh-hero__media > img {
    align-self: center;
    height: 100%;
    justify-self: center;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
    width: auto;
}

@media (min-width: 981px) {
    .vleh-hero {
        height: auto;
        min-height: 760px;
    }

    .vleh-hero__media {
        height: auto;
    }

    .vleh-hero__media > img {
        height: auto;
        max-height: none;
        width: min(100%, 445px);
    }
}

/* Responsive full-poster stage preview — fill the available width without cropping. */
@media (max-width: 980px) {
    .vleh-hero__media {
        height: auto;
        max-height: none;
        min-height: 0;
        padding: 0;
    }

    .vleh-hero__media > img {
        border-radius: 0;
        display: block;
        height: auto;
        max-height: none;
        max-width: none;
        object-fit: contain;
        width: 100%;
    }

}

@media (min-width: 981px) {
    .vleh-hero__media {
        padding: 0;
    }

    .vleh-hero__media > img {
        max-width: none;
        width: 100%;
    }

    .vleh-trust-strip {
        margin-top: 16px;
    }
}

/* Keep the event date with the title, never over the poster artwork. */
.vleh-hero__title-row {
    align-items: flex-end;
    display: flex;
    flex-direction: row;
    gap: 18px;
    justify-content: flex-start;
    margin-bottom: 22px;
}

.vleh-hero__title-row h1 {
    flex: 1 1 auto;
    margin-bottom: 0;
    min-width: 0;
}

.vleh-hero__copy .vleh-hero__stamp {
    height: 74px;
    flex: 0 0 74px;
    left: auto;
    margin: 0;
    position: static;
    right: auto;
    top: auto;
    transform: none;
    width: 74px;
}

.vleh-hero__media--image {
    background: transparent;
}

.vleh-hero__media--image > img {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

@media (max-width: 640px) {
    .vleh-hero__copy .vleh-hero__stamp {
        flex-basis: 62px;
        height: 62px;
        width: 62px;
    }
}
