
/* BASIC LAYOUT
----------------------------------------------- */
.wrapper {min-width: 320px; position: relative; overflow: hidden; overflow: clip; padding-top: 40px;}
.wrapper__container {max-width: var(--max-width); margin: 0 auto; position: relative; z-index: 20;}
.wrapper__container--main {padding: 0 var(--indent);}
.header {height: 56px; border-radius: 28px; margin: 0 auto; background-color: var(--bg-a); --tt: #fff; color: #fff; 
	gap: 0px; padding: 0 22px; width: max-content; max-width: 100%; position: relative; z-index: 100;}
.main {padding: 40px 0 50px 0; min-height: 80vh;}
.footer {background-color: var(--bg-a); --tt: #fff; color: #fff; border-radius: 24px 24px 0 0; 
	padding-top: 40px; padding-bottom: 75px; font-weight: 700; gap: 24px;}

.overlay {position: fixed; z-index: 998; left: 0; top: 0; width: 100%; height: 100%; 
	opacity: 0.8; background-color: #1d1924; cursor: pointer; display: none;}


/* HEADER
----------------------------------------------- */ 
.logo, .logo img {display: block; max-height: 100%;}
.logo {min-width: 127px; margin-right: 35px;}
.header__btn-menu, .header__fav {height: 52px; width: 88px; border-radius: 26px; position: relative;}
.header__btn-search {width: 163px; padding: 0; margin-left: 20px; border-radius: 20px;}
.header__fav span {position: absolute; right: 15px; top: 0; font-size: 12px;}
.header__btn-back {height: 56px; border-radius: 28px; background-color: var(--bg-a); width: 90px; 
	position: absolute; top: 0; right: 100%; margin-right: 10px;}
.header__btn-menu.is-active {background-color: var(--accent);}
.header__btn-menu.is-active::before {background-image: url(../images/ic/x.svg) !important;}
body.menu-is-opened {overflow: hidden;}

.header__search-form {position: absolute; inset: 0; z-index: 999; display: none;}
.header__search-form:before {content: ''; position: fixed; left: 0; top: 0; right: 0; bottom: 0; 
	background-color: rgba(0,0,0,0.3); backdrop-filter: blur(4px); pointer-events: none;}
.search-block__input, .search-block__input:focus {padding: 0 25px 0 56px;
	box-shadow: none; border-radius: 28px; height: 56px; line-height: 56px; position: relative; z-index: 5;}
.search-block__btn {position: absolute; left: 0; top: 0; height: 56px; width: 56px; z-index: 5; border-radius: 28px;}

.fresults {background-color: #fff; color: #000; --tt: #000; box-shadow: var(--bsh-long); 
	border-radius: 24px; padding: 24px; width: var(--searchWidth, 300px); font-weight: 700;
	position: absolute; left: 0; top: 120%; max-height: 80vh; overflow-y: auto;}
.fresults__title {font-size: 16px; font-weight: 700; color: #888888; margin-bottom: 15px;}
.fresults__result + .fresults__result {margin-top: 15px;}
.fresults__result + .fresults__title {margin-top: 24px;}
.fresults__result::before {content: ''; width: 32px; height: 32px; border-radius: 50%; background-color: #D9D9D9;}
.fresults__btn {width: 100%; height: 40px; border-radius: 20px; font-weight: 400; font-size: 14px; margin-top: 24px;}

.nav {position: fixed; inset: 0; z-index: 10; background-color: var(--bg); padding: 130px 0 40px; overflow-y: auto;}
.nav__inner {padding: 0 var(--indent); max-width: 660px; margin: 0 auto;}
.nav__menu > li > a, .nav__submenu a {display: flex; align-items: center; gap: 10px; font-size: 24px; font-weight: 700;}
.nav__menu > li > a::after {width: 20px !important;}
.nav__menu, .nav__submenu.is-active {display: grid; gap: 10px; position: relative; width: max-content;}
.nav__submenu.is-active {position: absolute; left: 100%; top: 0; margin-left: 80px;}
.nav a.faded {opacity: 0.5;}
.nav__caption {font-size: 30px; font-weight: 700; margin-bottom: 20px;}


/* SECTION
----------------------------------------------- */
.sect:not(:last-child) {margin-bottom: 50px;}
.sect__header {margin-bottom: 25px;}
.sect__title {font-size: 30px; font-weight: 700; line-height: 1.3; gap: 5px; display: flex; align-items: center;}

.descr {color: var(--tt-fade); display: grid; gap: 10px; font-size: 14px;}
.descr :is(h1,h2,h3) {font-size: 16px; font-weight: 700; line-height: 1.3;}
.descr a {text-decoration: underline; color: var(--accent);}
.descr ul li {position: relative; padding-left: 15px; margin-left: 25px;}
.descr ul li::before {content: ''; background-color: var(--accent); width: 4px; height: 4px; border-radius: 50%;
	position: absolute; left: 0; top: 9px;}


/* GRIDS, ICONS
----------------------------------------------- */
.grid-items {display: grid; gap: 12px 20px; grid-template-columns: repeat(auto-fill,minmax(min(60vw,460px),1fr));}
.grid-items > *:not(.grid-items__item), #dle-content > *:not(.grid-items__item) {grid-column: 1 / -1;}
.grid-items:has(.salmo) {gap: 20px; grid-template-columns: repeat(auto-fill,minmax(min(40vw,180px),1fr));}

.ic::before, .nav__menu > li > a:after {content: ''; aspect-ratio: 1 / 1; display: block; width: 16px;
	background-repeat: no-repeat; background-size: contain; background-position: center center;}
.ic-menu::before {background-image: url(../images/ic/menu-alt-1.svg); width: 32px;}
.ic-fav::before {background-image: url(../images/ic/heart.svg); width: 32px;}
.ic-search::before {background-image: url(../images/ic/search.svg); width: 24px;}
.ic-search2::before {background-image: url(../images/ic/search2.svg); width: 24px;}
.ic-arrow-left::before {background-image: url(../images/ic/arrow-narrow-left.svg); width: 32px;}
.ic-chevron-right::before, .nav__menu > li > a:after {background-image: url(../images/ic/chevron-right.svg); width: 30px; order: 10;}
.ic-play::before {background-image: url(../images/ic/play.svg); width: 20px;}
.ic-heart::before {background-image: url(../images/ic/heart.svg); width: 20px;}
.ic-x::before {background-image: url(../images/ic/x.svg); width: 32px;}


/* TRACK
----------------------------------------------- */
.kapi {padding: 10px 12px; gap: 10px; border-radius: 8px; background-color: var(--bg-darker);}
.kapi__btn-play {width: 48px; height: 48px; border-radius: 50%; background-color: var(--bg);}
.kapi__title {font-weight: 700;}
.kapi__subtitle {font-size: 14px; margin-top: 2px;}
.kapi__time {text-align: right; min-width: 43px;}
.kapi__fav {width: 24px; border-radius: 50%; cursor: pointer;}
.kapi__fav.added {background-color: var(--accent);}
.kapi__fav.added::before {width: 16px;}

.js-trc--is-current .kapi__btn-play:not(:hover), .js-trc--is-playing .kapi__btn-play, 
.js-trc--is-playing .page__play {box-shadow: inset 0 0 0 2px var(--accent); color: var(--accent);}
.js-trc--is-playing .kapi__btn-play::before, 
.js-trc--is-playing .bonko__play::before {content:"\f04c"; font-weight: 900; font-family:'Font Awesome 5 Pro'; 
	width: auto; background-image: none;}


/* ARTIST ITEM
----------------------------------------------- */
.salmo {border-radius: 8px; padding: 24px 30px; background-color: var(--bg-darker); position: relative;
	isolation: isolate; font-weight: 500; font-size: 20px; line-height: 1.2;}
.salmo::before {position: absolute; z-index: -1; left: 0; right: 0; bottom: 29px; height: 82px; 
	background: url(../images/ic/wave.svg) center center no-repeat; content: '';}
.salmo__img {border-radius: 10px;}


/* FOOTER, PAGINATION
----------------------------------------------- */
.footer__copyright {font-size: 30px;}
.footer__text {max-width: 580px;}
.footer__menu a {text-decoration: underline;}

.pagination {padding-top: 20px;}
.pagination__pages a, .pagination__pages span  
{display: grid; place-items: center; color: var(--tt-fade); font-size: 14px;
	height: 40px; min-width: 40px; padding: 0 10px; border-radius: 20px; background-color: var(--bg-a);}
.pagination__pages span:not(.nav_ext) {color: #fff; background: var(--accent);}


/* INNER PAGE
----------------------------------------------- */
.bonko__main {border-radius: 8px; padding: 32px 24px; background-color: var(--bg-darker);}
.bonko__img {width: 300px; border-radius: 10px;}
.bonko__tags a {border: 2px solid var(--bdc); display: flex; align-items: center; gap: 10px; color: var(--tt-fade);
	height: 36px; border-radius: 8px; padding: 0 10px; white-space: nowrap; font-size: 14px; font-weight: 500; text-transform: capitalize;}
.bonko__tags a::before {content: '#';}
.bonko__date {font-weight: 700; color: var(--tt-fade); font-size: 12px;}
.bonko__main h1 {font-size: 30px; font-weight: 700; line-height: 1.3; margin-top: -32px;}
.bonko__main h1 span {display: block; font-size: 24px; font-weight: 500; margin-bottom: 10px;}
.bonko__meta {font-weight: 700; color: var(--tt-fade); margin-top: -15px; line-height: 1;}
.bonko__meta li::before {content: ''; width: 5px; height: 5px; border-radius: 50%; background-color: var(--tt-fade);}
.bonko__btm {padding: 26px 24px; border-radius: 8px; overflow: hidden;
	position: relative; isolation: isolate; background-color: rgba(0,0,0,0.05);}
.bonko__btm::before {content: ''; height: 82px; width: 100%; position: absolute; left: 0; bottom: -40px; z-index: -1; 
	background: url(../images/ic/wave2.svg) left 0 repeat-x; opacity: 0.15;}
.bonko__btm-img {border-radius: 10px; width: 72px;}
.bonko__btm-title {font-size: 16px; font-weight: 500;}
.bonko__btm-subtitle {font-size: 24px; font-weight: 700; margin-top: 5px;}
.bonko__caption {font-size: 14px; color: var(--tt-fade); margin-top: -20px;}
.bonko__related .kapi {grid-column: 1 / -1;}

.bonko__play, .bonko__dl, .bonko__fav, .bonko__share {height: 48px; border-radius: 24px; cursor: pointer; 
	font-weight: 700; font-size: 16px; padding: 0 42px;}
.bonko__dl {background-color: var(--bg-invert); color: var(--tt-invert);}
.bonko__fav {padding: 0; width: 76px;}
.bonko__fav, .bonko__share {background-color: var(--bg); color: var(--tt);}
.bonko__fav.added {background-color: var(--accent);}

.bonko__clip-btn {width: 100%; position: relative; background: #000; cursor: pointer; 
	aspect-ratio: 3 / 1.6; border-radius: 10px;}
.bonko__clip-btn img {opacity: 0.6;}
.bonko__clip-btn::before {background-color: rgba(0,0,0,0.3); color: #fff; backdrop-filter: blur(10px); 
	position: relative; z-index: 10; width: 100px; border-radius: 50%; box-sizing: border-box; 
	font-size: 24px; padding-left: 5px; box-shadow: var(--bsh);}
.bonko__text {overflow-x: hidden; overflow-y: auto; position: relative; color: var(--tt-fade);}
.sliced::after {content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 50%; z-index: 1; 
	background: linear-gradient(to top, var(--bg) 0%, transparent 100%);}
.show-text {position: absolute; left: 50%; bottom: 3px; z-index: 2; translate: -50% 0;}

.clip {position: fixed; z-index: 999; left: 50%; top: 50%; translate: -50% -50%; 
	width: 800px; max-width: calc(100vw - 40px); box-shadow: var(--bsh-long);}
.clip__close {font-size: 24px; position: absolute; right: 0; bottom: 100%; color: #fff;}
.clip__close:hover {background-color: var(--red); color: #fff;}
.clip .d-none {display: block;}

.sf-artist__right {width: 390px;}
.sf-artist__img {border-radius: 10px;}
.sf-artist__desc {background-color: var(--bg-darker); padding: 20px; border-radius: 8px; margin-top: -10px; position: relative;}
.sf-artist__text {font-weight: 500;}
@media screen and (min-width: 760px) {
	.sf-artist__other {grid-template-columns: repeat(2,1fr);}
	.sf-artist__right .sect__title {font-size: 24px;}
}

/* TEXT BLOCK, TYPOGRAPHY, VIDEO BLOCK
----------------------------------------------- */
.page__title {margin-bottom: 30px; font-size: 24px;}
.full-text {line-height: 1.6; font-size: 14px; word-wrap: break-word;}
.full-text a {text-decoration: underline; color: var(--ui-accent);}
.full-text img:not(.emoji), .full-text p, .full-text h1, .full-text h2, .full-text h3, .full-text h4, .full-text h5, 
.full-text > ul, .full-text > ol, .full-text table {margin-bottom: 25px;}
.full-text > img[style*="left"], .full-text > .highslide img[style*="left"] {margin:0 10px 10px 0;}
.full-text > img[style*="right"], .full-text > .highslide img[style*="right"] {margin:0 0 10px 10px;}
.full-text > ul li, .full-text > ol li {padding-left: 60px; position: relative;}
.full-text > ul li:before {content: ''; width: 8px; height: 8px; border-radius: 50%; 
	border: 3px solid var(--accent); position: absolute; top: 6px; left: 34px;}
.full-text > ol {counter-reset: num;}
.full-text > ol li:before {content: counter(num); counter-increment: num; background-color: var(--accent); color: #fff; 
	position: absolute; top: -3px; left: 17px; width: 24px; height: 30px; font-size: 14px; font-weight: 500;
	display: flex; justify-content: flex-end; align-items: center; padding-right: 6px; box-sizing: border-box;}
.full-text > ol li:after {content: ''; border: 10px solid transparent; border-left-color: var(--accent); 
	position: absolute; left: 41px; top: -3px; transform: scale(0.66,1.5); transform-origin: 0 0;}
.full-text > ul li + li, .full-text > ol li + li {margin-top: 10px;}
.full-text table, .video-inside > * {width:100%;}
.full-text > *:last-child {margin-bottom: 0;}
.video-responsive {padding-top: 60%; position: relative; background-color: #000;}
.video-responsive > iframe, .video-responsive > video {position: absolute; left: 0; top: 0; width: 100%; height: 100%;}
.full-text h1, .full-text h2, .full-text h3, .full-text h4, .full-text h5 {font-size: 21px; margin-bottom: 20px;}



/* PLAYER
----------------------------------------------- */
.plr {position: fixed; left: 0; bottom: 0; width: 100%; z-index: 990; --bdc: rgba(0,0,0,0.1);
	background-color: var(--bg); box-shadow: var(--bsh-long); --pbar: rgba(0,0,0,0.2);}
.plr__inner {padding: 15px var(--indent);}
.plr__middle {width: 600px;}
.plr__left {position: relative; padding-left: 60px;}
.plr__img {width: 50px; border-radius: 10px; position: absolute; left: 0; top: 50%; translate: 0 -50%;}
.plr__title {font-weight: 700; font-size: 16px;}
.plr__subtitle {color: var(--tt-fade); font-size: 14px; margin-top: 1px;}
.plr__top {padding: 0 60px;}
.plr__next-info {max-width: 100%; font-weight: 700; font-size: 16px;}
.plr__next-info span {font-size: 10px; text-transform: uppercase; color: var(--tt-fade); margin-bottom: 3px;}
.plr__time {width: 40px; font-size: 12px;}
.plr__time-total {text-align: right;}
.plr__bar {height: 6px; border-radius: 3px; position: relative; background-color: var(--pbar);}
.plr__bar input {height: 100%; width: 100%; position: absolute; left: 0; top: 0; opacity: 0; cursor: pointer;}
.plr__bar::before {content: ''; position: absolute; left: 0; top: 0; height: 100%;
	width: var(--range-progress,0%); border-radius: inherit; background-color: var(--accent);}
.plr__bar-vol {height: 4px; border-radius: 2px;}
.plr__prev, .plr__next {border-radius: 50%; color: var(--accent); font-size: 14px; height: 30px;}
.plr__shuffle, .plr__repeat, .plr__mute, .plr__playlist {border-radius: 50%; color: var(--tt-fade); font-size: 14px; height: 30px;}
.plr__play {border-radius: 50%; border: 1px solid var(--accent); color: var(--accent); 
	padding-left: 3px; font-size: 10px; height: 30px;}
.plr__playlist span {font-size: 12px;}

.plr__playlist-list {position: absolute; left: 50%; bottom: 100%; translate: -50% 0; margin-bottom: 10px; width: 600px; 
	background-color: var(--bg); box-shadow: var(--bsh-long); border-radius: var(--bdrs); padding-bottom: 30px; display: none;}
.plr__playlist-list::before {content: ''; border: 10px solid transparent; border-top-color: var(--bg); 
	position: absolute; top: 100%; left: 50%; translate: -50% 0; z-index: 5;}
.plr__playlist-list-title {height: 80px; font-size: 18px; font-weight: 700; padding: 0 30px; cursor: pointer;}
.plr__playlist-list-content {overflow-x: hidden; overflow-y: auto; height: 400px;}
.plr__trc {border-top: 1px solid var(--bdc); padding: 15px 30px; cursor: pointer; gap: 15px;}
.plr__trc-img {width: 50px; border-radius: 10px; overflow: hidden;}
.plr__trc-img::before {position: absolute; inset: 0; z-index: 3; background-color: var(--accent); color: #fff; 
	display: grid; place-items: center; font-size: 12px; opacity: 0;}
.plr__trc-title {font-weight: 700;}
.plr__trc-subtitle {color: var(--tt-fade); margin-top: 3px;}
.plr__trc-time {color: var(--tt-fade);}
.plr__trc:hover, .plr__trc.is-active {background-color: var(--bg-darker);}
.plr__trc.is-active .plr__trc-img::before {opacity: 1;}
.plr__playlist-holder.is-active .plr__playlist-list {display: block;}
.plr__playlist-holder.is-active .plr__playlist {color: var(--accent);}

.plr--is-muted .plr__mute::before {content:"\f6a9";}
.plr--is-playing .plr__play::before {content:"\f04c";}
.plr--is-playing .plr__play {padding-left: 0;}
.plr--is-repeated .plr__btn-repeat:not(:hover), .plr--is-shuffled .plr__btn-repeat:not(:hover) 
{color: var(--accent);}
.plr--is-repeated .plr__repeat, .plr--is-shuffled .plr__shuffle {color: var(--accent);}
.plr--not-loaded button:not(.plr__play), .plr--not-loaded .plr__bar {pointer-events: none;}

body:has(.plr--loaded) .wrapper {padding-bottom: 80px;}
@media screen and (max-width: 1220px) {
	.plr__middle {width: 500px;}
	.plr__top {padding: 0;}
	.plr__playlist-holder {position: static;}
	.plr__playlist-list {width: 100vw; left: 0; translate: 0 0;
		height: calc(100vh - 88px); height: calc(100dvh - 88px); border-radius: 0; margin: 0;}
	.plr__playlist-list::before {display: none;}
	.plr__playlist-list-content {height: calc(100% - 110px);}
}
@media screen and (max-width: 950px) {
	.plr__middle {width: 100%;}
	.plr__left, .plr__right {display: none;}
}
@media screen and (max-width: 590px) {
	.plr__top {gap: 10px;}
	.plr__middle {display: block;}
	.plr__ctrl {gap: 10px;}
	.plr__vol {justify-content: flex-end;}
	.plr__bar-vol {display: none;}
	.plr__bottom {position: absolute; left: 0; right: 0; bottom: 100%;}
	.plr__time {position: absolute; left: var(--indent); height: 15px; font-weight: 400; font-size: 10px; z-index: 3;
		display: flex; align-items: center; width: auto; pointer-events: none;}
	.plr__time-total {left: auto; right: var(--indent);}
	.plr__bar-progress {height: 15px; border-radius: 0; background-color: var(--bg-darker);}
	.plr__playlist-list {height: calc(100vh - 60px); height: calc(100dvh - 60px);}
}

.toasts {position: fixed; right: 10px; top: 20px; z-index: 990; display: grid; gap: 20px;}
.toast {background-color: #fff; color: #000; border-radius: 6px; overflow: hidden;
	position: relative; width: 400px; display: flex; align-items: center; gap: 20px; 
	padding: 16px 20px; box-shadow: 0 5px 20px rgba(0,0,0,0.2); --accent: #00a2ff; 
	animation: showToast 0.5s ease forwards; max-width: calc(100vw - 40px);}
.toast__icon {font-size: 28px; color: var(--accent);}
.toast__title {font-weight: 700;}
.toast__text {font-size: 14px;}
.toast__close {font-size: 18px; margin: 0 -10px; display: grid; place-items: center; 
	cursor: pointer; opacity: 0.6; width: 40px; height: 40px;}
.toast::after {content: ''; width: 100%; height: 3px; background-color: var(--accent); 
	position: absolute; left: 0; bottom: 0; animation: progressToast var(--toast-timer) linear forwards}
.toast--success {--accent: #41b92f;}
.toast--warning {--accent: #f4bd00;}
.toast--error {--accent: #dd3954;}
.toast--is-hiding {animation: hideToast 0.5s ease forwards;}
@keyframes progressToast {
	100% {width: 0}
}
@keyframes showToast {
	0% {transform: translateX(calc(100% + 20px));}
	40% {transform: translateX(-5%);}
	80% {transform: translateX(0%);}
	100% {transform: translateX(-10px);}
}
@keyframes hideToast {
	0% {transform: translateX(-10px);}
	40% {transform: translateX(0%);}
	80% {transform: translateX(-5%);}
	100% {transform: translateX(calc(100% + 20px));}
}