.spotify-embed-wrapper {
width: 100%;
text-align: center;
margin: 0 auto;
} .spotify-embed-placeholder {
background-color: #0F1218;
background-image: radial-gradient(120% 100% at 50% 0%, rgba(255,255,255,.06), transparent 55%);
border: 1px dashed rgba(255,255,255,.18);
border-radius: 20px;
padding: 44px 24px;
text-align: center;
margin: 20px 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
transition: border-color .18s ease;
}
.spotify-embed-placeholder:hover {
border-color: #1DB954;
}
.spotify-embed-placeholder .placeholder-icon {
width: 36px;
height: 36px;
fill: rgba(242,245,247,.4);
display: block;
margin: 0 auto 14px;
}
.spotify-embed-placeholder h3 {
margin: 0 0 6px;
color: #F2F5F7;
font-size: 16px;
font-weight: 700;
letter-spacing: -0.01em;
}
.spotify-embed-placeholder p {
margin: 0;
color: rgba(242,245,247,.6);
font-size: 13px;
font-style: normal;
line-height: 1.5;
} .spotify-embed-wrapper iframe {
border-radius: 16px;
box-shadow: 0 24px 48px -24px rgba(0,0,0,.5);
transition: box-shadow .18s ease, transform .18s ease;
}
.spotify-embed-wrapper iframe:hover {
box-shadow: 0 28px 56px -24px rgba(0,0,0,.6);
transform: translateY(-2px);
} .spotify-embed-error {
background: rgba(255,61,61,.12);
border: 1px solid rgba(255,61,61,.25);
color: #FF6B6B;
padding: 16px 20px;
border-radius: 12px;
text-align: center;
margin: 20px 0;
font-size: 13px;
}
.spotify-embed-error p {
margin: 0;
} @media (max-width: 480px) {
.spotify-embed-placeholder {
padding: 32px 16px;
}
.spotify-embed-placeholder h3 {
font-size: 15px;
}
.spotify-embed-placeholder p {
font-size: 12px;
}
} @media (prefers-contrast: high) {
.spotify-embed-placeholder {
border-width: 2px;
}
} @media (prefers-reduced-motion: reduce) {
.spotify-embed-placeholder,
.spotify-embed-wrapper iframe {
transition: none;
}
.spotify-embed-wrapper iframe:hover {
transform: none;
}
} .elementor-editor-active .spotify-embed-wrapper {
pointer-events: auto;
}
.elementor-widget-spotify-embed .elementor-widget-container {
overflow: visible;
}.spotify-now-playing {
--lsw-ink:          #0F1218;
--lsw-surface:      rgba(255,255,255,.045);
--lsw-surface-2:    rgba(255,255,255,.08);
--lsw-line:         rgba(255,255,255,.09);
--lsw-text:         #F2F5F7;
--lsw-text-sub:     rgba(242,245,247,.65);
--lsw-text-faint:   rgba(242,245,247,.4);
--lsw-accent:       #1DB954;
--lsw-accent-2:     #1ED760;
--lsw-on-accent:    #06130A;
--lsw-radius:       20px;
--lsw-radius-sm:    12px;
--lsw-radius-pill:  999px;
--lsw-transition:   .18s ease;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
padding: 20px;
border-radius: var(--lsw-radius);
background-color: var(--lsw-ink);
background-image: radial-gradient(120% 100% at 50% 0%, rgba(255,255,255,.06), transparent 55%);
border: 1px solid var(--lsw-line);
box-shadow: 0 24px 48px -24px rgba(0,0,0,.55);
color: var(--lsw-text);
} .spotify-now-playing .track-info {
display: flex;
align-items: center;
gap: 16px;
}
.spotify-now-playing .track-artwork {
flex-shrink: 0;
}
.spotify-now-playing .track-artwork img {
display: block;
width: 80px;
height: 80px;
border-radius: var(--lsw-radius-sm);
object-fit: cover;
box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--lsw-accent) 45%, transparent);
}
.spotify-now-playing .track-details {
flex: 1;
min-width: 0;
} .spotify-now-playing .track-name {
font-size: 15px;
font-weight: 700;
color: var(--lsw-text);
line-height: 1.3;
margin-bottom: 2px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.spotify-now-playing .track-artist {
font-size: 13px;
color: var(--lsw-text-sub);
line-height: 1.4;
margin-bottom: 1px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.spotify-now-playing .track-album {
font-size: 12px;
color: var(--lsw-text-faint);
line-height: 1.4;
margin-bottom: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} .spotify-now-playing .progress-bar {
height: 4px;
background: var(--lsw-surface-2);
border-radius: var(--lsw-radius-pill);
overflow: hidden;
margin-bottom: 10px;
cursor: default;
}
.spotify-now-playing .progress-bar .progress {
height: 100%;
background: var(--lsw-accent);
border-radius: var(--lsw-radius-pill);
transition: width .5s linear;
box-shadow: 0 0 12px color-mix(in srgb, var(--lsw-accent) 40%, transparent);
} .spotify-now-playing .listen-now {
display: inline-flex;
align-items: center;
gap: 5px;
background: var(--lsw-accent);
color: var(--lsw-on-accent);
text-decoration: none;
padding: 6px 15px;
border-radius: var(--lsw-radius-pill);
font-size: 12px;
font-weight: 700;
letter-spacing: .02em;
transition: background var(--lsw-transition), transform var(--lsw-transition);
}
.spotify-now-playing .listen-now:hover {
background: var(--lsw-accent-2);
color: var(--lsw-on-accent);
transform: scale(1.03);
}
.spotify-now-playing .listen-now svg {
width: 11px;
height: 11px;
fill: currentColor;
flex-shrink: 0;
} .spotify-now-playing .no-track-playing {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 24px 16px;
font-size: 13px;
color: var(--lsw-text-faint);
text-align: center;
}
.spotify-now-playing .no-track-playing::before {
content: '';
display: inline-block;
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--lsw-text-faint);
flex-shrink: 0;
}  .spotify-now-playing.layout-compact {
padding: 10px 14px;
border-radius: 14px;
}
.spotify-now-playing.layout-compact .track-info {
position: relative;
gap: 12px;
}
.spotify-now-playing.layout-compact .track-info:has(.listen-now) {
padding-right: 42px;
}
.spotify-now-playing.layout-compact .track-artwork img {
width: 44px;
height: 44px;
}
.spotify-now-playing.layout-compact .track-album {
display: none;
}
.spotify-now-playing.layout-compact .track-name {
font-size: 13px;
margin-bottom: 0;
}
.spotify-now-playing.layout-compact .track-artist {
font-size: 12px;
margin-bottom: 6px;
}
.spotify-now-playing.layout-compact .progress-bar {
height: 3px;
margin-bottom: 0;
} .spotify-now-playing.layout-compact .listen-now {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
gap: 0;
padding: 9px;
font-size: 0;
line-height: 0;
}
.spotify-now-playing.layout-compact .listen-now svg {
width: 14px;
height: 14px;
}
.spotify-now-playing.layout-compact .listen-now:hover {
transform: translateY(-50%) scale(1.05);
}
.spotify-now-playing.layout-compact .no-track-playing {
padding: 8px 4px;
font-size: 12px;
} .spotify-now-playing.layout-inline {
display: inline;
padding: 0;
border: none;
border-radius: 0;
background: none;
box-shadow: none;
font-family: inherit;
color: inherit;
}
.spotify-now-playing.layout-inline .track-info,
.spotify-now-playing.layout-inline .track-details {
display: inline;
}
.spotify-now-playing.layout-inline .track-artwork,
.spotify-now-playing.layout-inline .track-album,
.spotify-now-playing.layout-inline .progress-bar {
display: none;
}
.spotify-now-playing.layout-inline .track-info::before {
content: '♪';
color: var(--lsw-accent);
margin-right: .35em;
}
.spotify-now-playing.layout-inline .track-name,
.spotify-now-playing.layout-inline .track-artist {
display: inline;
margin: 0;
font-size: inherit;
line-height: inherit;
color: inherit;
white-space: normal;
}
.spotify-now-playing.layout-inline .track-name {
font-weight: 600;
}
.spotify-now-playing.layout-inline .track-artist::before {
content: ' — ';
} .spotify-now-playing.layout-inline .listen-now {
display: inline-flex;
align-items: center;
vertical-align: -.1em;
margin-left: .4em;
gap: 0;
padding: 0;
background: none;
font-size: 0;
line-height: 0;
color: var(--lsw-accent);
}
.spotify-now-playing.layout-inline .listen-now svg {
width: 15px;
height: 15px;
}
.spotify-now-playing.layout-inline .listen-now:hover {
background: none;
color: var(--lsw-accent-2);
transform: none;
}
.spotify-now-playing.layout-inline .no-track-playing {
display: inline;
padding: 0;
font-size: inherit;
color: inherit;
text-align: inherit;
}
.spotify-now-playing.layout-inline .no-track-playing::before {
display: none;
} @media (prefers-reduced-motion: reduce) {
.spotify-now-playing .progress-bar .progress,
.spotify-now-playing .listen-now {
transition: none;
}
}.spotify-artist-widget {
--lsw-ink:          #0F1218;
--lsw-surface:      rgba(255,255,255,.045);
--lsw-surface-2:    rgba(255,255,255,.08);
--lsw-line:         rgba(255,255,255,.09);
--lsw-text:         #F2F5F7;
--lsw-text-sub:     rgba(242,245,247,.65);
--lsw-text-faint:   rgba(242,245,247,.4);
--lsw-accent:       #1DB954;
--lsw-accent-2:     #1ED760;
--lsw-on-accent:    #06130A;
--lsw-radius:       20px;
--lsw-radius-sm:    12px;
--lsw-radius-pill:  999px;
--lsw-transition:   .18s ease;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
background-color: var(--lsw-ink);
background-image: radial-gradient(120% 100% at 50% 0%, rgba(255,255,255,.06), transparent 55%);
border: 1px solid var(--lsw-line);
border-radius: var(--lsw-radius);
box-shadow: 0 24px 48px -24px rgba(0,0,0,.55);
padding: 24px;
color: var(--lsw-text);
} .spotify-artist-widget.layout-horizontal {
display: flex;
align-items: flex-start;
gap: 24px;
}
.spotify-artist-widget.layout-vertical {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.spotify-artist-widget.layout-compact {
display: flex;
align-items: center;
gap: 16px;
}
.spotify-artist-widget.layout-compact .artist-image img {
width: 64px !important;
height: 64px !important;
} .spotify-artist-widget .artist-image {
flex-shrink: 0;
}
.spotify-artist-widget .artist-image img {
display: block;
object-fit: cover;
box-shadow: 0 16px 32px -14px rgba(0,0,0,.6);
} .spotify-artist-widget .artist-info {
flex: 1;
min-width: 0;
}
.spotify-artist-widget .artist-name {
margin: 0 0 12px;
font-size: 22px;
font-weight: 900;
letter-spacing: -0.02em;
line-height: 1.1;
color: var(--lsw-text);
}
.layout-compact .artist-name {
font-size: 17px;
margin-bottom: 6px;
} .spotify-artist-widget .follow-button {
display: inline-flex;
align-items: center;
gap: 7px;
padding: 9px 22px;
background: var(--lsw-accent);
color: var(--lsw-on-accent);
text-decoration: none;
border-radius: var(--lsw-radius-pill);
font-size: 13px;
font-weight: 700;
letter-spacing: .02em;
transition: background var(--lsw-transition), transform var(--lsw-transition);
box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--lsw-accent) 60%, transparent);
}
.spotify-artist-widget .follow-button:hover {
background: var(--lsw-accent-2);
color: var(--lsw-on-accent);
transform: scale(1.03);
}
.spotify-artist-widget .follow-button .spotify-icon {
width: 14px;
height: 14px;
fill: currentColor;
flex-shrink: 0;
} .spotify-artist-widget-error {
padding: 20px;
background: rgba(255,61,61,.08);
border: 1px solid rgba(255,61,61,.2);
color: #FF6B6B;
border-radius: 12px;
text-align: center;
font-size: 13px;
} .spotify-widget-premium-notice {
text-align: center;
padding: 28px 20px;
background-color: #0F1218;
background-image: radial-gradient(120% 100% at 50% 0%, rgba(255,255,255,.06), transparent 55%);
border-radius: 20px;
border: 1px solid rgba(255,255,255,.09);
color: #F2F5F7;
}
.spotify-widget-premium-notice h3 {
margin: 0 0 8px;
color: #1DB954;
font-size: 16px;
font-weight: 700;
}
.spotify-widget-premium-notice p {
margin: 0 0 16px;
color: rgba(242,245,247,.65);
font-size: 13px;
line-height: 1.5;
}
.spotify-widget-premium-notice .button-primary {
display: inline-flex;
align-items: center;
padding: 10px 22px;
background: #1DB954;
color: #06130A !important;
text-decoration: none;
border-radius: 999px;
font-size: 13px;
font-weight: 700;
border: none;
transition: background .18s ease;
}
.spotify-widget-premium-notice .button-primary:hover {
background: #1ED760;
} @media (max-width: 600px) {
.spotify-artist-widget.layout-horizontal {
flex-direction: column;
align-items: center;
text-align: center;
}
.spotify-artist-widget .artist-name {
font-size: 18px;
}
} @media (prefers-reduced-motion: reduce) {
.spotify-artist-widget .follow-button {
transition: none;
}
}.spotify-podcast-widget {
--lsw-ink:          #0F1218;
--lsw-surface:      rgba(255,255,255,.045);
--lsw-surface-2:    rgba(255,255,255,.08);
--lsw-line:         rgba(255,255,255,.09);
--lsw-text:         #F2F5F7;
--lsw-text-sub:     color-mix(in srgb, var(--lsw-text) 65%, transparent);
--lsw-text-faint:   color-mix(in srgb, var(--lsw-text) 40%, transparent);
--lsw-accent:       #1DB954;
--lsw-accent-2:     color-mix(in srgb, var(--lsw-accent) 85%, #FFFFFF);
--lsw-on-accent:    #06130A;
--lsw-radius:       20px;
--lsw-radius-sm:    12px;
--lsw-radius-pill:  999px;
--lsw-transition:   .18s ease;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
background-color: var(--lsw-ink);
background-image: radial-gradient(120% 100% at 50% 0%, rgba(255,255,255,.06), transparent 55%);
border: 1px solid var(--lsw-line);
border-radius: var(--lsw-radius);
box-shadow: 0 24px 48px -24px rgba(0,0,0,.55);
padding: 24px;
color: var(--lsw-text);
} .spotify-podcast-widget .podcast-header {
display: flex;
align-items: center;
gap: 16px;
margin-bottom: 18px;
}
.spotify-podcast-widget .podcast-cover {
display: block;
width: 72px;
height: 72px;
object-fit: cover;
border-radius: var(--lsw-radius-sm);
box-shadow: 0 16px 32px -14px rgba(0,0,0,.6);
flex-shrink: 0;
}
.spotify-podcast-widget .podcast-meta {
flex: 1;
min-width: 0;
}
.spotify-podcast-widget .podcast-label {
display: block;
font-size: 10px;
font-weight: 700;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--lsw-accent);
margin-bottom: 3px;
}
.spotify-podcast-widget .podcast-name {
margin: 0 0 3px;
font-size: 20px;
font-weight: 900;
letter-spacing: -0.02em;
line-height: 1.15;
color: var(--lsw-text);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.spotify-podcast-widget .podcast-publisher {
display: block;
font-size: 12px;
color: var(--lsw-text-sub);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.spotify-podcast-widget .follow-button {
display: inline-flex;
align-items: center;
gap: 7px;
padding: 9px 22px;
background: var(--lsw-accent);
color: var(--lsw-on-accent);
text-decoration: none;
border-radius: var(--lsw-radius-pill);
font-size: 13px;
font-weight: 700;
letter-spacing: .02em;
white-space: nowrap;
flex-shrink: 0;
transition: background var(--lsw-transition), transform var(--lsw-transition);
box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--lsw-accent) 60%, transparent);
}
.spotify-podcast-widget .follow-button:hover {
background: var(--lsw-accent-2);
color: var(--lsw-on-accent);
transform: scale(1.03);
}
.spotify-podcast-widget .follow-button .spotify-icon {
width: 14px;
height: 14px;
fill: currentColor;
flex-shrink: 0;
} .spotify-podcast-widget .episodes-list {
display: flex;
flex-direction: column;
gap: 2px;
}
.spotify-podcast-widget .episode-item {
display: flex;
align-items: center;
gap: 12px;
padding: 10px;
border-radius: var(--lsw-radius-sm);
text-decoration: none;
color: inherit;
transition: background var(--lsw-transition);
}
.spotify-podcast-widget .episode-item:hover {
background: var(--lsw-surface);
}
.spotify-podcast-widget .episode-artwork {
display: block;
width: 56px;
height: 56px;
object-fit: cover;
border-radius: 8px;
flex-shrink: 0;
}
.spotify-podcast-widget .episode-info {
flex: 1;
min-width: 0;
}
.spotify-podcast-widget .episode-name {
display: block;
font-size: 14px;
font-weight: 600;
color: var(--lsw-text);
line-height: 1.3;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.spotify-podcast-widget .episode-description {
margin: 3px 0 0;
font-size: 12px;
line-height: 1.45;
color: var(--lsw-text-sub);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.spotify-podcast-widget .episode-meta {
display: flex;
align-items: center;
gap: 6px;
margin-top: 4px;
font-size: 11px;
color: var(--lsw-text-faint);
letter-spacing: .02em;
font-variant-numeric: tabular-nums;
}
.spotify-podcast-widget .episode-play {
display: flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border-radius: var(--lsw-radius-pill);
background: var(--lsw-surface-2);
color: var(--lsw-text);
opacity: .7;
flex-shrink: 0;
transition: background var(--lsw-transition), color var(--lsw-transition), opacity var(--lsw-transition);
}
.spotify-podcast-widget .episode-play svg {
width: 14px;
height: 14px;
fill: currentColor;
margin-left: 2px; }
.spotify-podcast-widget .episode-item:hover .episode-play {
background: var(--lsw-accent);
color: var(--lsw-on-accent);
opacity: 1;
} .spotify-podcast-widget.layout-grid .episodes-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 14px;
}
.spotify-podcast-widget.layout-grid .episode-item {
flex-direction: column;
align-items: stretch;
gap: 10px;
padding: 12px;
background: var(--lsw-surface);
border: 1px solid var(--lsw-line);
}
.spotify-podcast-widget.layout-grid .episode-item:hover {
background: var(--lsw-surface-2);
}
.spotify-podcast-widget.layout-grid .episode-artwork {
width: 100%;
height: auto;
aspect-ratio: 1 / 1;
border-radius: var(--lsw-radius-sm);
}
.spotify-podcast-widget.layout-grid .episode-name {
white-space: normal;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.spotify-podcast-widget.layout-grid .episode-play {
align-self: flex-end;
margin-top: auto;
} .spotify-podcast-widget-error {
padding: 20px;
background: rgba(255,61,61,.08);
border: 1px solid rgba(255,61,61,.2);
color: #FF6B6B;
border-radius: 12px;
text-align: center;
font-size: 13px;
} .spotify-widget-premium-notice {
text-align: center;
padding: 28px 20px;
background-color: #0F1218;
background-image: radial-gradient(120% 100% at 50% 0%, rgba(255,255,255,.06), transparent 55%);
border-radius: 20px;
border: 1px solid rgba(255,255,255,.09);
color: #F2F5F7;
}
.spotify-widget-premium-notice h3 {
margin: 0 0 8px;
color: #1DB954;
font-size: 16px;
font-weight: 700;
}
.spotify-widget-premium-notice p {
margin: 0 0 16px;
color: rgba(242,245,247,.65);
font-size: 13px;
line-height: 1.5;
}
.spotify-widget-premium-notice .button-primary {
display: inline-flex;
align-items: center;
padding: 10px 22px;
background: #1DB954;
color: #06130A !important;
text-decoration: none;
border-radius: 999px;
font-size: 13px;
font-weight: 700;
border: none;
transition: background .18s ease;
}
.spotify-widget-premium-notice .button-primary:hover {
background: #1ED760;
} @media (max-width: 600px) {
.spotify-podcast-widget .podcast-header {
flex-wrap: wrap;
}
.spotify-podcast-widget.layout-grid .episodes-list {
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
.spotify-podcast-widget .episode-description {
-webkit-line-clamp: 1;
}
} @media (prefers-reduced-motion: reduce) {
.spotify-podcast-widget .follow-button,
.spotify-podcast-widget .episode-item,
.spotify-podcast-widget .episode-play {
transition: none;
}
}