/* Theme song (v5.65.0): footer player under the newsletter + floating play/pause button bottom left. One audio element. */
.wob-song { position: fixed; left: 16px; bottom: calc(80px + env(safe-area-inset-bottom)); z-index: 75; display: flex; align-items: center; gap: 10px; opacity: 1; transition: opacity .15s; }
/* Above the CookieAdmin re-consent icon (50 px at the bottom left) and above the sticky Book Now bar on phones; wob-song.js moves it higher if anything else still covers it. */
body:has(.wob-mbar) .wob-song { bottom: calc(92px + env(safe-area-inset-bottom)); }
@media (min-width: 1000px) { body:has(.wob-mbar) .wob-song { bottom: calc(80px + env(safe-area-inset-bottom)); } }
.wob-song.is-scrolling { opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .wob-song { transition: none; } }
.wob-song[hidden] { display: none; }
.wob-song audio { display: none; }
.wob-song__pill { display: inline-flex; align-items: center; gap: 6px; padding: 0 6px 0 0; background: #fff; border-radius: 999px !important; box-shadow: 0 2px 12px rgba(16, 24, 40, .22); }
.wob-app .wob-song__btn { flex: none; width: 48px; height: 48px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: #fff; color: #29AEE4; border: 0; border-radius: 50% !important; cursor: pointer; }
.wob-song__volwrap { position: relative; display: inline-flex; }
.wob-app .wob-song__vol { width: 36px; height: 36px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: #29AEE4; border: 0; border-radius: 50% !important; cursor: pointer; }
.wob-song__vol:hover { background: #E8F6FD; }
.wob-song__vol:focus-visible { outline: 2px solid #29AEE4; outline-offset: 2px; }
.wob-song__v--lo, .wob-song__v--off { display: none; }
.wob-song.is-vol-lo .wob-song__v--hi, .wob-song.is-vol-off .wob-song__v--hi { display: none; }
.wob-song.is-vol-lo .wob-song__v--lo, .wob-song.is-vol-off .wob-song__v--off { display: block; }
/* Volume slider above the speaker: desktop with a pointer only (touch devices and iOS get mute/unmute only). */
.wob-song__slider { display: none; position: absolute; left: 50%; bottom: 100%; width: 36px; height: 132px; margin-left: -18px; padding-bottom: 8px; }
.wob-song__slider::before { content: ""; position: absolute; left: 0; right: 0; top: 0; bottom: 8px; background: #fff; border-radius: 6px !important; box-shadow: 0 2px 12px rgba(16, 24, 40, .22); }
.wob-song__slider input { position: absolute; left: 50%; top: 50%; width: 100px; height: 20px; margin: -10px 0 0 -50px; padding: 0; transform: translateY(-4px) rotate(-90deg); accent-color: #29AEE4; cursor: pointer; }
@media (hover: hover) and (pointer: fine) {
	.wob-song:not(.is-ios) .wob-song__volwrap:hover .wob-song__slider, .wob-song:not(.is-ios) .wob-song__volwrap:focus-within .wob-song__slider { display: block; }
}
.wob-song__btn:focus-visible { outline: 2px solid #29AEE4; outline-offset: 3px; }
.wob-song__pause { display: none; }
.wob-song.is-playing .wob-song__btn:hover .wob-song__eq, .wob-song.is-playing .wob-song__btn:focus-visible .wob-song__eq { display: none; }
.wob-song.is-playing .wob-song__btn:hover .wob-song__pause, .wob-song.is-playing .wob-song__btn:focus-visible .wob-song__pause { display: block; }
.wob-song__lbl { background: #1B2733; color: #fff; font-size: .8rem; line-height: 1.2; padding: 8px 12px; border-radius: 6px !important; box-shadow: 0 2px 10px rgba(16, 24, 40, .18); white-space: nowrap; }
.wob-song__lbl[hidden] { display: none; }
.wob-song__eq { display: none; align-items: flex-end; gap: 3px; height: 18px; }
.wob-song__eq i { display: block; width: 3px; height: 100%; background: #29AEE4; border-radius: 2px; transform-origin: bottom; animation: wob-eq 1s ease-in-out infinite; }
.wob-song__eq i:nth-child(2) { animation-delay: -.3s; animation-duration: .8s; }
.wob-song__eq i:nth-child(3) { animation-delay: -.6s; animation-duration: 1.1s; }
.wob-song__eq i:nth-child(4) { animation-delay: -.15s; animation-duration: .9s; }
@keyframes wob-eq { 0%, 100% { transform: scaleY(.3); } 50% { transform: scaleY(1); } }
.wob-song.is-playing .wob-song__play { display: none; }
.wob-song.is-playing .wob-song__eq { display: inline-flex; }
@media (prefers-reduced-motion: reduce) { .wob-song__eq i { animation: none; } .wob-song__eq i:nth-child(1) { transform: scaleY(.5); } .wob-song__eq i:nth-child(2) { transform: scaleY(1); } .wob-song__eq i:nth-child(3) { transform: scaleY(.7); } .wob-song__eq i:nth-child(4) { transform: scaleY(.4); } }

/* Footer player: same layout as the old tablet player, in the footer's own colours. */
.wob-sp { margin-top: 16px; padding: 12px; background: #2A2F35; border: 1px solid #3A4048; border-radius: 9px !important; color: #fff; }
.wob-sp__row { display: flex; align-items: center; gap: 10px; }
.wob-sp__tile { flex: none; width: 38px; height: 38px; display: grid; place-items: center; background: #29AEE4; color: #fff; border-radius: 6px !important; }
.wob-sp__txt { flex: 1; min-width: 0; display: grid; gap: 1px; line-height: 1.25; }
.wob-sp__txt strong { font-size: .9rem; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wob-sp__txt small { font-size: .72rem; color: #8E96A0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wob-app .wob-sp__btn { flex: none; width: 42px; height: 42px; padding: 0; display: inline-grid; place-items: center; background: #29AEE4; color: #fff; border: 0; border-radius: 6px !important; cursor: pointer; }
.wob-sp__btn:hover { filter: brightness(1.08); }
.wob-sp__btn:focus-visible, .wob-sp__mute:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.wob-sp__i--pause { display: none; }
.wob-sp.is-on .wob-sp__i--pause { display: block; }
.wob-sp.is-on .wob-sp__i--play { display: none; }
.wob-sp__bar { display: flex; align-items: center; gap: 10px; margin-top: 10px; font-size: .72rem; color: #AEB4BC; }
.wob-sp__seek { flex: 1; min-width: 0; height: 14px; margin: 0; accent-color: #29AEE4; cursor: pointer; }
.wob-sp__time { flex: none; font-variant-numeric: tabular-nums; }
.wob-app .wob-sp__mute { flex: none; width: 30px; height: 30px; padding: 0; display: inline-grid; place-items: center; background: transparent; color: #AEB4BC; border: 0; border-radius: 6px !important; cursor: pointer; }
.wob-sp__mute:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.wob-sp__i--muted { display: none; }
.wob-sp.is-muted .wob-sp__i--muted { display: block; }
.wob-sp.is-muted .wob-sp__i--vol { display: none; }
@media print { .wob-song, .wob-sp { display: none !important; } }
