.vte {
    font-family: inherit;
    color: #262626;
    --vte-line: #ded8ca;
    --vte-accent: #8d4716;
}
.vte * {
    box-sizing: border-box;
}
.vte-controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem 1rem;
    margin: 0 0 1rem;
}
.vte-controls label {
    font-weight: 700;
}
.vte-controls input,
.vte-controls select {
    border: 1px solid #b7b1a8;
    background: #fff;
    padding: 0.5rem 0.7rem;
    min-height: 44px;
    max-width: 100%;
    color: #222;
}
.vte-controls input {
    width: min(100%, 330px);
}
.vte-count {
    font-size: 0.9rem;
    margin: 0 0 0.75rem;
}
.vte-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 1.5rem;
}
.vte-card {
    background: #fffdf9;
    border: 1px solid var(--vte-line);
    min-width: 0;
    overflow: hidden;
}
.vte-card[hidden],
.vte-detail[hidden],
.vte-empty[hidden] {
    display: none !important;
}
.vte-summary {
    display: flex;
    align-items: stretch;
    min-height: 200px;
}
.vte-media {
    position: relative;
    flex: 0 0 37%;
    min-width: 0;
    overflow: hidden;
    background: #e5ebf2;
}
.vte-media img {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.vte-noimage {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #dce9eb;
    font-weight: 700;
    color: #244b71;
    font-size: 1.1rem;
    padding: 0.5rem;
}
.vte-body {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 1rem;
    gap: 0.3rem;
}
.vte-date {
    color: var(--vte-accent);
    font-weight: 800;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0 0 0.35rem;
}
.vte h3 {
    font-size: clamp(1.05rem, 1.4vw, 1.35rem);
    line-height: 1.25;
    margin: 0 0 0.35rem;
    overflow-wrap: anywhere;
    color: #242424;
}
.vte-short {
    font-size: 0.91rem;
    color: #515151;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.vte-short p {
    margin: 0.15rem 0 0.5rem;
}
.vte-short ul,
.vte-short ol {
    padding-left: 1.25rem;
    margin: 0.3rem 0 0.5rem;
}
.vte-meta {
    font-size: 0.82rem;
    line-height: 1.4;
    margin: 0.2rem 0;
    overflow-wrap: anywhere;
}
.vte-meta a,
.vte-detail a {
    color: #8d4716;
    text-decoration: underline;
}
.vte-actions {
    margin-top: auto;
    padding-top: 0.8rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.vte-toggle,
.vte-actions > a {
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    background: transparent;
    border: 0;
    color: var(--vte-accent);
    cursor: pointer;
    padding: 0.4rem 0;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}
.vte-toggle:hover,
.vte-actions > a:hover {
    text-decoration: underline;
}
.vte-toggle:focus-visible,
.vte-actions a:focus-visible,
.vte-controls :focus-visible {
    outline: 3px solid #b8782c;
    outline-offset: 2px;
}
.vte-detail {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--vte-line);
    line-height: 1.65;
    overflow-wrap: anywhere;
    background: #f8f5ee;
}
.vte-detail p {
    margin: 0.2rem 0 0.85rem;
}
.vte-detail ul,
.vte-detail ol {
    padding-left: 1.4rem;
}
.vte-detail h4,
.vte-detail h5 {
    margin: 1rem 0 0.4rem;
}
.vte-links {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}
.vte-tags {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin: 0.7rem 0;
}
.vte-tag {
    font-size: 0.76rem;
    padding: 0.2rem 0.5rem;
    background: #e5ebf2;
    color: #244b71;
}
.vte-credit {
    font-size: 0.8rem;
    color: #57534c;
    margin-top: 1.5rem;
}
.vte-notice {
    padding: 1rem;
    background: #f5f1e9;
    border-left: 3px solid #8d4716;
}
.vte-empty {
    margin: 1rem 0;
}
@media (max-width: 480px) {
    .vte-body {
        padding: 0.7rem;
    }
    .vte-short {
        font-size: 0.83rem;
    }
    .vte-meta {
        font-size: 0.76rem;
    }
    .vte-actions {
        align-items: flex-start;
    }
    .vte h3 {
        font-size: 1rem;
    }
    .vte-controls {
        align-items: stretch;
        flex-direction: column;
    }
    .vte-controls input,
    .vte-controls select {
        width: 100%;
    }
}

/* Etusivun tiivis-widget: no theme-font override, scalable 3 columns */
.vte-compact {
    font-family: inherit;
    color: var(--vte-widget-text, inherit);
    max-width: 100%;
}
.vte-widget-heading {
    font: inherit;
    font-size: clamp(1.3rem, 2vw, 2rem);
    font-weight: 750;
    margin: 0 0 1rem;
}
.vte-compact-track {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 1rem;
}
.vte-compact-card {
    min-width: 0;
    background: var(--vte-widget-bg, transparent);
    border: 1px solid var(--vte-line, #ded8ca);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.vte-compact-media {
    height: clamp(var(--vte-compact-image, 100px), 15vw, 200px);
    background: #e5ebf2;
    position: relative;
    overflow: hidden;
}
.vte-compact-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.vte-compact-media span {
    display: grid;
    place-items: center;
    height: 100%;
    font-weight: 700;
}
.vte-compact-body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}
.vte-compact h3 {
    font: inherit;
    font-weight: 750;
    font-size: 1.15rem;
    line-height: 1.3;
    margin: 0;
}
.vte-compact-time {
    font-size: 0.81rem;
    font-weight: 700;
    color: var(--vte-accent, inherit);
    margin: 0;
}
.vte-compact-organizer {
    font-size: 0.88rem;
    margin: 0;
}
.vte-compact-short {
    font-size: 0.9rem;
}
.vte-compact-short p {
    margin: 0 0 0.3rem;
}
.vte-compact-open {
    margin-top: auto;
    align-self: flex-start;
    min-height: 36px;
}
.vte-compact-detail {
    margin-top: auto;
}
.vte-compact-detail[hidden] {
    display: none !important;
}
.vte-widget-footer {
    text-align: right;
    margin-top: 1.1rem;
}
.vte-widget-footer a {
    color: var(--vte-accent, inherit);
    font-weight: 700;
}
.vte-compact a:focus-visible,
.vte-compact button:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 2px;
}
.vte-custom-template {
    overflow-wrap: anywhere;
}
@media (max-width: 680px) {
    .vte-compact-track {
        display: flex;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        gap: 0.8rem;
        padding: 0 12% 0.8rem 0;
        scrollbar-width: thin;
    }
    .vte-compact-card {
        flex: 0 0 var(--vte-mobile-width, 82%);
        scroll-snap-align: start;
    }
    .vte-compact-media {
        height: 150px;
    }
    .vte-compact-track::after {
        content: "";
        flex: 0 0 1px;
    }
}
@media (prefers-reduced-motion: no-preference) {
    .vte-compact-track {
        scroll-behavior: smooth;
    }
}
/* Tiivisnäkymä perii sivuston teksti- ja linkkivärit, jollei niitä muuteta asetuksissa. */
.vte.vte-compact {
    --vte-accent: currentColor;
    --vte-line: currentColor;
    color: var(--vte-widget-text, inherit);
}
.vte-compact h3 {
    color: inherit;
    font-family: inherit;
}
.vte-compact .vte-compact-time {
    color: inherit;
}
.vte-compact .vte-compact-open,
.vte-compact .vte-widget-footer a,
.vte-compact .vte-detail a {
    color: inherit;
}
.vte-compact .vte-compact-card {
    border-color: color-mix(in srgb, currentColor 20%, transparent);
}
/* Kalenderin asetettavat sarakkeet ja sivutus. */
.vte:not(.vte-compact) .vte-grid {
    grid-template-columns: repeat(var(--vte-columns, 2), minmax(0, 1fr));
}
.vte-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 1.25rem 0;
}
.vte-pagination button {
    font: inherit;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid currentColor;
    color: inherit;
    background: transparent;
    cursor: pointer;
}
.vte-pagination button[aria-current="page"] {
    font-weight: 800;
    border-width: 2px;
}
.vte-pagination button:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 2px;
}
.vte-pagination button:disabled {
    opacity: 0.45;
    cursor: default;
}

/* Accessible, theme-inheriting organizer filter and mobile slider controls. */
.vte-org-label {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin: 0.65rem 0 1rem;
    font: inherit;
    font-size: 0.9rem;
}
.vte-org-select {
    font: inherit;
    min-height: 44px;
    max-width: 100%;
    padding: 0.4rem 0.7rem;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
}
.vte-compact-card[hidden] {
    display: none !important;
}
.vte-compact-scroll {
    position: relative;
}
.vte-scroll-nav {
    display: none;
    justify-content: flex-end;
    gap: 0.6rem;
    padding: 0.6rem 0.1rem 0.15rem;
}
.vte-scroll-nav button {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}
.vte-scroll-nav button:disabled {
    opacity: 0.3;
    cursor: default;
}
.vte-scroll-nav button:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}
@media (max-width: 680px) {
    .vte-scroll-nav {
        display: flex;
    }
}

.vte-card-credit {
    margin: 0;
    border-top: 1px solid var(--vte-line, #ded8ca);
    padding: 0.5rem 0.85rem;
    font-size: 0.75rem;
    line-height: 1.4;
    color: inherit;
    opacity: 0.78;
}
.vte-card-credit a {
    text-decoration: underline;
    color: inherit;
}
.vte-compact-card > .vte-card-credit {
    margin-top: auto;
}
.vte-credit a {
    color: inherit;
    text-decoration: underline;
}

/* v7.1: Independent expanded card heights and intrinsic card layouts */
.vte-compact-track {
    align-items: start;
}
.vte-compact-card {
    align-self: start;
}
.vte-schedule {
    margin: 0 0 1rem;
}
.vte-schedule h4 {
    margin: 0 0 0.35rem;
}
.vte-schedule-extra {
    white-space: normal;
}

/* v7.1.1: separate calendar date and clock; the site's typeface is inherited. */
.vte:not(.vte-compact) .vte-date {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    margin: 0 0 0.55rem;
    text-transform: none;
    letter-spacing: normal;
}
.vte:not(.vte-compact) .vte-date-day {
    display: block;
    font-size: 1.06rem;
    line-height: 1.3;
    font-weight: 800;
    color: var(--vte-accent, #8d4716);
}
.vte:not(.vte-compact) .vte-date-clock {
    display: block;
    font-size: 0.91rem;
    line-height: 1.35;
    font-weight: 500;
    color: inherit;
}
/* A consistent action palette with readable contrast and clear intent. */
.vte {
    --vte-action-primary: #244b71;
    --vte-action-secondary: #8d4716;
}
.vte .vte-actions {
    gap: 0.65rem;
    justify-content: flex-start;
}
.vte .vte-actions .vte-toggle,
.vte .vte-actions > a,
.vte .vte-compact-open,
.vte .vte-widget-footer > a,
.vte .vte-detail .vte-links > a,
.vte
    .vte-detail
    p
    > a:not([href^="mailto:"]):not([href^="tel:"]):not(.vte-registration-link),
.vte
    .vte-compact-detail
    p
    > a:not([href^="mailto:"]):not([href^="tel:"]):not(.vte-registration-link) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    padding: 0.63rem 0.85rem;
    min-height: 44px;
    max-width: 100%;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    border: 2px solid var(--vte-action-primary);
    border-radius: 0;
    background: var(--vte-action-primary);
    color: #fff;
    cursor: pointer;
    text-transform: none;
    letter-spacing: normal;
}
.vte .vte-actions .vte-toggle,
.vte .vte-compact-open:is(button),
.vte .vte-compact-detail .vte-toggle {
    background: transparent;
    color: var(--vte-action-primary);
    border-color: var(--vte-action-primary);
}
.vte .vte-actions > a,
.vte .vte-widget-footer > a {
    background: var(--vte-action-secondary);
    border-color: var(--vte-action-secondary);
    color: #fff;
}
.vte .vte-actions .vte-toggle:hover,
.vte .vte-compact-open:is(button):hover {
    background: var(--vte-action-primary);
    color: #fff;
    text-decoration: none;
}
.vte .vte-actions > a:hover,
.vte .vte-widget-footer > a:hover {
    filter: brightness(0.87);
    color: #fff;
    text-decoration: none;
}
.vte .vte-detail .vte-links > a:hover,
.vte
    .vte-detail
    p
    > a:not([href^="mailto:"]):not([href^="tel:"]):not(
        .vte-registration-link
    ):hover {
    filter: brightness(0.87);
    color: #fff;
    text-decoration: none;
}
.vte .vte-actions :is(a, button):focus-visible,
.vte .vte-detail a:focus-visible,
.vte .vte-compact-open:focus-visible {
    outline: 3px solid #bd7828;
    outline-offset: 3px;
}
@media (hover: none) {
    .vte .vte-actions :is(a, button) {
        min-height: 44px;
    }
}

.vte.vte-compact .vte-compact-open:is(a) {
    color: #fff;
}
.vte.vte-compact .vte-compact-open:is(button) {
    color: var(--vte-action-primary);
}

/* v7.1.2: responsive action buttons, consistent Maps appearance even in expanded cards */
.vte .vte-actions {
    align-items: stretch;
}
.vte .vte-actions :is(a, button) {
    white-space: normal;
    text-align: center;
    overflow-wrap: normal;
    word-break: normal;
    flex-shrink: 0;
}
.vte .vte-actions :is(a, button) span {
    display: inline-block;
    white-space: nowrap;
}
/* v7.1.4: Maps is an inline text link, including inside expanded details. */
.vte a.vte-maps-link,
.vte .vte-meta a.vte-maps-link,
.vte .vte-detail p > a.vte-maps-link,
.vte .vte-compact-detail p > a.vte-maps-link,
.vte .vte-custom-template a.vte-maps-link {
    display: inline;
    min-height: 0;
    max-width: none;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--vte-accent, #8d4716);
    font: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-transform: none;
    white-space: normal;
    letter-spacing: normal;
}
.vte a.vte-maps-link:hover,
.vte .vte-detail p > a.vte-maps-link:hover,
.vte .vte-compact-detail p > a.vte-maps-link:hover {
    background: transparent;
    color: var(--vte-accent, #8d4716);
    text-decoration: underline;
    filter: none;
}
.vte a.vte-maps-link:focus-visible {
    outline: 3px solid #bd7828;
    outline-offset: 3px;
}
@container (max-width:320px) {
    .vte:not(.vte-compact) .vte-actions :is(a, button) {
        width: 100%;
        flex: 1 1 100%;
    }
}

/* v7.1.5: registration URL is always a text link; source is a clear footer action. */
.vte .vte-detail .vte-registration a.vte-registration-link,
.vte .vte-compact-detail .vte-registration a.vte-registration-link {
    display: inline;
    min-height: 0;
    max-width: none;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    color: var(--vte-accent, #8d4716);
    font: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.vte .vte-detail .vte-registration a.vte-registration-link:hover,
.vte .vte-compact-detail .vte-registration a.vte-registration-link:hover {
    background: transparent;
    color: var(--vte-accent, #8d4716);
    filter: none;
    text-decoration: underline;
}
.vte .vte-detail .vte-detail-footer,
.vte .vte-compact-detail .vte-detail-footer {
    margin: 1.25rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid var(--vte-line, #ded8ca);
}
.vte .vte-detail .vte-detail-footer a.vte-event-source-button,
.vte .vte-compact-detail .vte-detail-footer a.vte-event-source-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    min-height: 44px;
    padding: 0.63rem 0.85rem;
    box-sizing: border-box;
    border: 2px solid var(--vte-action-secondary, #8d4716);
    border-radius: 0;
    background: var(--vte-action-secondary, #8d4716);
    color: #fff;
    font: inherit;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    text-align: center;
}
.vte .vte-detail .vte-detail-footer a.vte-event-source-button:hover,
.vte .vte-compact-detail .vte-detail-footer a.vte-event-source-button:hover {
    filter: brightness(0.87);
    color: #fff;
    text-decoration: none;
}

/* Registration is an inline link even when site/theme styles target links in details. */
.vte .vte-detail .vte-registration p a.vte-registration-link,
.vte .vte-compact-detail .vte-registration p a.vte-registration-link {
    display: inline !important;
    padding: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--vte-accent, #8d4716) !important;
    text-decoration: underline !important;
    font: inherit !important;
    font-weight: 600 !important;
}

/* Single event card: inherit main calendar layout and typography. */
.vte-single {
    max-width: 100%;
}
.vte-single .vte-card {
    background: var(--vte-single-bg, #fffdf9);
}
.vte-single .vte-date-day,
.vte-single .vte-date-clock {
    display: block;
}
.vte-single .vte-date-day {
    font-size: 1.15em;
    font-weight: 800;
}
.vte-single .vte-date-clock {
    font-weight: 400;
    font-size: 0.9em;
}
.vte-single .vte-card {
    width: 100%;
}

/* 7.3: introductory text inherits theme font and colors */
.vte .vte-widget-subtitle {
    margin: 0.25rem 0 1.2rem;
    font: inherit;
    color: inherit;
    opacity: 0.82;
}
.vte .vte-widget-subtitle p {
    margin: 0.35rem 0;
}
.vte .vte-calendar-open {
    display: inline-flex;
    align-items: center;
    text-align: center;
}
.vte .vte-card:focus {
    outline: 2px solid var(--vte-accent, #8d4716);
    outline-offset: 3px;
}

/* 7.4.2: progressive enhancement and consistent keyboard focus. */
.vte:not(.vte-enhanced) .vte-toggle,
.vte:not(.vte-enhanced) .vte-controls,
.vte:not(.vte-enhanced) .vte-org-label,
.vte:not(.vte-enhanced) .vte-scroll-nav {
    display: none !important;
}
.vte :is(a, button, input, select, [tabindex]):focus-visible {
    outline: 3px solid #244b71;
    outline-offset: 3px;
    box-shadow: 0 0 0 5px #fff;
}
.vte .vte-scroll-nav button {
    width: 44px;
    height: 44px;
}
.vte .vte-detail img {
    max-width: 100%;
    height: auto;
}
.vte .vte-actions :is(a, button) {
    flex-shrink: 1;
    overflow-wrap: anywhere;
}
@media (prefers-reduced-motion: reduce) {
    .vte .vte-compact-track {
        scroll-behavior: auto !important;
    }
}

/* 7.4.4: consistent organizer footer and social/website buttons. */
.vte .vte-organizer-section {
    padding: 1rem;
    border-top: 1px solid var(--vte-line, #ded8ca);
    margin-top: auto;
    background: transparent;
    overflow-wrap: anywhere;
    min-width: 0;
}
.vte .vte-organizer-heading {
    font: inherit;
    font-size: 0.85rem;
    font-weight: 800;
    margin: 0 0 0.35rem;
    color: inherit;
}
.vte .vte-organizer-name {
    font: inherit;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 0.65rem;
    color: inherit;
}
.vte .vte-organizer-description,
.vte .vte-organizer-contact {
    font-size: 0.88rem;
    line-height: 1.5;
    margin: 0.5rem 0;
}
.vte .vte-organizer-contact p {
    margin: 0.25rem 0;
}
.vte .vte-organizer-image {
    display: block;
    max-width: 100%;
    width: auto;
    max-height: 100px;
    height: auto;
    margin: 0.5rem 0;
}
.vte .vte-organizer-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.65rem 0 0;
}
.vte a.vte-link-button,
.vte .vte-detail .vte-registration p a.vte-registration-link.vte-link-button,
.vte
    .vte-compact-detail
    .vte-registration
    p
    a.vte-registration-link.vte-link-button {
    --vte-link-color: #1b7044;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 44px !important;
    max-width: 100%;
    padding: 0.55rem 0.75rem !important;
    border: 2px solid var(--vte-link-color) !important;
    border-radius: 4px !important;
    background: var(--vte-link-color) !important;
    color: #fff !important;
    font: inherit !important;
    font-size: 0.87rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    text-transform: none;
    letter-spacing: normal;
    vertical-align: middle;
    white-space: normal;
    overflow-wrap: anywhere;
    box-sizing: border-box;
}
.vte a.vte-link-facebook {
    --vte-link-color: #0866ff;
}
.vte a.vte-link-instagram {
    --vte-link-color: #b62d55;
}
.vte a.vte-link-youtube {
    --vte-link-color: #c00;
}
.vte a.vte-link-button:hover {
    filter: brightness(0.85);
    color: #fff !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}
.vte a.vte-link-button:focus-visible {
    outline: 3px solid #172b4d !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 5px #fff !important;
}
.vte .vte-link-icon {
    display: block;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    pointer-events: none;
    color: inherit;
}
.vte .vte-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.vte .vte-description .vte-link-button,
.vte .vte-short .vte-link-button,
.vte .vte-custom-template .vte-link-button {
    margin: 0.2rem 0.2rem 0.2rem 0;
}

/* 7.4.5: compact organizer name; richer data stays within expanded details. */
.vte .vte-organizer-summary {
    font: inherit;
    font-size: 0.85rem;
    line-height: 1.45;
    margin: 0.3rem 0;
    color: inherit;
    overflow-wrap: anywhere;
}
.vte .vte-detail > .vte-organizer-section {
    margin: 1rem -1.25rem -1rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--vte-line, #ded8ca);
}

/* 7.5: view-scoped geometry and colors; defaults are set by VTE_Presentation. */
.vte .vte-compact-action {
    display: flex;
    flex-wrap: wrap;
    gap: var(--vte-button-gap, 10px);
}
.vte .vte-compact-body {
    flex: 1;
}
.vte .vte-body {
    display: flex;
    flex-direction: column;
}
.vte .vte-local-image img {
    display: block;
    max-width: 100%;
    height: auto;
}
.vte .vte-local-note {
    overflow-wrap: anywhere;
}
.vte .vte-local-note p:first-child {
    margin-top: 0;
}
.vte .vte-organizer-buttons,
.vte .vte-links,
.vte .vte-actions {
    gap: var(--vte-button-gap, 10px);
}
.vte.vte.vte
    :is(
        .vte-link-button,
        .vte-toggle,
        .vte-compact-open,
        .vte-calendar-open,
        .vte-event-source-button
    ),
.vte.vte .vte-actions > a {
    border-radius: var(--vte-button-radius, 6px) !important;
    padding: var(--vte-button-padding-y, 10px) var(--vte-button-padding-x, 14px) !important;
    min-height: 44px !important;
    box-sizing: border-box;
}
.vte a.vte-link-button {
    --vte-link-color: var(--vte-website, #226b3b);
    --vte-link-ink: var(--vte-website-ink, #ffffff);
}
.vte a.vte-link-facebook {
    --vte-link-color: var(--vte-facebook, #1558b0);
    --vte-link-ink: var(--vte-facebook-ink, #ffffff);
}
.vte a.vte-link-instagram {
    --vte-link-color: var(--vte-instagram, #a52a62);
    --vte-link-ink: var(--vte-instagram-ink, #ffffff);
}
.vte a.vte-link-youtube {
    --vte-link-color: var(--vte-youtube, #b91c1c);
    --vte-link-ink: var(--vte-youtube-ink, #ffffff);
}
.vte a.vte-link-registration {
    --vte-link-color: var(--vte-registration, #226b3b);
    --vte-link-ink: var(--vte-registration-ink, #ffffff);
}
.vte a.vte-link-tickets {
    --vte-link-color: var(--vte-tickets, #226b3b);
    --vte-link-ink: var(--vte-tickets-ink, #ffffff);
}
.vte a.vte-link-button,
.vte a.vte-link-button:hover {
    background: var(--vte-link-color) !important;
    border-color: var(--vte-link-color) !important;
    color: var(--vte-link-ink) !important;
    filter: none;
}
.vte a.vte-link-button:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}
.vte .vte-actions > :is(a, button),
.vte .vte-compact-action > :is(a, button) {
    margin: 0 !important;
}
.vte .vte-compact-action > .vte-compact-open {
    width: auto;
}
.vte .vte-media > .vte-noimage {
    min-height: 0;
    height: 100%;
}
