.et_pb_module.vefm_divi_track_list,
.et_pb_module.vefm_divi_album,
.et_pb_module.vefm_divi_concerts,
.et_pb_module.vefm_divi_featured_concert,
.et_pb_module.vefm_divi_past_concerts {
overflow: hidden;
}
.vefm-track-list,
.vefm-album,
.vefm-concerts, .vefm-featured-concert,
.vefm-past-concerts {
font-family: var( --vefm-font-family, inherit );
color: inherit; border-radius: var( --vefm-block-radius, 0 );
} .vefm-sr-only {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect( 0 0 0 0 );
white-space: nowrap;
}   .vefm-track-list,
.vefm-album-tracklist {
display: flex;
flex-direction: column;
gap: var( --vefm-track-gap, 14px );
}
.vefm-track {
display: flex;
align-items: flex-start;
gap: 14px;
padding: var( --vefm-track-padding, 10px 16px ); border-radius: var( --vefm-content-radius, var( --vefm-track-radius, 0 ) );
background: var( --vefm-track-bg, rgba(0, 0, 0, 0.14) );
color: var( --vefm-track-text, inherit );
border: 1px solid rgba(0, 0, 0, 0.12);
transition: background-color 0.15s ease, box-shadow 0.15s ease;
}
.vefm-track:hover {
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.vefm-track-buttons {
display: flex;
flex-direction: column;
align-items: center;
gap: .5ch;
}
.vefm-track.is-playing {
background: var( --vefm-accent, var( --wp--preset--color--primary, #6b6b6b ) );
background: color-mix( in srgb, var( --vefm-accent, var( --wp--preset--color--primary, #6b6b6b ) ) 8%, transparent );
border-color: color-mix( in srgb, var( --vefm-accent, var( --wp--preset--color--primary, #6b6b6b ) ) 25%, transparent );
} .vefm-play {
flex: 0 0 auto;
position: relative;
width: 50px;
height: 50px;
margin: 0 auto;
border-radius: 50%;
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --wp--preset--color--background, #fff );
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: transform 0.12s ease, opacity 0.15s ease;
}
.vefm-play:hover {
transform: scale(1.06);
}
.vefm-play:active {
transform: scale(0.96);
}
.vefm-play--disabled {
background: transparent;
color: rgba(0, 0, 0, 0.2);
cursor: default;
}
.vefm-play .vefm-icon-play,
.vefm-play .vefm-icon-pause {
width: 18px;
height: 18px;
fill: currentColor;
}
.vefm-play--disabled .vefm-icon-play {
width: 16px;
height: 16px;
} .vefm-track-body { flex: 0 1 auto;
min-width: 0; display: flex;
flex-direction: column;
width: 100%;
gap: 4px;
}
.vefm-track-heading {
display: flex;
align-items: baseline;
justify-content: space-between;
}
.vefm-track-title-row{
display: flex;
align-items: baseline;
justify-content: flex-start;
flex: 1 1 auto;
flex-flow: row wrap;
min-width: 0;
gap: .5ch;
}
.vefm-track-title {
display: inline-flex;
flex-flow: row wrap;
align-items: center;
justify-content: center;
overflow: hidden;
overflow-wrap: anywhere;
font-weight: 600;
gap: .5ch;
}
.vefm-track-album-badge {
display: inline-block;
padding: 2px 9px;
border-radius: 10px;
background: rgba(0, 0, 0, 0.08);
color: inherit;
font-size: max(1rem, 0.72em);
font-weight: 500;
letter-spacing: 0.02em;
vertical-align: middle;
opacity: 0.75;
} .vefm-track-listen-badge {
font-size: max(1rem, 0.85em);
opacity: 0.6;
vertical-align: middle;
}
.vefm-track-listen-badge--preview {
color: rgb(180, 110, 20);
opacity: 0.85;
}
.vefm-track-listen-badge--full {
color: inherit;
}
.vefm-track-cover {
width: 26px;
height: 26px;
object-fit: cover;
border-radius: 4px;
} .vefm-equalizer {
display: none;
align-items: flex-end;
justify-content: center;
gap: 2px;
height: 56px;
flex: 1 1 auto;
}
.vefm-track.is-playing .vefm-equalizer {
display: flex;
}
.vefm-equalizer-bar {
width: calc(100% / 18);
height: 15%;
border-radius: 1px; background-image:
repeating-linear-gradient( to top, transparent 0, transparent 3px, rgba(0, 0, 0, 0.45) 3px, rgba(0, 0, 0, 0.45) 4px ),
linear-gradient(
to top,
var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) ) 0%,
color-mix( in srgb, var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) ) 50%, var( --vefm-vu-peak, #ef4444 ) 50% ) 55%,
var( --vefm-vu-peak, #ef4444 ) 100%
); transition: height 0.03s linear;
}
.vefm-track-number {
display: flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
width: 1rem;
height: 1rem;
font-size: 1rem;
font-variant-numeric: tabular-nums;
border: 1px solid currentColor;
border-radius: 999px;
}
.vefm-track-time {
flex: 0 0 auto;
font-size: max(1rem, 0.85em);
opacity: 0.65;
font-variant-numeric: tabular-nums;
}
.vefm-track-comment {
display: block;
font-size: max(1rem, 0.85em);
opacity: 0.7;
} .vefm-track-lyrics {
flex: 1 1 100%;
text-align: center;
}
.vefm-lyrics-toggle {
display: inline-block;
margin: 4px 0;
padding: 0;
background: none;
border: none;
color: inherit;
text-decoration: underline;
opacity: 0.75;
font-size: max(0.95rem, 0.8em);
cursor: pointer;
}
.vefm-lyrics-toggle:hover,
.vefm-lyrics-toggle:focus-visible {
opacity: 1;
}
.vefm-lyrics-panel {
display: flex;
justify-content: center;
white-space: normal;
font-size: max(1rem, 0.85em);
text-align: left;
line-height: 1.6;
opacity: 0.85;
margin: 4px 0 8px;
padding: 8px 12px;
border-left: 3px solid currentColor;
border-radius: 2px;
background: rgba(128, 128, 128, 0.08);
} .vefm-lyrics-panel[hidden] {
display: none;
}
.vefm-track-progress {
cursor: pointer;
padding: 5px 0; border-radius: 4px;
} .vefm-track-progress:focus-visible {
outline: 2px solid var( --vefm-accent-color, #2271b1 );
outline-offset: 3px;
}
.vefm-track-progress-track {
position: relative;
height: 4px;
border-radius: 2px;
background: rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.vefm-track-progress-fill {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 0%;
border-radius: 2px;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
transition: width 0.1s linear;
}
.vefm-track.is-playing .vefm-track-progress-fill {
background: currentColor;
} .vefm-track-volume {
flex: 0 0 auto;
display: none;
align-items: center;
gap: 8px;
background: rgba(0, 0, 0, 0.06);
padding: 6px 12px;
border-radius: 999px;
opacity: 0;
transform: translateY(2px);
animation: vefm-fade-in 0.18s ease forwards;
}
@keyframes vefm-fade-in {
to {
opacity: 1;
transform: translateY(0);
}
}
.vefm-track.is-playing .vefm-track-volume {
display: flex;
}
.vefm-volume-toggle {
background: none;
border: none;
cursor: pointer;
color: inherit;
opacity: 0.7;
display: flex;
align-items: center;
padding: 0;
flex: 0 0 auto;
}
.vefm-volume-toggle:hover {
opacity: 1;
}
.vefm-volume-toggle .vefm-icon {
width: 2em;
height: 2em;
fill: currentColor;
}
.vefm-volume-slider {
-webkit-appearance: none;
appearance: none;
width: 72px;
height: 4px;
border-radius: 2px;
background: rgba(0, 0, 0, 0.15);
outline: none;
cursor: pointer;
margin: 0;
} .vefm-volume-slider:focus-visible {
outline: 2px solid var( --vefm-accent-color, #2271b1 );
outline-offset: 2px;
}
.vefm-volume-slider::-webkit-slider-runnable-track {
height: 4px;
border-radius: 2px;
background: rgba(0, 0, 0, 0.15);
}
.vefm-volume-slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 12px;
height: 12px;
margin-top: -4px;
border-radius: 50%;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
border: 2px solid var( --wp--preset--color--background, #fff );
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);
cursor: pointer;
transition: transform 0.12s ease;
}
.vefm-volume-slider::-webkit-slider-thumb:hover {
transform: scale(1.25);
}
.vefm-volume-slider::-moz-range-track {
height: 4px;
border-radius: 2px;
background: rgba(0, 0, 0, 0.15);
}
.vefm-volume-slider::-moz-range-thumb {
width: 10px;
height: 10px;
border-radius: 50%;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
border: 2px solid var( --wp--preset--color--background, #fff );
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);
cursor: pointer;
transition: transform 0.12s ease;
}
.vefm-volume-slider::-moz-range-thumb:hover {
transform: scale(1.25);
} .vefm-track-shop {
flex: 0 0 auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
.vefm-track-price {
opacity: 0.8;
font-variant-numeric: tabular-nums;
white-space: nowrap;
} .vefm-add-to-cart,
.vefm-buy-album {
flex: 0 0 auto;
display: inline-flex;
margin: 0 auto;
border: none;
font-size: 1rem;
color: var( --wp--preset--color--background, #fff );
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
cursor: pointer;
gap: 6px;
transition: opacity 0.15s ease;
}
.vefm-add-to-cart:not( .vefm-buy-album, .vefmpro-ticket-zone .vefm-add-to-cart, .vefmpro-merch-item-add .vefm-add-to-cart ) {
flex-direction: column;
align-items: center;
justify-content: center;
width: 50px;
height: 50px;
padding: 5px;
border-radius: 999px;
gap: initial;
}
.vefm-buy-album {
align-items: flex-start;
justify-content: flex-start;
border-radius: 4px;
padding: 8px 16px;
}
.vefm-add-to-cart:hover,
.vefm-buy-album:hover {
opacity: 0.85;
}
.vefm-add-to-cart:disabled {
opacity: 0.6;
cursor: wait;
}
.vefm-add-to-cart .vefm-icon-cart {
width: 18px;
height: 18px;
fill: none;
}
.vefm-album-header {
display: flex;
gap: 20px;
margin-bottom: 24px;
align-items: flex-start;
} .vefm-album-info {
flex: 1 1 auto;
min-width: 0;
} .vefm-album-title {
color: var( --vefm-album-title-color, inherit );
font-size: var( --vefm-album-title-size, unset );
}
.vefm-album-description {
color: var( --vefm-album-description-color, inherit );
} .vefm-album-header--compact {
gap: 14px;
margin-bottom: 12px;
align-items: center;
}
.vefm-album-cover {
display: flex;
flex-direction: column;
align-items: center;
}
.vefm-album-header--compact .vefm-album-cover img {
max-width: 56px;
border-radius: 6px;
}
.vefm-album-header--compact .vefm-album-title {
font-size: 1.1em;
margin: 0;
}
.vefm-album-header--compact .vefm-album-price {
margin: 4px 0 0;
font-size: max(1rem, 0.9em);
}
.vefm-album-header + .vefm-album-tracklist-details {
margin-bottom: 32px;
}
.vefm-tracklist-other-heading {
margin: 24px 0 12px;
font-size: 1em;
opacity: 0.6;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.vefm-album-cover img {
max-width: clamp(160px, 20vw, 300px);
height: auto;
border-radius: 8px;
} .vefm-album-tracklist-details {
margin-top: 4px;
}
.vefm-album-tracklist-summary {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
list-style: none;
padding: 10px 16px;
border-radius: 8px;
background: rgba(0, 0, 0, 0.05);
font-weight: 600;
font-size: max(1rem, 0.9em);
user-select: none;
}
.vefm-album-tracklist-summary::-webkit-details-marker {
display: none; }
.vefm-album-tracklist-summary:hover {
background: rgba(0, 0, 0, 0.08);
}
.vefm-album-tracklist-chevron {
width: 16px;
height: 16px;
transition: transform 0.15s ease;
}
.vefm-album-tracklist-details[open] .vefm-album-tracklist-chevron {
transform: rotate(180deg);
}
.vefm-album-tracklist-details .vefm-album-tracklist {
margin-top: 10px;
}
.vefm-album-discount-hint {
display: block;
font-size: max(1rem, 0.8em);
opacity: 0.65;
font-weight: 400;
} @media (max-width: 480px) {
.vefm-track {
flex-direction: column;
align-items: center;
}
.vefm-track-buttons {
flex-flow: row wrap;
justify-content: center;
}
.vefm-track-shop {
margin: auto;
}
.vefm-track-title-row {
justify-content: center;
}
.vefm-track-body {
flex-basis: 100%;
max-width: 100%;
order: 3;
}
.vefm-album-header {
flex-wrap: wrap;
justify-content: center;
}
.vefm-track-album-badge {
display: inline-flex;
margin-left: 0;
padding: .5em;
letter-spacing: initial;
overflow-wrap: anywhere;
}
.vefm-album-header .vefm-album-info {
flex-basis: 100%;
}
}    .vefm-concert {
display: flex;
align-items: stretch;
gap: 16px;
padding: 14px 18px;
margin-bottom: var( --vefm-concert-gap, 10px ); border-radius: var( --vefm-content-radius, var( --vefm-concert-radius, 0 ) );
background: var( --vefm-concert-bg, var( --vefm-track-bg, rgba(0, 0, 0, 0.14) ) );
color: var( --vefm-concert-text, inherit );
border: var( --vefm-concert-border-width, 0 ) solid var( --vefm-concert-border-color, rgba(0, 0, 0, 0.12) );
transition: box-shadow 0.15s ease;
overflow: hidden;
} .vefm-concert:last-child {
margin-bottom: 0;
}
.vefm-concert:hover {
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
} .vefm-concert--has-poster {
display: grid;
grid-template-columns: 160px minmax(0, 1fr);
padding: 0;
}
.vefm-concert-poster-wrap {
height: 100%;
overflow: hidden;
}
.vefm-concert-poster {
display: flex;
width: 100%;
height: 100%;
object-fit: cover;
}
.vefm-concert--has-poster .vefm-concert-body,
.vefm-concert--has-poster .vefm-concert-ticket { padding: clamp(8px, 2vw, 24px);
}
@media (max-width: 480px) {
.vefm-concert--has-poster {
grid-template-columns: 100px minmax(0, 1fr);
}
} .vefm-concert-body {
flex: 1 1 auto;
min-width: 0;
display: flex; flex-flow: row wrap;
align-items: center; justify-content: flex-end;
gap: 16px 28px;
padding: 4px 0;
}
.vefm-concert-main {
flex: 1 1 320px;
min-width: 0;
display: flex;
flex-direction: column;
gap: 8px;
} .vefm-concert-header {
display: flex;
align-items: center;
gap: 14px;
}
.vefm-concert-heading {
min-width: 0;
flex: 1 1 auto;
display: flex;
flex-direction: column;
gap: 2px;
}
.vefm-concert-date-badge {
flex: 0 0 auto; width: 84px;
height: auto;
margin: 0 auto;
border-radius: 8px;
background: var( --vefm-concert-badge, #606060 ); color: var( --vefm-concert-badge-text, var( --wp--preset--color--background, #fff ) );
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
line-height: 1.2;
gap: 1px;
}
.vefm-concert-date-day {
font-size: 1.4em;
font-weight: 700;
}
.vefm-concert-date-month {
font-size: 1.2em;
text-transform: uppercase;
letter-spacing: 0.04em;
opacity: 0.95;
}
.vefm-concert-date-year {
font-size: 1.2em;
opacity: 0.75;
font-variant-numeric: tabular-nums;
} @media ( min-width: 641px ) {
.vefm-concert-date-badge { width: 100px;
height: auto;
}
.vefm-concert-date-day {
font-size: 1.6em;
}
.vefm-concert-date-month,
.vefm-concert-date-year {
font-size: 1.3em;
}
}
.vefm-concert-eyebrow {
display: block;
font-size: max(1rem, 0.78em);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
opacity: 0.65;
color: var( --vefm-concert-eyebrow-color, inherit );
}
.vefm-concert-title {
margin: 0;
font-size: var( --vefm-concert-title-size, max( 1rem, 1.15em ) ); color: var( --vefm-concert-title-color, inherit );
font-weight: 700;
line-height: 1.25;
} .vefm-concert-countdown {
margin: 2px 0 0;
font-size: max( 1rem, 0.9em );
font-weight: 600;
color: var( --vefm-concert-countdown-color, var( --vefm-concert-text, inherit ) );
} .vefm-concert--past {
opacity: 0.7;
} .vefm-concerts-empty-social {
margin-top: 8px;
opacity: 0.85;
}
.vefm-concerts-empty-social a {
font-weight: 600;
}
.vefm-concert-venue {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 4px 8px;
margin: 0;
font-size: var( --vefm-concert-venue-size, max( 1rem, 1.05em ) );
color: var( --vefm-concert-venue-color, inherit );
opacity: 0.85;
} .vefm-concert-price {
display: flex;
align-items: center; gap: 4px 8px;
margin: 4px 0 0;
font-size: max( 0.95rem, 0.9em );
font-weight: 600;
opacity: 0.85;
}
.vefm-concert-price .vefm-icon-payment {
opacity: 0.85;
}
.vefm-icon-pin {
width: 17px;
height: 17px;
flex: 0 0 auto;
opacity: 0.9;
fill: none;
stroke: var( --vefm-concert-pin, #e2483d );
}
.vefm-icon-clock,
.vefm-icon-payment {
width: 17px;
height: 17px;
flex: 0 0 auto;
opacity: 0.75;
vertical-align: -2px;
fill: none;
stroke: var( --vefm-concert-pin, #e2483d );
} .vefm-concert-time {
display: inline-flex;
align-items: center;
gap: 4px;
font-variant-numeric: tabular-nums;
opacity: 0.75;
}
.vefm-concert-description {
margin: 0;
font-size: max(1rem, 0.9em);
opacity: 0.8;
line-height: 1.4;
}
.vefm-concert-description p {
margin: 0 0 6px;
} .vefm-concert-description-toggle {
display: inline-block;
margin: 4px 0 0;
padding: 0;
border: 0;
background: none;
color: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
font: inherit;
font-weight: 600;
font-size: max(0.95rem, 0.85em);
text-decoration: underline;
cursor: pointer;
}
.vefm-concert-description-toggle:hover,
.vefm-concert-description-toggle:focus-visible {
opacity: 0.8;
}
.vefm-concert-actions {
flex: 0 0 auto;
display: flex; flex-flow: row wrap;
align-items: flex-end;
justify-content: flex-end;
gap: 8px;
}
.vefm-concert-ticket-link {
flex: 0 0 auto;
padding: 10px 24px;
border-radius: 20px;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --wp--preset--color--background, #fff );
text-decoration: none;
font-size: max(1rem, 0.9em);
font-weight: 600;
white-space: wrap;
transition: opacity 0.15s ease;
}
.vefm-concert-ticket-link:hover {
opacity: 0.85;
color: var( --wp--preset--color--background, #fff );
}
@media (max-width: 640px) {
.vefm-concert-body {
flex-direction: column;
align-items: flex-start;
} .vefm-concert-main {
flex: 0 1 auto;
}
.vefm-concert-actions {
align-items: flex-start; align-self: center;
}
}
@media (max-width: 480px) {
.vefm-concert-header {
flex-wrap: wrap;
}
} .vefm-concert-ticket {
flex: 1 1 auto;
min-width: 0;
display: flex;
align-items: stretch;
gap: 28px;
padding: 4px 0;
}
.vefm-concert-ticket-zone1 {
flex: 0 0 auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
text-align: center;
}
.vefm-concert-ticket-time {
font-size: max(1rem, 0.85em);
font-variant-numeric: tabular-nums;
opacity: 0.75;
}
.vefm-concert-ticket-venue-short {
font-size: max(1rem, 0.85em);
opacity: 0.75;
max-width: 90px;
} .vefm-concert-ticket-divider {
flex: 0 0 auto;
width: 1px;
align-self: stretch;
margin: -16px 0;
background-image: radial-gradient( circle, rgba(255, 255, 255, 0.9) 4.5px, transparent 5px );
background-size: 100% 18px;
background-repeat: repeat-y;
background-position: center top;
}
.vefm-concert-ticket-zone2 {
flex: 1 1 260px;
min-width: 0;
display: flex;
flex-direction: column;
gap: 4px;
justify-content: center;
max-width: 360px;
}
.vefm-concert-ticket-zone2 .vefm-concert-venue {
margin-top: 4px;
}
.vefm-concert-ticket-address {
margin: 0 0 0 22px; font-size: max(1rem, 0.9em);
opacity: 0.7;
}
.vefm-concert-ticket-zone3 {
flex: 1 1 320px;
min-width: 0;
display: flex;
flex-direction: column;
justify-content: center;
gap: 14px;
}
.vefm-concert-ticket-actions { flex-direction: column;
align-items: flex-end;
justify-content: flex-end;
gap: 8px;
}
@media (max-width: 780px) { .vefm-concert--has-poster {
display: block;
padding: clamp(8px, 2vw, 24px);
}
.vefm-concert--has-poster .vefm-concert-poster-wrap {
width: 100%;
height: auto;
margin-bottom: 16px; display: flex;
align-items: inherit;
justify-content: center;
background: rgba(0, 0, 0, 0.2);
}
.vefm-concert--has-poster .vefm-concert-poster {
width: auto;
height: auto;
max-width: 100%;
object-fit: contain;
}
.vefm-concert-ticket {
flex-direction: column;
align-items: stretch;
gap: 18px;
}
.vefm-concert-ticket-zone1 { justify-content: flex-start;
align-items: center;
text-align: left;
gap: 14px;
padding-bottom: 18px;
}
.vefm-concert-ticket-venue-short {
max-width: none;
} .vefm-concert-ticket-divider {
width: auto;
height: 1px;
align-self: stretch;
margin: 0 -20px;
background-image: radial-gradient( circle, rgba(255, 255, 255, 0.9) 4.5px, transparent 5px );
background-size: 18px 100%;
background-repeat: repeat-x;
background-position: left center;
} .vefm-concert-ticket-zone2,
.vefm-concert-ticket-zone3 {
max-width: none;
justify-content: flex-start; flex: 0 1 auto;
}
.vefm-concert-actions,
.vefm-concert-ticket-actions {
flex-wrap: wrap;
justify-content: center;
} .vefm-concert-ticket-actions {
align-items: center;
}
}        .vefm-playlist-toolbar {
margin: 0 0 14px;
border-radius: 3em;
background: rgba(0, 0, 0, 0.04);
}
.vefm-playlist-toolbar-inner {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 14px;
padding: 10px 14px;
}
.vefm-playlist-playpause {
flex: 0 0 auto;
width: 36px;
height: 36px;
border-radius: 50%;
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --wp--preset--color--background, #fff );
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.vefm-playlist-playpause .vefm-icon {
width: 18px;
height: 18px;
fill: currentColor;
}
.vefm-playlist-volume {
display: flex;
align-items: center;
gap: 8px;
}
.vefm-playlist-shuffle {
display: flex;
align-items: center;
gap: 6px;
margin-left: auto;
background: none;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 999px;
padding: 6px 12px;
cursor: pointer;
color: inherit;
opacity: 0.75;
font-size: 0.85em;
}
.vefm-playlist-shuffle .vefm-icon {
width: 15px;
height: 15px;
}
.vefm-playlist-shuffle:hover {
opacity: 1;
}
.vefm-playlist-shuffle.is-active {
opacity: 1;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --wp--preset--color--background, #fff );
border-color: transparent;
}input[id^="vefm-"]::placeholder,
input[class*="vefm-"]::placeholder,
textarea[id^="vefm-"]::placeholder,
textarea[class*="vefm-"]::placeholder {
white-space: wrap;
} .et_pb_module.vefmpro_divi_donate,
.et_pb_module.vefmpro_divi_billetterie,
.et_pb_module.vefmpro_divi_account,
.et_pb_module.vefmpro_divi_printful_list,
.et_pb_module.vefmpro_divi_cart,
.et_pb_module.vefmpro_divi_preorder,
.et_pb_module.vefmpro_divi_merch_list {
overflow: hidden;
}
.vefm-cart,
.vefm-donate {
font-family: var( --vefm-font-family, inherit );
color: inherit;
}   .vefmpro_divi_cart {
width: 100%;
}
.vefm-cart {
width: 100%;
max-width: var( --vefm-cart-max-width, 480px );
padding: 24px; border-radius: var( --vefm-block-radius, var( --vefm-cart-radius, 14px ) );
background: var( --vefm-cart-bg, var( --vefm-track-bg, rgba(0, 0, 0, 0.14) ) );
color: var( --vefm-cart-text, inherit );
border: 1px solid rgba(0, 0, 0, 0.12);
}
.vefm-cart h3 {
margin: 0 0 16px;
display: flex;
align-items: center;
gap: 8px;
}
.vefm-cart h3::before {
content: '🛒';
font-size: 0.9em;
}
.vefm-cart-lines {
list-style: none;
margin: 0 0 14px;
padding: 0;
}
.vefm-cart-line {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 10px;
padding: 10px 0;
border-bottom: 1px solid rgba(0, 0, 0, 0.08); border-radius: var( --vefm-content-radius, 0 );
}
.vefm-cart-line:last-child {
border-bottom: none;
}
.vefm-cart-line-main {
flex: 1 1 auto;
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.vefm-cart-line-title {
flex: 1 1 auto;
}
.vefm-cart-line-note {
font-size: 0.78em;
opacity: 0.6;
font-style: italic;
}
.vefm-cart-line-price {
opacity: 0.75;
font-variant-numeric: tabular-nums;
}
.vefm-cart-remove {
background: rgba(0, 0, 0, 0.06);
border: none;
border-radius: 50%;
width: 22px;
height: 22px;
cursor: pointer;
font-size: 1em;
line-height: 1;
color: inherit;
opacity: 0.6;
flex: 0 0 auto;
transition: opacity 0.15s ease, background 0.15s ease;
}
.vefm-cart-remove:hover {
opacity: 1;
background: rgba(0, 0, 0, 0.12);
}
.vefm-cart-empty {
opacity: 0.65;
font-style: italic;
padding: 16px 0;
text-align: center;
}
.vefm-cart-discount {
text-align: right;
opacity: 0.7;
font-size: 0.9em;
margin: 0 0 4px;
}
.vefm-cart-total {
display: flex;
justify-content: space-between;
font-size: 1.15em;
border-top: 2px solid rgba(0, 0, 0, 0.15);
padding-top: 12px;
margin: 0;
}
.vefm-cart-promo-applied {
display: flex;
justify-content: space-between;
align-items: center;
text-align: right;
opacity: 0.85;
font-size: 0.9em;
margin: 0 0 4px;
color: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
}
.vefm-cart-promo-applied .vefm-cart-promo-remove {
border: none;
background: none;
text-decoration: underline;
cursor: pointer;
font-size: 0.85em;
opacity: 0.7;
padding: 0;
color: inherit;
}
.vefm-cart-promo-form {
display: flex;
justify-content: center;
gap: 6px;
margin-top: 10px;
flex-wrap: wrap;
}
.vefm-cart-promo-input {
flex: 1;
min-width: 120px;
padding: 6px 10px;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.vefm-cart-promo-apply {
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: #fff;
border-radius: 4px;
padding: 6px 14px;
cursor: pointer;
}
.vefm-cart-promo-error {
flex-basis: 100%;
color: #d63638;
font-size: 0.85em;
}
.vefm-cart-checkout {
margin-top: 20px;
padding-top: 20px;
border-top: 1px dashed rgba(0, 0, 0, 0.15);
}
.vefm-cart-consent {
display: flex;
align-items: flex-start;
gap: 10px;
margin: 0 0 18px;
font-size: 0.85em;
line-height: 1.5;
opacity: 0.85;
}
.vefm-cart-consent input {
margin-top: 3px;
flex: 0 0 auto;
}
#vefm-paypal-buttons {
margin-bottom: 10px;
}
.vefm-stripe-checkout {
display: block;
width: 100%;
padding: 12px;
border: none;
border-radius: 8px;
background: var( --vefm-accent, var( --wp--preset--color--primary, #635bff ) );
color: var( --vefm-button-text-color, var( --wp--preset--color--background, #fff ) );
font-family: var( --vefm-font-family, inherit );
cursor: pointer;
font-size: 1em;
font-weight: 600;
transition: opacity 0.15s ease;
}
.vefm-stripe-checkout:hover {
opacity: 0.9;
}
.vefm-cart-confirmation {
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
text-align: center;
padding: 32px 16px;
color: #1e7e34;
}
.vefm-cart-confirmation-icon {
width: 48px;
height: 48px;
color: #1e7e34;
}
.vefm-cart-confirmation-text {
margin: 0;
font-size: 1.15em;
font-weight: 600;
line-height: 1.4;
}
.vefm-cart-error {
color: #dc3232;
font-size: 0.9em;
} .vefm-cart-sandbox {
margin-top: 14px;
padding: 12px;
border: 1px dashed #d4a72c;
border-radius: 8px;
background: rgba(212, 167, 44, 0.08);
}
.vefm-cart-sandbox-label {
margin: 0 0 8px;
font-size: 0.78em;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.03em;
color: #a3791f;
}
.vefm-sandbox-email {
display: flex;
width: 100%;
box-sizing: border-box;
padding: 8px 10px;
margin-bottom: 8px;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 6px;
font-size: 0.9em;
}
.vefm-sandbox-checkout {
display: flex;
justify-content: center;
width: 100%;
padding: 10px;
border: 1px dashed #a3791f;
border-radius: 8px;
background: transparent;
color: #a3791f;
font-family: var( --vefm-font-family, inherit );
cursor: pointer;
font-size: 0.9em;
font-weight: 600;
transition: background 0.15s ease;
}
.vefm-sandbox-checkout:hover {
background: rgba(212, 167, 44, 0.12);
}
.vefm-sandbox-checkout:disabled {
opacity: 0.6;
cursor: wait;
}    .vefmpro_divi_donate {
width: 100%;
}
.vefm-donate {
width: 100%;
max-width: var( --vefm-donate-max-width, 400px );
padding: 24px; border-radius: var( --vefm-block-radius, var( --vefm-cart-radius, 14px ) );
background: var( --vefm-cart-bg, var( --vefm-track-bg, rgba(0, 0, 0, 0.14) ) );
color: var( --vefm-cart-text, inherit );
border: 1px solid rgba(0, 0, 0, 0.12);
text-align: center;
}
.vefm-donate-intro {
margin: 0 0 16px;
opacity: 0.85;
}
.vefm-donate-amounts {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 8px;
margin-bottom: 12px;
}
.vefm-donate-amount {
padding: 8px 18px;
border: 1px solid rgba(0, 0, 0, 0.15); border-radius: var( --vefm-content-radius, 20px );
background: transparent;
color: inherit;
cursor: pointer;
font-size: 0.95em;
transition: background 0.15s ease, border-color 0.15s ease;
}
.vefm-donate-amount:hover {
background: rgba(0, 0, 0, 0.05);
}
.vefm-donate-amount.is-selected {
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --wp--preset--color--background, #fff );
border-color: transparent;
}
.vefm-donate-custom {
margin-bottom: 16px;
}
.vefm-donate-custom-amount {
width: 100%;
box-sizing: border-box;
padding: 8px 12px;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 8px;
text-align: center;
font-size: 0.95em;
}
.vefm-donate-submit {
display: block;
width: 100%;
padding: 12px;
border: none;
border-radius: 8px;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, var( --wp--preset--color--background, #fff ) );
font-family: var( --vefm-font-family, inherit );
cursor: pointer;
font-size: 1em;
font-weight: 600;
transition: opacity 0.15s ease;
}
.vefm-donate-submit:hover:not(:disabled) {
opacity: 0.9;
}
.vefm-donate-submit:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.vefm-donate-error {
color: #dc3232;
font-size: 0.9em;
margin: 10px 0 0;
}  .vefm-cart-line-qty-controls {
display: inline-flex;
align-items: center;
gap: 4px;
margin-left: 8px;
vertical-align: middle;
}
.vefm-cart-qty-increase,
.vefm-cart-qty-decrease {
width: 22px;
height: 22px;
line-height: 20px;
padding: 0;
border: 1px solid rgba(0, 0, 0, 0.2);
background: #fff;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
}
.vefm-cart-line-qty {
opacity: 0.85;
font-size: 0.9em;
min-width: 16px;
text-align: center;
display: inline-block;
}
.vefm-cart-physical-returns-notice {
font-size: 0.85em;
opacity: 0.75;
margin: 10px 0;
}
.vefm-cart-shipping {
text-align: right;
opacity: 0.8;
font-size: 0.9em;
margin: 0 0 4px;
}
.vefm-cart-shipping-form {
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 6px;
padding: 12px;
margin-bottom: 14px;
display: flex;
flex-direction: column;
gap: 8px;
}
.vefm-cart-shipping-form legend {
font-weight: 600;
padding: 0 4px;
}
.vefm-cart-shipping-form input,
.vefm-cart-shipping-form select {
padding: 6px 10px;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.vefm-cart-shipping-blocked {
color: #d63638;
font-size: 0.9em;
margin: 0;
} .vefmpro_divi_merch_list {
width: 100%;
}  .vefmpro-merch-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 24px;
font-family: var( --vefm-font-family, inherit ); border-radius: var( --vefm-block-radius, 0 );
} .vefmpro-merch-list--fixed-columns {
--vefmpro-merch-max-columns: 6;
grid-template-columns: repeat( min( var( --vefmpro-merch-columns, 3 ), var( --vefmpro-merch-max-columns ) ), minmax( 0, 1fr ) );
}
@media ( max-width: 780px ) {
.vefmpro-merch-list--fixed-columns {
--vefmpro-merch-max-columns: 2;
}
}
@media ( max-width: 480px ) {
.vefmpro-merch-list--fixed-columns {
--vefmpro-merch-max-columns: 1;
}
}
.vefmpro-merch-item {
border: 1px solid rgba(0, 0, 0, 0.1); border-radius: var( --vefm-content-radius, 8px );
padding: 16px;
display: flex;
flex-direction: column;
}
.vefmpro-merch-item-image img {
width: 100%;
height: auto;
border-radius: 4px;
margin-bottom: 10px;
}
.vefmpro-merch-item-title {
margin: 0 0 6px;
font-size: 1.1em; color: var( --vefm-merch-title-color, inherit );
}
.vefmpro-merch-item-desc {
font-size: 0.9em;
opacity: 0.8;
flex-grow: 1;
}
.vefmpro-merch-item-price {
font-weight: 600;
font-size: 1.1em;
margin: 10px 0;
}
.vefmpro-merch-item-add {
display: flex;
gap: 8px;
}
.vefmpro-merch-qty {
width: 60px;
padding: 6px;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.2); text-align: center;
}
.vefmpro-merch-item-add .vefm-add-to-cart {
flex: 1;
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, #fff );
font-family: var( --vefm-font-family, inherit );
border-radius: 4px;
cursor: pointer;
padding: 6px 12px;
}
.vefmpro-merch-item-outofstock {
opacity: 0.6;
font-style: italic;
} .vefmpro_divi_printful_list {
width: 100%;
}  .vefmpro-printful-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 24px;
font-family: var( --vefm-font-family, inherit ); border-radius: var( --vefm-block-radius, 0 );
}
.vefmpro-printful-item {
border: 1px solid rgba(0, 0, 0, 0.1); border-radius: var( --vefm-content-radius, var( --vefm-printful-radius, 8px ) );
padding: 16px;
display: flex;
flex-direction: column;
background: var( --vefm-printful-bg, transparent );
color: var( --vefm-printful-text, inherit );
}
.vefmpro-printful-item-image img {
width: 100%;
height: auto;
border-radius: 4px;
margin-bottom: 10px;
}
.vefmpro-printful-item-title {
margin: 0 0 6px;
font-size: 1.1em; color: var( --vefm-printful-title-color, inherit );
}
.vefmpro-printful-item-desc {
font-size: 0.9em;
opacity: 0.8;
flex-grow: 1;
}
.vefmpro-printful-item-variant-label {
font-size: 0.85em;
opacity: 0.7;
margin: 4px 0;
}
.vefmpro-printful-variant-select {
width: 100%;
padding: 6px;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.2);
margin: 6px 0;
}
.vefmpro-printful-item-price {
font-weight: 600;
font-size: 1.1em;
margin: 10px 0;
}
.vefmpro-printful-item-add {
display: flex;
gap: 8px;
}
.vefmpro-printful-qty {
width: 60px;
padding: 6px;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.vefmpro-printful-item-add .vefm-add-to-cart {
flex: 1;
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, #fff );
font-family: var( --vefm-font-family, inherit );
border-radius: 4px;
cursor: pointer;
padding: 6px 12px;
} .vefmpro_divi_billetterie {
width: 100%;
} .vefmpro-billetterie {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 24px;
font-family: var( --vefm-font-family, inherit ); border-radius: var( --vefm-block-radius, 0 );
}
.vefmpro-ticket-item {
border: 1px solid rgba(0, 0, 0, 0.1); border-radius: var( --vefm-content-radius, 8px );
padding: 16px;
display: flex;
flex-direction: column;
}
.vefmpro-ticket-item-title {
margin: 0 0 6px;
font-size: 1.1em; color: var( --vefm-ticket-title-color, inherit );
}
.vefmpro-ticket-item-date,
.vefmpro-ticket-item-venue {
font-size: 0.9em;
opacity: 0.8;
margin: 2px 0;
}
.vefmpro-venue-map {
display: block;
max-width: 100%;
height: auto;
border-radius: 6px;
margin: 10px 0;
}
.vefmpro-ticket-item-remaining {
font-size: 0.85em;
opacity: 0.7;
margin: 0 0 10px;
} .vefmpro-ticket-zones {
display: flex;
flex-direction: column;
gap: 14px;
margin-top: 10px;
}
.vefmpro-ticket-zone {
border-top: 1px solid rgba(0, 0, 0, 0.1);
padding-top: 12px;
}
.vefmpro-ticket-zone-header {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 8px;
margin-bottom: 4px;
}
.vefmpro-ticket-zone-name {
font-weight: 600;
}
.vefmpro-ticket-zone-price {
font-weight: 600;
opacity: 0.85;
white-space: nowrap;
}
.vefmpro-seat-picker {
display: flex;
flex-wrap: wrap;
gap: 6px 14px;
margin: 8px 0 12px;
max-height: 160px;
overflow-y: auto;
}
.vefmpro-seat-option {
display: flex;
align-items: center;
gap: 6px;
font-size: 0.9em;
cursor: pointer;
}
.vefmpro-seat-checkbox {
cursor: pointer;
}
.vefmpro-ticket-zone .vefm-add-to-cart {
display: flex;
width: 100%;
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, #fff );
font-family: var( --vefm-font-family, inherit );
border-radius: 4px;
cursor: pointer;
padding: 6px 12px;
}
.vefmpro-ticket-reveal { display: block;
margin-top: 10px;
border: 1px solid currentColor;
background: transparent;
color: inherit;
border-radius: 4px;
cursor: pointer;
padding: 8px 18px;
font-weight: 600;
opacity: 0.85;
}
.vefmpro-ticket-reveal:hover {
opacity: 1;
}
.vefmpro-ticket-details {
margin-top: 14px;
}
.vefmpro-ticket-item-add {
display: flex;
gap: 8px;
margin-top: auto;
}
.vefmpro-ticket-qty {
width: 60px;
padding: 6px;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.vefmpro-ticket-item-add .vefm-add-to-cart {
flex: 1;
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, #fff );
font-family: var( --vefm-font-family, inherit );
border-radius: 4px;
cursor: pointer;
padding: 6px 12px;
}
.vefmpro-ticket-item-soldout {
opacity: 0.6;
font-style: italic;
} .vefmpro_divi_preorder {
width: 100%;
}  .vefm-preorder {
max-width: var( --vefm-preorder-max-width, 480px );
padding: 24px; border-radius: var( --vefm-block-radius, var( --vefm-preorder-radius, 14px ) );
background: var( --vefm-preorder-bg, var( --vefm-track-bg, rgba(0, 0, 0, 0.14) ) );
color: var( --vefm-preorder-text, inherit );
border: 1px solid rgba(0, 0, 0, 0.12);
font-family: var( --vefm-font-family, inherit );
}
.vefm-preorder-title {
margin: 0 0 4px; color: var( --vefm-preorder-title-color, inherit );
}
.vefm-preorder-price {
margin: 0 0 16px;
font-size: 1.2em;
font-weight: 600;
}
.vefm-preorder-progress {
height: 10px;
border-radius: 999px;
background: rgba(0, 0, 0, 0.12);
overflow: hidden;
margin-bottom: 8px;
}
.vefm-preorder-progress-bar {
height: 100%;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
border-radius: 999px;
transition: width 0.3s ease;
}
.vefm-preorder-stats {
margin: 0 0 2px;
font-weight: 600;
}
.vefm-preorder-meta {
margin: 0 0 16px;
opacity: 0.75;
font-size: 0.9em;
}
.vefm-preorder-closed {
padding: 12px;
border-radius: 8px;
background: rgba(0, 0, 0, 0.06);
}
.vefm-preorder-consent {
display: flex;
gap: 8px;
align-items: flex-start;
margin: 16px 0;
font-size: 0.9em;
}
.vefm-preorder-shipping-form {
display: flex;
flex-direction: column;
gap: 8px;
margin: 16px 0;
border: none;
padding: 0;
}
.vefm-preorder-shipping-form legend {
font-weight: 600;
margin-bottom: 4px;
padding: 0;
}
.vefm-preorder-shipping-form input,
.vefm-preorder-shipping-form select {
padding: 8px;
border-radius: 6px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.vefm-preorder-physical-returns-notice {
font-size: 0.85em;
opacity: 0.75;
margin: 8px 0 16px;
}
.vefm-preorder-stripe-checkout,
.vefm-preorder-sandbox-checkout {
display: flex;
justify-content: center;
width: 100%;
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, #fff );
font-family: var( --vefm-font-family, inherit );
border-radius: 4px;
cursor: pointer;
padding: 12px;
font-weight: 600;
margin-top: 8px;
}
.vefm-preorder-sandbox {
display: flex;
flex-flow: row wrap;
margin-top: 16px;
padding-top: 16px;
border-top: 1px dashed rgba(0, 0, 0, 0.2);
}
.vefm-preorder-sandbox-label {
font-size: 0.8em;
opacity: 0.7;
margin-bottom: 6px;
}
.vefm-preorder-sandbox-email {
width: 100%;
padding: 8px;
border-radius: 6px;
border: 1px solid rgba(0, 0, 0, 0.2);
margin-bottom: 8px;
}
.vefm-preorder-error {
color: #b32d2e;
}   .vefmpro_divi_account {
width: 100%;
}
.vefm-account {
width: 100%;
max-width: var( --vefm-account-max-width, 640px );
font-family: var( --vefm-font-family, inherit ); border-radius: var( --vefm-block-radius, 0 );
}
.vefm-account-intro {
margin: 0 0 16px;
opacity: 0.85;
}
.vefm-account-request-form {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
gap: 10px;
}
.vefm-account-request-form label {
flex-basis: 100%;
font-weight: 600;
font-size: 0.9em;
}
.vefm-account-request-form input[type="email"] {
flex: 1 1 240px;
padding: 10px;
border-radius: 6px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.vefm-account-request-form .vefm-button {
flex: 0 0 auto;
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, #fff );
font-family: var( --vefm-font-family, inherit );
border-radius: 6px;
cursor: pointer;
padding: 10px 18px;
font-weight: 600;
}
.vefm-account-notice {
padding: 10px 14px;
border-radius: 6px;
background: rgba(0, 0, 0, 0.06);
margin-bottom: 16px;
}
.vefm-account-signed-in {
margin: 0 0 16px;
font-size: 0.9em;
opacity: 0.8;
}
.vefm-account-orders {
width: 100%;
border-collapse: collapse;
}
.vefm-account-orders th,
.vefm-account-orders td {
text-align: left;
padding: 8px 10px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
font-size: 0.9em;
vertical-align: top;
}
.vefm-account-orders .vefm-button-small {
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, #fff );
font-family: var( --vefm-font-family, inherit );
border-radius: 4px;
cursor: pointer;
padding: 6px 10px;
font-size: 0.85em;
}
.vefm-preorder-gallery {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-bottom: 12px;
}
.vefm-preorder-gallery-image {
width: 120px;
height: 120px;
object-fit: cover;
border-radius: 8px;
}
.vefm-preorder-description {
margin-bottom: 12px;
opacity: 0.9;
}
.vefm-preorder-description p {
margin: 0 0 8px;
}
.vefm-preorder-products {
width: 100%;
border-collapse: collapse;
margin-bottom: 12px;
}
.vefm-preorder-products td {
padding: 8px 6px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
vertical-align: middle;
}
.vefm-preorder-product-price {
white-space: nowrap;
opacity: 0.85;
}
.vefm-preorder-qty-input {
width: 60px;
padding: 6px;
text-align: center;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.vefm-preorder-total {
font-weight: 700;
font-size: 1.1em;
margin: 0 0 16px;
text-align: right;
}
.vefm-preorder-info-notice {
font-size: 0.85em;
opacity: 0.75;
margin: 12px 0 16px;
}
.vefm-preorder-tiers {
list-style: none;
margin: 0 0 16px;
padding: 0;
display: flex;
flex-direction: column;
gap: 6px;
}
.vefm-preorder-tier {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 10px; border-radius: var( --vefm-content-radius, 6px );
background: rgba(0, 0, 0, 0.05);
font-size: 0.9em;
opacity: 0.7;
}
.vefm-preorder-tier--reached {
opacity: 1;
background: rgba(0, 0, 0, 0.08);
font-weight: 600;
}
.vefm-preorder-tier-icon {
width: 18px;
color: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
font-weight: 700;
}
.vefm-preorder-tier-label {
flex: 1;
}
.vefm-preorder-tier-amount {
opacity: 0.8;
font-size: 0.9em;
}
.vefm-preorder-product-tier-badge {
display: block;
font-size: 0.75em;
opacity: 0.65;
margin-top: 2px;
}
.vefm-preorder-tier-notice {
font-size: 0.8em;
opacity: 0.7;
margin: 0 0 12px;
}  .vefmpro-concert-buy {
display: inline-flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.vefmpro-concert-buy-price {
font-weight: 700;
opacity: 0.85;
}
.vefmpro-concert-buy-button {
border: none;
background: var( --vefm-accent, var( --wp--preset--color--primary, #1e1e1e ) );
color: var( --vefm-button-text-color, #fff );
font-family: var( --vefm-font-family, inherit );
border-radius: 4px;
cursor: pointer;
padding: 8px 16px;
font-weight: 600;
min-width: 130px;
}
.vefmpro-concert-buy-button.vefm-added-to-cart {
background: #2e7d32;
}
.vefmpro-concert-buy-remaining {
font-size: 0.8em;
opacity: 0.7;
}
.vefmpro-concert-soldout {
opacity: 0.6;
font-style: italic;
} .vefmpro-ticket-modal-overlay {
position: fixed;
inset: 0;
z-index: 100000;
background: rgba( 0, 0, 0, 0.6 );
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.vefmpro-ticket-modal-overlay[hidden] {
display: none;
}
.vefmpro-ticket-modal {
position: relative;
background: var( --wp--preset--color--background, #fff );
color: var( --wp--preset--color--foreground, #1e1e1e );
border-radius: 8px;
max-width: 560px;
width: 100%;
max-height: 90vh;
overflow-y: auto;
padding: 32px 24px 24px;
}
.vefmpro-ticket-modal-close {
position: absolute;
top: 10px;
right: 14px;
border: none;
background: transparent;
font-size: 1.6em;
line-height: 1;
cursor: pointer;
color: inherit;
opacity: 0.6;
}
.vefmpro-ticket-modal-close:hover {
opacity: 1;
}
.vefmpro-ticket-modal-loading,
.vefmpro-ticket-modal-error {
text-align: center;
opacity: 0.7;
padding: 24px 0;
} .vefmpro-ticket-modal .vefmpro-ticket-reveal {
display: none;
}
body.vefmpro-modal-open {
overflow: hidden;
}