
/* BASIC LAYOUT
----------------------------------------------- */
.wrapper {min-width: 320px; position: relative; padding-bottom: 70px; overflow: hidden;}
.wrapper__container {max-width: var(--max-width); margin: 0 auto; position: relative; z-index: 20; padding: 0 20px;}
.wrapper__main--cols {display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 0 40px;
	grid-template-areas: "header header" "content sidebar" "footer footer";}
.header {grid-area: header; background-color: var(--bg); box-shadow: var(--bsh); padding-top: 20px; padding-bottom: 20px;}
.content {min-height: 80vh; grid-area: content; padding: 40px 0 80px 0;}
.sidebar {grid-area: sidebar; padding: 40px 0;}
.footer {grid-area: footer; gap: 20px; padding-bottom: 20px;}
.header > *  {position: relative; z-index: 5;}
.header::after {content: ''; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); 
	width: 100%; height: 80px; background: url(../images/bars.png) center -120px / 1200px auto no-repeat; opacity: 0.1;}


/* HEADER
----------------------------------------------- */
.logo {display: inline-flex; flex-direction: column; justify-content: center; height: 40px;
	font-weight: 700; font-size: 34px; position: relative; padding-left: 50px;
	text-transform: uppercase; letter-spacing: 1px;}
.logo svg {width: 40px; height: 40px; position: absolute; left: 0; top: 50%; transform: translateY(-50%);}
.logo svg path {fill: var(--accent-secondary);}
.header__favlink, .header__btn-search {font-size: 24px; color: var(--tt-colored);}
.header__favlink span {position: absolute; right: 0; top: 0; font-size: 11px; width: 20px; height: 20px; border-radius: 50%; 
	display: grid; place-items: center; background-color: var(--accent-secondary); color: #fff; margin: -5px -5px 0 0;}
	
.search-block {position: relative; width: 100%; margin-top: 20px; display: none;}
.search-block__input, .search-block__input:focus {border-radius: 10px; padding: 0 50px 0 20px; 
	border: 0; box-shadow: none; background-color: var(--bg-darker); color: var(--tt);}
.search-block__input:not(:focus)::placeholder {color: var(--tt-fade); opacity: 1; font-size: 14px;}
.search-block__btn {position: absolute; right: 0; top: 0; width: 50px; 
	border-radius: 10px; font-size: 18px; color: var(--tt);}


/* SECTION
----------------------------------------------- */
.sect:not(:last-child) {margin-bottom: 80px;}
.sect--bg {background-color: var(--bg); border-radius: var(--bdrs); padding: 40px;}
.sect__header {margin-bottom: 40px; gap: 20px; line-height: 1;}
.sect__title {font-size: 24px; font-weight: 700; color: var(--tt-colored);}
.sect__title span {font-size: 14px; font-weight: 400; display: block; margin-top: 10px; color: var(--tt);}
.sect__link {display: flex; align-items: center; gap: 10px; background-color: var(--accent-secondary); 
	color: #fff; height: 30px; border-radius: calc(var(--bdrs)/2); padding: 0 10px; 
	text-transform: uppercase; font-size: 12px; letter-spacing: 1px;}
.sect__content--tracks {gap: 10px; grid-template-columns: repeat(auto-fill,minmax(400px,1fr));}
.sect__content--albums {grid-template-columns: repeat(5,minmax(100px,1fr)); gap: 20px;}
.speedbar {color: var(--tt-dark-fade); --tt: var(--tt-dark); margin-bottom: 20px;}
.speedbar::before {margin-right: 6px;}


/* TRACK ITEM
----------------------------------------------- */
.trc {gap: 20px; position: relative; padding: 15px 20px; padding-left: 80px;
	border-radius: var(--bdrs); background-color: var(--bg); overflow: hidden;}
.trc__count {position: absolute; left: 15px; top: 50%; transform: translateY(-50%); 
	font-size: 24px; font-weight: 700; color: var(--tt-fade); opacity: 0.4;}
.trc__play {padding: 0; width: 40px; height: 40px; font-size: 16px; border-radius: 50%; padding-left: 1px;
	color: #fff; background-color: var(--accent-primary); position: relative; isolation: isolate; margin-right: 20px;}
.trc__play::before, .trc__play::after {content: ''; width: 60px; height: 60px; border-radius: 50%; 
	background-color: inherit; opacity: 0.1; z-index: -1; pointer-events: none;
	position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);}
.trc__play::after {width: 80px; height: 80px; opacity: 0.066; z-index: -2;}
.trc__title {font-weight: 700; font-size: 15px;}
.trc__subtitle {font-size: 14px; margin-top: 5px;}
.trc__time {font-size: 14px; color: var(--tt-fade);}
.trc::before {color: var(--tt-fade); font-size: 24px; opacity: 0.6;}
.trc__desc::before {left: 130px;}
.sidebar .trc {padding-left: 30px;}
.sidebar .trc__desc::before {left: 90px;}
.sidebar .trc__play {margin-right: 10px;}
.trc__fav a {color: var(--accent-secondary); font-size: 18px;}

.js-trc--is-current .trc__play:not(:hover) {background-color: var(--accent-secondary); color: #fff;}
.js-trc--is-playing .trc__play .fas::before {content:"\f04c"; margin-left: -1px;}
.trc.js-trc--is-playing .trc__count {color: var(--accent-secondary); opacity: 1;}


/* ALBUM ITEM
----------------------------------------------- */
.alb {display: block; overflow: hidden; box-shadow: var(--bsh); border-radius: var(--bdrs); position: relative;}
.alb__img {padding-top: 100%;}
.alb__desc {padding: 10px 14px; position: absolute; left: 10px; right: 10px; bottom: 10px; z-index: 3;
	background-color: rgba(0,0,0,0.2); backdrop-filter: blur(10px); box-shadow: var(--bsh); 
	border-radius: var(--bdrs); color: #fff;}
.alb__title {font-weight: 700; font-size: 14px;}
.alb__subtitle {font-size: 13px; margin-top: 2px;}
.alb__img::after {content:"\f04b"; font-family:'Font Awesome 5 Pro'; font-weight: 900; display: grid;
	width: 40px; height: 40px; border-radius: 50%; padding-left: 3px; box-sizing: border-box; place-items: center;
	background-color: var(--accent-primary); color: #fff; position: absolute; left: 10px; top: 10px; font-size: 16px;}



/* SIDEBAR
----------------------------------------------- */
.sb-sticky {position: sticky; left: 0; top: 30px;}
.sb {display: grid; gap: 40px; margin-bottom: 40px;}
.side-menu {margin-bottom: 30px;}
.sb:last-child {margin-bottom: 0;}
.sb__title {margin-bottom: -8px !important;}
.side-menu__caption, .sb__title {font-weight: 700; font-size: 13px; text-transform: uppercase; margin-bottom: 18px;}
.side-menu__list a {height: 40px; line-height: 40px; display: block; padding-left: 30px; white-space: nowrap;}
.side-menu__list li {position: relative;}
.side-menu__list li::before {pointer-events: none; font-size: 18px; color: var(--accent-primary);
	position: absolute; left: 0; top: 0; height: 40px; width: 18px; display: grid; place-items: center;}


/* FOOTER, PAGINATION
----------------------------------------------- */
.footer__soc {gap: 10px;}
.footer__soc-item {display: grid; place-items: center; height: 34px; width: 34px; border-radius: 50%; background-color: #2daae1;}
.vk {background-color: #1877f2;}
.yt {background-color: #df1111;}
.footer__soc img {width: 16px; height: 16px; filter: invert(1);}
.footer__text {line-height: 1.6; text-wrap: balance;}
.footer__text a {text-decoration: underline; color: var(--accent-secondary);}

.pagination {gap: 20px 60px; padding-top: 40px;}
.pagination a, .pagination span {display: grid; place-items: center; 
	height: 36px; min-width: 36px; padding: 0 10px; border-radius: 18px; border: 1px solid var(--bdc);}
.pagination__pages {gap: 10px 10px; font-size: 14px;}
.pagination__pages span:not(.nav_ext) {background-color: var(--accent-secondary); color: #fff; border-color: var(--accent-secondary);}


/* INNER PAGE
----------------------------------------------- */
.page .sect:not(:last-child) {margin-bottom: 40px;}
.page h1 span {margin: 0; margin-bottom: 10px;}
.page__main {background-color: var(--bg); border-radius: var(--bdrs); padding: 20px;}
.page__main + .page__main {margin-top: 10px;}
.page__main.trc {padding-left: 40px;}
.page__main.trc {padding-top: 15px; padding-bottom: 15px;}

.page__img {width: 136px; height: 136px; margin-left: 20px; border-radius: var(--bdrs);}
.page__img > a, .page__poster > a {position: absolute; right: 5px; top: 5px; 
	background-color: #000; color: #fff; padding: 5px 10px; border-radius: 6px;}
.page__tech {display: grid; gap: 6px;}
.page__tech li {position: relative; padding-left: 140px; min-height: 14px;}
.page__tech li > span:first-child {color: var(--tt-fade); position: absolute; left: 0; top: 0;}
.page__dl {gap: 20px;}
.page__dl::before {width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; 
	background-color: var(--bg-darker); color: var(--tt-colored); font-size: 18px;}

.page__caption {line-height: 1.4; display: block; position: relative; padding: 15px 20px;
	isolation: isolate; color: var(--tt-colored); font-size: 13px; width: 100%; margin-top: 20px;}
.page__caption::after {content: ''; position: absolute; inset: 0; 
	background: var(--accent-primary); opacity: 0.1; border-radius: var(--bdrs);}
.page__text {margin-top: -10px;}


/* 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(--accent-secondary);}


/* ADAPTIVE, MOBILE MENU
----------------------------------------------- */

@media screen and (max-width: 1220px) {
	:root {--indent-negative: -20px; --indent: 20px;}
	.wrapper__container {max-width:1000px;}
	.wrapper__main--cols {gap: 20px;}
}

@media screen and (max-width: 950px) {
	.wrapper__container {max-width:768px;}
	.pagination {gap: 10px;}
	.pagination__btn-loader a, .pagination__btn-loader span {width: 100%;}
	.pagination > a, .pagination > span {flex-grow: 1; order: 10;}
	.pagination__pages {width: 100%;}
	.pagination__pages a, .pagination__pages span {flex-grow: 1;}
	.wrapper__main--cols {display: block;}
	.sidebar {margin-top: -60px;}
}

@media screen and (max-width: 760px) {
	.wrapper__container {max-width:640px;}
	.sect__content--albums {grid-template-columns: repeat(auto-fill,minmax(130px,1fr));}
	.sect__content--tracks {grid-template-columns: minmax(130px,1fr);}
	.sect__title {min-width: 100%;}
	.sect__header {margin-bottom: 20px;}
	.logo {font-size: 24px;}
	.footer__text {min-width: 100%; order: -1;}
	.content {padding-bottom: 40px;}
	.sect:not(:last-child) {margin-bottom: 40px;}
	
	.page .sect:not(:last-child) {margin-bottom: 20px;}
	.sidebar {margin-top: -60px;}
	.sect--bg {padding: 20px;}
}

@media screen and (max-width: 590px) {
	.wrapper__container {max-width:480px;}
	.page__img {display: none;}
	.page__tech li {text-align: right;}
	.page__dl .btn {width: 100%;}
	.page__main {border-radius: 0; margin-left: -20px; margin-right: -20px;}
	.page__main.trc {padding-left: 20px;}
}

@media screen and (max-width: 470px) {
	.wrapper__container123 {max-width:360px;}
	.alb:nth-child(5) {grid-column: 1 / -1;}
	.alb:nth-child(5) .alb__img {padding-top: 0; height: 140px;}
	.trc__play {margin-right: 10px;}
	.trc {gap: 10px; padding-left: 40px;}
	.trc__count {left: 10px; font-size: 14px;}
	.trc__time {font-size: 12px;}
	.trc__desc::before {left: 90px;}
	.trc::before {font-size: 16px;}
	.header::after {background-position: center -60px; background-size: 600px auto;}

	.full-text iframe {width: calc(100% + 40px); max-width: calc(100% + 40px); height: 260px; margin-left: -20px; margin-right: -20px;}
}


/* PLAYER 
----------------------------------------------- */
.player {position: fixed; z-index: 990; left: 0; bottom: 0; background-color: var(--bg); 
	box-shadow: var(--bsh); width: 100%; border-top: 1px solid var(--bdc);}
.player__main {gap: 10px 20px; padding: 15px 20px; position: static;}
.player__left, .player__right {gap: 20px;}
.player__img {width: 40px; height: 40px; margin-right: 20px;}
.player__title {font-weight: 700;}
.player__subtitle {font-size: 14px; color: var(--tt-fade);}
.player__btns {gap: 20px;}
.player__btn-repeat, .player__btn-prev, .player__btn-next, .player__btn-playlist, .player__dl {color: var(--tt-fade); 
	background: none; font-size: 14px; width: 30px; height: 30px; border-radius: 15px; padding: 0;}
.player__btn-play {border-radius: 50%; font-size: 10px; padding: 0; width: 40px; height: 40px; 
	position: relative; isolation: isolate;}
.player__btn-play::before, .player__btn-play::after {content: ''; width: 60px; height: 60px; border-radius: 50%; 
	background-color: inherit; opacity: 0.1; z-index: -1; pointer-events: none;
	position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);}
.player__btn-play::after {width: 80px; height: 80px; opacity: 0.066; z-index: -2;}
.player__volume {gap: 20px; font-size: 16px;}
.player__volume .player__range {width: 100px;}
.player__volume-value {font-size: 12px; width: 21px;}
.player__time {font-size: 12px; gap: 5px;}
.player__time-current:after {content: '/'; display: inline; margin-left: 5px;}
.player audio {display: none;}
.player__bar {position: absolute; left: 0; right: 0; bottom: 100%; margin-bottom: -8px;}
.player__bar::before {content: ''; background-color: #000; height: 1px; width: var(--loaded-progress,0%); 
	position: absolute; left: 0; bottom: 7px; opacity: 0.2; pointer-events: none; z-index: -1;}

.player__range input[type="range"] {-webkit-appearance: none; appearance: none; justify-content: center;
	background: none; height: 20px; padding: 0; width: 100%; cursor: pointer; display: flex; flex-direction: column;}
.player__range input[type="range"]::-webkit-slider-thumb {-webkit-appearance: none; appearance: none; cursor: pointer;
	width: 20px; height: 20px; margin-top: -8px; border-radius: 50%; box-sizing: border-box;
	background-color: var(--bg); border: 2px solid var(--accent-primary);}
.player__range input[type="range"]::-webkit-slider-runnable-track {width: 100%; height: 4px; cursor: pointer;
	background: linear-gradient(to right, var(--accent-primary) 0%, var(--accent-primary) var(--range-progress), 
	var(--bdc) var(--range-progress), var(--bdc) 100%); border-radius: 2px;}
.player__range input[type="range"]::-moz-range-thumb {-webkit-appearance: none; appearance: none; cursor: pointer;
	width: 20px; height: 20px; margin-top: -8px; border-radius: 50%; box-sizing: border-box;
	background-color: var(--bg); border: 2px solid var(--accent-secondary);}
.player__range input[type="range"]::-moz-range-track {width: 100%; height: 4px; cursor: pointer;
	background: linear-gradient(to right, var(--accent-secondary) 0%, var(--accent-secondary) var(--range-progress), 
	var(--bdc) var(--range-progress), var(--bdc) 100%); border-radius: 2px;}

.player__equalizer {width: 28px; gap: 2px; height: 80px; margin: -20px 0;}
.player__equalizer li {background: var(--accent-secondary); height: 10%; border-radius: 3px; flex-grow: 1;}
.player--is-playing .player__equalizer li {animation: equalizer .5s forwards ease-in-out infinite; animation-direction: alternate;}
.player__equalizer li:nth-child(1) {animation-duration: 2s;}
.player__equalizer li:nth-child(2) {animation-duration: 1.6s;}
.player__equalizer li:nth-child(3) {animation-duration: 1.9s;}
.player__equalizer li:nth-child(4) {animation-duration: 1.5s;}
.player__equalizer li:nth-child(5) {animation-duration: 1.7s;}
@keyframes equalizer {0% {height: 5%;} 12% {height: 10%;} 24% {height: 40%;} 36% {height: 15%;} 48% {height: 25%;} 
60% {height: 30%;} 72% {height: 20%;} 84% {height: 35%;} 100% {height: 5%;} }
	
.player--is-muted .player__volume::before {content:"\f6a9";}
.player--is-playing .player__btn-play .fas::before {content:"\f04c";}
.player--is-repeated .player__btn-repeat:not(:hover), .player--is-shuffled .player__btn-repeat:not(:hover) 
{color: var(--accent-primary);}
.player--is-repeated .player__btn-repeat::before {content:"\f363";}
.player--is-shuffled .player__btn-repeat::before {content:"\f074";}

.player__playlist {width: 100%; position: absolute; right: 0; bottom: 100%; display: none;
	box-shadow: var(--bsh); padding: 20px; background-color: var(--bg); z-index: -1;}
.player__playlist.is-active {display: block;}
.player__btn-playlist.is-active {background-color: var(--accent-primary); color: #fff;}
.player__playlist-title {max-width: 500px; margin: 0 auto; font-size: 18px; margin-bottom: 20px; font-weight: 700; cursor: pointer;}
.player__playlist-list {overflow-x: hidden; overflow-y: auto; max-width: 500px; margin: 0 auto;
	height: calc(100vh - 150px); height: calc(100dvh - 150px);}
.player__playlist-item {padding: 10px 20px; border-bottom: 1px solid var(--bdc); cursor: pointer; gap: 20px;}
.player__playlist-item-img {width: 40px; height: 40px;}
.player__playlist-item-title {font-weight: 700; font-size: 14px;}
.player__playlist-item-subtitle {font-size: 13px; color: var(--tt-fade); margin-top: 3px;}
.player__playlist-item-duration {font-size: 12px;}
.player__playlist-item-dl {font-size: 18px; display: block; margin-left: 10px;}
.player__playlist-item:last-child {margin-bottom: 0; border-bottom: 0;}
.player__playlist-item.is-playing {background-color: var(--bg-darker); cursor: default;}
.player__playlist-item.is-playing .player__playlist-item-desc {pointer-events: none;}
.player__playlist-item:hover {background-color: var(--bg-darker);}

.player--not-loaded button:not(.player__btn-play), .player--not-loaded .player__dl, 
.player--not-loaded .player__bar {pointer-events: none;}
	
@media screen and (max-width: 1220px) {
	.player__main {gap: 10px 10px; padding: 15px 20px;}
	.player__btns {gap: 10px;}
	.player__volume, .player__equalizer {display: none;}
}
@media screen and (max-width: 760px) {
	.player__info {position: absolute; left: 0; right: 0; bottom: 100%; box-shadow: 0 -5px 5px rgba(0,0,0,0.03);
		background-color: var(--bg); padding: 10px 60px 10px 20px; gap: 10px; margin-bottom: 4px;}
	.player__img {margin-right: 0;}
	.player__dl {position: absolute; right: 10px; bottom: 100%; margin-bottom: 20px;}
	.player__left > * {display: none;}
	.player__time-current {position: absolute; left: 20px; top: 50%; transform: translateY(-50%);}
	.player__time-duration {position: absolute; right: 20px; top: 50%; transform: translateY(-50%);}
	.player__time-current:after {display: none;}
	.player__left, .player__right {min-width: 0;}
}
