@font-face {
	font-family: 'Texgyre';
	src: url('../fonts/TeXGyreHeros-Regular.woff2') format('woff2');
	font-weight: normal;
}

@font-face {
	font-family: 'Texgyre';
	src: url('../fonts/TeXGyreHeros-Bold.woff2') format('woff2');
	font-weight: bold;
}

:root {
	--c_svg: #1D1D1F;
	--c_bg: #FAFAFA;
	--c_bg2: #1D1D1F;
	--c_bg2_8: #DEDEDE;
	--c_bg_col: #EAEAEA;
	--c_text: #1D1D1F;
	--c_text_hover: #F2F2F2;
	--c_current: #8C8C8C;
	--c_brd: #838383;
	--c_cell: #BDBDBD;
}

body.dark {
	--c_svg: #F2F2F2;
	--c_bg: #1E1E1E;
	--c_bg2: #FAFAFA;
	--c_bg2_8: #3A3A3A;
	--c_bg_col: #303030;
	--c_text: #F2F2F2;
	--c_text_hover: #1D1D1F;
	--c_current: #A5A5A5;
	--c_brd: #959595;
	--c_cell: #5C5C5C;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	background: var(--c_text);
	-webkit-overflow-scrolling: touch;
	overflow-scrolling: touch;
}

a {
	color: var(--c_text);
	text-decoration: none;
}

ol,
ul {
	list-style: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

img {
	border: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	padding: 0;
	font-size: inherit;
	line-height: inherit;
}

h1,
h3,
h4 {
	font-weight: bold;
}

h1 {
	line-height: 1;
}

h2 {
	font-size: 38px;
	font-weight: bold;
}

/* Specific heading that needs to be normal weight */
h2.sttop_descr {
	font-weight: normal;
}

input:focus,
select:focus,
textarea:focus,
button:focus {
	outline: none;
}

a.unline {
	text-decoration: underline;
}

p {
	margin-bottom: 8px;
}

body {
	display: none;
	font-size: 16px;
	line-height: 1.2;
	font-family: 'Texgyre', tahoma, sans-serif;
	font-weight: normal;
	height: 100%;
	background: var(--c_bg);
	color: var(--c_text);
	-webkit-overflow-scrolling: touch;
	overflow-scrolling: touch;
}

body.wlc {
	display: block !important;
}

body * {
	transition: color .5s, background .5s;
}

.mode svg path {
	fill: var(--c_svg);
}

.pdlr {
	padding-left: 80px;
	padding-right: 80px;
}

.fr .lang_fr,
.en .lang_en {
	color: #8C8C8C;
}

.txtc {
	text-align: center;
}

.txtr {
	text-align: right;
}

.txtb {
	font-weight: bold;
}

.txtup {
	text-transform: uppercase;
}

.pdtb100 {
	padding-top: 100px;
	padding-bottom: 100px;
}

.mrgb16 {
	margin-bottom: 16px;
}

.mrgb20 {
	margin-bottom: 20px;
}

.mrgb24 {
	margin-bottom: 24px;
}

.mrgb32 {
	margin-bottom: 32px;
}

.mrgb40 {
	margin-bottom: 40px;
}

.mrgb60 {
	margin-bottom: 60px;
}

.mrgb80 {
	margin-bottom: 80px;
}

.fs20 {
	font-size: 20px;
}

.fs26 {
	font-size: 26px;
}

.fs48 {
	font-size: 48px;
}

.fs38 {
	font-size: 38px;
}

.fs32 {
	font-size: 32px;
}

.withimg img {
	margin: 0 15px;
	vertical-align: top;
}

.fs48 img {
	height: 48px;
}

a {
	transition: opacity .4s;
}

.bt_def {
	padding: 12px;
	border: 1px solid var(--c_text);
	border-radius: 30px;
	font-weight: bold;
}

.bt_def img {
	margin-right: 16px;
	height: 28px;
}

/* Remove the global animation from all button images */
.bt_def img[src*="emoji_finger"] {
	animation: finger-swipe 1.4s linear infinite alternate;
}

.bt_smh {
	padding: 6px 12px 8px;
}

.bt_wfull {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: center;
}

.bt_def:hover {
	background: var(--c_text);
	padding: 10px 12px;
	color: var(--c_text_hover);
}

.bt_def:hover img {
	height: 32px;
}

.bt_def.bt_smh:hover {
	padding: 4px 12px 6px;
}

.bt_def.bt_light {
	border: 1px solid #fafafa;
	color: #fafafa;
}

.bt_def.bt_light:hover {
	border: 1px solid #1D1D1F;
}

.bt_cooctransp {
	font-size: 16px;
	line-height: 1;
	color: var(--c_text);
	padding: 12px 32px;
	display: inline-block;
	border: 1px solid var(--c_text);
	border-radius: 25px;
}

.bigtxt {
	display: flex;
	justify-content: space-between;
	margin-bottom: 25px;
	perspective: 1000px;
}

.bigtxt img {
	height: 250px;
	transition: transform 0.4s cubic-bezier(0.25, 0.1, 0.25, 1.4);
	will-change: transform;
	transform-origin: center center;
}

/* Make sure the general bigtxt hover rules don't apply to bottom_noname */
.bigtxt:not(.bottom_noname) img:hover {
	transform: scale(1.12) rotate(-5deg);
}

.bigtxt:not(.bottom_noname) img:nth-child(odd):hover {
	transform: scale(1.12) rotate(5deg);
}

.whw {
	display: none;
}

.dark .bigtxt img {
	display: none;
}

.dark .bigtxt img.whw {
	display: inline;
}

.bottom_noname {
	height: 190px;
	overflow: hidden;
	margin-bottom: 0 !important;
	padding-top: 20px;
	box-sizing: unset;
}

.bottom_noname img {
	transition: transform 0.25s ease;
	transform: translateY(0);
	will-change: transform;
}

/* Override any potential inherited transform effects for bottom_noname */
.bottom_noname img:hover {
	transform: translateY(-22px) rotate(0deg) !important;
}

.bottom_noname span {
	font-size: 350px;
	font-weight: bold;
	letter-spacing: 0.13em;
	line-height: 0.7;
	text-align: center;
	display: block;
}

.menu_block {
	background: var(--c_bg);
	position: fixed;
	top: 0;
	left: -100%;
	height: 100vh;
	width: 100%;
	overflow-y: auto;
	z-index: 9;
	transition: left 0.5s ease;
}

/* MENU COLOR REVERSAL - START */
/* Menu uses reversed colors in both themes */
body:not(.dark) .menu_block,
body.dark .menu_block {
	background: var(--c_bg2);
	color: var(--c_text_hover);
}

body:not(.dark) .menu_block a,
body.dark .menu_block a {
	color: var(--c_text_hover);
}

body:not(.dark) .menu_block .mode svg path,
body.dark .menu_block .mode svg path {
	fill: var(--c_text_hover);
}

body:not(.dark) .menu_block a.current {
	color: var(--c_current);
}

body:not(.dark) .menu_block .bt_def,
body.dark .menu_block .bt_def {
	border-color: var(--c_text_hover);
}

body:not(.dark) .menu_block .bt_def:hover,
body.dark .menu_block .bt_def:hover {
	background: var(--c_text_hover);
	color: var(--c_text);
}

/* MENU COLOR REVERSAL - END */

.menu_block.active {
	left: 0;
}

/* Prevent body scrolling when menu is active */
body.menu-open {
	overflow: hidden;
	position: fixed;
	width: 100%;
	height: 100%;
}

.menu_head {
	padding: 30px 80px 0;
	display: flex;
	justify-content: space-between;
}

.menu_head>div {
	width: 180px;
}

.menu_bts {
	display: flex;
	align-self: baseline;
	align-items: center;
	padding-top: 8px;
}

.menu_lang {
	margin-right: 36px;
}

.menu_top {
	position: absolute;
	left: 80px;
	top: 24vh;
	display: flex;
	flex-direction: column;
}

.menu_top a {
	font-size: 96px;
	font-weight: bold;
	line-height: 96px;
	overflow: hidden;
}

.menu_top a.current {
	color: var(--c_current);
}

.menu_top_bts {
	width: 260px;
	position: absolute;
	right: 80px;
	top: 24vh;
}

a.bt_mode img.lightimg {
	display: none !important;
}

a.bt_mode img.darkimg {
	display: inline !important;
}

.dark a.bt_mode img.lightimg {
	display: inline !important;
}

.dark a.bt_mode img.darkimg {
	display: none !important;
}

a.bt_mode span.light {
	display: inline !important;
}

a.bt_mode span.dark {
	display: none !important;
}

.dark a.bt_mode span.light {
	display: none !important;
}

.dark a.bt_mode span.dark {
	display: inline !important;
}

.menu_follow {
	position: absolute;
	right: 80px;
	bottom: 16vh;
}

.menu_follow p {
	font-size: 24px;
	font-weight: bold;
	margin-bottom: 20px;
	padding-left: 10px;
}

.menu_follow a {
	margin: 0 10px;
}

.menu_follow a img {
	display: none;
	width: 32px;
}

.menu_follow a:hover img {
	display: inline;
}

.menu_follow a:hover svg {
	display: none;
}

header {
	display: flex;
	justify-content: space-between;
	padding-top: 40px;
	z-index: 2;
	position: relative;
	margin-bottom: 40px;
}

.header_left,
.header_right {
	width: 170px;
	display: flex;
	padding-top: 10px;
	align-self: baseline;
	align-items: center;
}

.header_right {
	justify-content: right;
}

.bt_menu {
	margin-right: 40px;

}

.move_lr {
	margin-right: 16px;
}

.move_lr img {
	animation: runright 1.4s linear infinite alternate;
}

@keyframes runright {
	0% {
		margin-right: 0;
	}

	50% {
		margin-right: 8px;
	}

	100% {
		margin-right: 0;
	}
}

.agency .ntop {
	margin-top: 50px;
}

.hd_descr {
	font-size: 48px;
	margin-right: 95px;
	text-align: right;
	font-weight: bold;
}

.main_bl1 {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.main_bl1bt {
	width: 320px;
	flex-shrink: 0;
}

.scrl_vert {
	padding-top: 60px;
	padding-bottom: 100px;
}

.arr_tb {
	text-align: center;
}

.move_tb {
	height: 42px;
	margin-bottom: 8px;
	display: inline-block;
}

.move_tb svg {
	animation: botrun 1.4s linear infinite alternate;
}

@keyframes botrun {
	0% {
		margin-top: 0;
	}

	50% {
		margin-top: 8px;
	}

	100% {
		margin-top: 0;
	}
}

.showreal {
	margin-bottom: 140px;
}

.main_bl2 {
	font-size: 38px;
	margin-bottom: 110px;
}

.bl2_aft {
	text-transform: uppercase;
}

.res_block {
	margin-bottom: 130px;
}

.res_list {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 20px;
	justify-content: center;
}

.descr_sm {
	color: #8C8C8C;
}

.res_item {
	width: 410px;
	height: 320px;
	background: var(--c_bg2_8);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--c_text);
	flex-shrink: 0;
	text-transform: uppercase;
	flex-direction: column;
	margin: 0 10px 20px;
	border-radius: 5px;
	border: 1px solid var(--c_bg2_8);
}

.res_item img {
	margin-bottom: 20px;
	height: 64px;
}

.res_item__hd {
	font-size: 48px;
	font-weight: bold;
	margin-bottom: 20px;
}

.res_item__descr {
	font-size: 32px;
	text-align: center;
}

.fullw_move {
	font-size: 180px;
	font-weight: bold;
	overflow: hidden;
	width: 100%;
}

.fullw_move div {
	width: 200%;
}

.service_list__item {
	padding: 32px 0 28px;
	border-bottom: 2px solid var(--c_text);
}

.service_list .service_list__item:first-child {
	border-top: 2px solid var(--c_text);
}

.service_item__row {
	padding-right: 36px;
	cursor: pointer;
}

.service_item__row img {
	width: 36px;
	margin-right: 16px;
}

.service_item__row span {
	font-size: 21px;
	font-weight: bold;
	vertical-align: top;
}

.service_item__arr {
	float: right;
}

.service_item__content {
	display: flex;
	height: 0;
	overflow: hidden;
}

.service_item__content p {
	max-width: 480px;
	flex-shrink: 0;
	margin-left: 52px;
	margin-right: 18%;
}

.service_list__item.active .service_item__row {
	padding-bottom: 28px;
}

.service_list__item.active .service_item__content {
	height: auto;
}

.service_list__item.active .service_item__arr {
	transform: rotate(180deg);
}

.service_item__list {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
}

.service_item__list ul {
	flex-shrink: 0;
	font-weight: bold;
	list-style-type: disc;
}

.list_left_col {
	margin-right: 9%;
}

footer {
	padding-top: 200px;
}

.footer_top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: 170px;
}

.footer_mid {
	margin-bottom: 140px;
}

.logo_block p {
	font-size: 20px;
	font-weight: bold;
}

.footer_logo {
	margin-bottom: 40px;
	display: block;
}

.footer_logo svg {
	width: 260px;
	height: 120px;
	transition: transform 0.3s ease;
}

.footer_logo:hover svg {
	transform: scale(1.12);
}

.footer_menu {
	flex-shrink: 0;
}

.footer_menu p {
	font-size: 20px;
	font-weight: bold;
}

.footer_menu a {
	margin-bottom: 8px;
	display: block;
}

.follow p {
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 18px;
}

.follow a {
	margin: 0 12px;
}

.follow a svg {
	height: 34px;
}

.follow a img {
	display: none;
	width: 32px;
}

.follow a:hover img {
	display: inline;
}

.follow a:hover svg {
	display: none;
}

.footer_bts {
	width: 250px;
	flex-shrink: 0;
}

.footer_bts a {
	font-weight: bold;
	margin-bottom: 20px;
}

.footer_bts img {
	height: 28px;
	margin: 0 5px;
}

.letsgo {
	width: 510px;
	margin: 0 6% 140px auto;
}

.letsgo_hd {
	font-size: 38px;
	font-weight: bold;
	margin-bottom: 8px;
}

.letsgo_hd a {
	text-decoration: none;
	color: var(--c_text);
	display: inline-block;
}

.letsgo_hd img {
	margin-left: 16px;
	height: 34px;
	animation: runleft 1.4s linear infinite alternate;
}

@keyframes runleft {
	0% {
		margin-left: 16px;
	}

	50% {
		margin-left: 24px;
	}

	100% {
		margin-left: 16px;
	}
}

.lets_drop {
	color: #8C8C8C;
	height: 25px;
}

.lets_drop img {
	margin-right: 8px;
	animation: botrun 1.4s linear infinite alternate;
}

.footer_bottom__cr {
	display: flex;
	justify-content: space-between;
	font-size: 12px;
	margin-bottom: 10px;
}

.footer_bottom__cr img {
	height: 12px;
	margin: 0 3px;
}

.footer_bottom__cr a {
	text-decoration: underline;
}

/* Welcome page */
.wlc header {
	margin-bottom: 45px;
}

.wlc_descr {
	font-size: 48px;
	margin-bottom: 30px;
}

.wlc_descr img {
	height: 60px;
}

.wlc .hd_descr {
	margin-bottom: 8px;
	margin-right: 0;
}

.wlc_look {
	font-size: 38px;
	font-weight: bold;
	margin-bottom: 140px;
}

.wlc_look img {
	height: 36px;
}

.wlc_cols {
	margin-bottom: 140px;
}

.two_cols {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.wlc_cols__item {
	background: var(--c_bg2_8);
	padding: 12px 12px 35px;
	border-radius: 4px;
	border: 4px solid var(--c_bg2_8);
	width: 830px;
	margin: 0 10px;
}

.wlc_cols__item:hover {
	border: 4px solid var(--c_bg2);
}

.wlc_cols_item__img {
	height: 346;
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 28px;
}

.wlc_cols_item__img img {
	width: 100%;
}

.wlc_cols_item__hd {
	font-size: 38px;
	font-weight: bold;
	margin-bottom: 20px;
	padding-left: 48px;
}

.wlc_cols_item__hd img {
	height: 50px;
	margin-left: 16px;
}

.wlc_cols_item__descr {
	font-size: 20px;
	margin-bottom: 36px;
	padding-left: 48px;
}

.wlc_cols_item__bt {
	width: 210px;
	margin: 0 auto;
}

.wlc_cols_item__bt a {
	font-weight: bold;
}

.wlc_cols_item__bt img,
.wlc_ready_bt .bt_def img {
	height: 20px;
	margin-right: 8px;
}

.wlc_cols_item__bt .bt_def:hover img,
.wlc_ready_bt .bt_def:hover img {
	height: 24px;
}

.wlc_botdescr {
	max-width: 1510px;
	font-size: 38px;
	margin-bottom: 280px;
}

.wlc_ready {
	font-size: 40px;
	margin-bottom: 40px;
}

.wlc_ready_bt {
	width: 190px;
	margin: 0 auto;
}

.wlc_ready_bt a {
	font-weight: bold;
}

h1.txttop {
	font-size: 300px;
	line-height: 1;
	margin-bottom: 40px;
}

.about .scrl_vert {
	padding-top: 110px;
	padding-bottom: 60px;
}

.about_content {
	padding-top: 140px;
}

.colf_left {
	width: 100%;
	max-width: 715px;
	margin-bottom: 65px;
}

.txt_col_img {
	display: flex;
	margin-bottom: 60px;
}

.txt_col_img p {
	font-size: 96px;
	font-weight: bold;
	margin-right: 60px;
	line-height: 1;
}

.txt_col_img img {
	height: 110px;
}

.cols_descr_block {
	font-size: 32px;
}

.colf_right {
	text-align: right;
	margin-bottom: 140px;
}

.colf_right_block {
	display: inline-block;
	width: 100%;
	max-width: 840px;
	text-align: left;
}

.colf_hd {
	font-size: 63px;
	line-height: 1;
	font-weight: bold;
	margin-bottom: 34px;
	display: flex;
	align-items: center;
}

.colf_hd img {
	height: 90px;
	margin-right: 40px;
}

.colf_descr {
	font-size: 32px;
	padding-left: 130px;
}

.about_content .wlc_ready_bt {
	margin-bottom: 140px;
}

.about_bottxt {
	font-size: 32px;
	margin-bottom: 70px;
}

.pagebot_bts {
	width: 100%;
	max-width: 300px;
	margin: 0 auto;
}

.about .res_block {
	margin-bottom: 80px;
}

.services header,
.projects header,
.contacts header {
	margin-bottom: 40px;
}

.services h1 {
	font-size: 180px;
	margin-bottom: 40px;
}

.services .main_bl1txt .fs38.withimg img {
	height: 40px;
}

.fs20.withimg img {
	height: 24px;
}

.services .scrl_vert {
	padding-top: 160px;
	padding-bottom: 160px;
}

.aprhd {
	font-size: 160px;
	font-weight: bold;
	margin-bottom: 80px;
}

.approach_cols {
	margin-bottom: 120px;
}

.cols3 {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.cols3_col {
	width: 32%;
	background: var(--c_bg_col);
	margin-bottom: 20px;
	padding: 60px 24px 24px;
	min-height: 450px;
}

.cols3_col__hd {
	display: flex;
	font-size: 48px;
	font-weight: bold;
	margin-bottom: 40px;
}

.cols3_col__hd img {
	height: 42px;
	margin-right: 20px;
	flex-shrink: 0;
	margin-top: 7px;
}

.cols3_col p {
	font-size: 20px;
}

.service_list {
	margin-bottom: 140px;
}

.services_bot {
	display: flex;
	justify-content: space-between;
}

.services_bot_bts {
	width: 300px;
	margin-right: 110px;
}

.services_bot_txt {
	font-size: 32px;
}

.projects .scrl_vert {
	padding-top: 200px;
}

.project_block {
	margin-bottom: 100px;
}

.project_block__hd {
	margin-bottom: 20px;
	font-size: 38px;
	font-weight: bold;
}

.project_block__hd img {
	height: 36px;
	margin-right: 10px;
}

.project_block__descr {
	font-size: 20px;
	padding-bottom: 40px;
	margin: 0;
}

.brdb {
	border-bottom: 1px solid var(--c_bg2);
}

.project_row {
	border-bottom: 1px solid var(--c_bg2);
}

.project_row__hd {
	display: flex;
	justify-content: right;
	position: relative;
	overflow: hidden;
}

.project_row__num {
	font-size: 140px;
	font-weight: bold;
	line-height: 1;
	position: absolute;
	left: 0;
	top: 30px;
}

.project_row__right {
	width: 50%;
	display: flex;
	justify-content: space-between;
}

.project_row__hdtxt {
	padding-top: 40px;
}

.project_row__title {
	font-size: 38px;
	font-weight: bold;
	padding-bottom: 40px;
}

.project_row__title img {
	height: 36px;
	margin-left: 16px;
}

.project_row__titletxt {
	display: none;
	max-width: 750px;
}

.project_row.active .project_row__titletxt {
	display: block;
}

.project_row__arr {
	cursor: pointer;
	margin-top: 40px;
	align-self: baseline;
}

.project_row__arr svg {
	width: 32px;
	height: 32px;
}

.project_row__content {
	display: none;
}

.project_row.active .project_row__hd {
	margin-bottom: 80px;
}

.project_row.active .project_row__arr {
	transform: rotate(180deg);
}

.project_row.active .project_row__content {
	display: block;
}

.gallery {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.gallery_item {
	width: 32%;
	margin-bottom: 28px;
}

.gallery_item img {
	width: 100%;
}

.photo_block,
.video_block {
	margin-bottom: 100px;
}

.proj_botxt {
	margin-bottom: 60px;
	font-size: 40px;
}

.projects .pagebot_bts {
	width: 240px;
}

.projects .pagebot_bts a {
	font-weight: bold;
}

.contacts_topbt {
	width: 240px;
	margin: 140px auto 80px;
	font-weight: bold;
}

.contacts_info {
	margin-bottom: 140px;
}

.contacts_info__row {
	display: flex;
	padding: 40px 0 32px;
	border-bottom: 1px solid var(--c_bg2);
}

.contacts_info__row>div {
	width: 50%;
}

.contacts_info__hd {
	font-size: 28px;
}

.contacts_info__hd img {
	height: 28px;
	margin-right: 16px;
}

.contacts_info__val {
	font-size: 28px;
}

.contacts_info__val a {
	text-decoration: underline;
	word-break: break-word;
	white-space: normal;
	display: inline-block;
}

.contacts_midtxt {
	font-size: 38px;
	margin-bottom: 80px;
}

.contacts_theme {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 20px;
}

.contacts_theme span {
	display: inline-block;
	padding: 12px 32px;
	font-size: 20px;
	line-height: 1;
	border: 1px solid var(--c_bg2);
	border-radius: 25px;
	cursor: pointer;
	margin: 0 30px 20px 0;
}

.contacts_theme span.active {
	background: var(--c_bg2);
	color: var(--c_bg);
}

.contacts_form {
	margin-bottom: 140px;
}

.contacts_form form {
	width: 100%;
	max-width: 1460px;
}

.form_row {
	margin-bottom: 32px;
	display: flex;
}

.form_row__col {
	width: calc(50% - 20px);
}

.form_row .form_row__col:nth-child(2) {
	margin-left: 40px;
}

.form_row__col.colfull {
	width: 100%;
}

.form_row__col span {
	display: inline-block;
	font-weight: 20px;
	margin-bottom: 10px;
}

.form_input {
	width: 100%;
	background: none;
	border: 1px solid var(--c_bg2);
	border-radius: 4px;
	height: 80px;
	padding: 5px 15px;
	font-size: 20px;
}

.form_input.error {
	border-color: red;
}

.form_row__col textarea {
	resize: none;
	width: 100%;
	height: 160px;
	padding: 10px;
	background: transparent;
	border: 1px solid var(--c_bg2);
	border-radius: 4px;
	font-size: 20px;
}

.form_descr {
	margin-bottom: 20px;
}

.bt_send {
	font-size: 16px;
	font-weight: bold;
	padding: 12px 32px;
	border-radius: 25px;
	border: 1px solid var(--c_bg2);
	background: transparent;
	cursor: pointer;
	color: var(--c_text);
}

.bt_send:hover {
	background: var(--c_bg2);
	color: var(--c_text_hover);
}

.bt_send img {
	height: 20px;
	margin-right: 8px;
	vertical-align: top;
}

.contacts_botxt {
	font-size: 38px;
}

/* Studio */
.st_mid_txt {
	font-size: 38px;
	font-weight: bold;
	margin-bottom: 80px;
}

.studio .main_bl1txt .fs48 {
	max-width: 1110px;
}

.studio_links {
	margin-bottom: 60px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.studio_links__item {
	width: 50%;
	margin-bottom: 80px;
}

.studio_links .studio_links__item:nth-child(1) {
	padding-right: 20px;
}

.studio_links .studio_links__item:nth-child(2) {
	padding-left: 20px;
}

.studio_links .studio_links__item:nth-child(3) {
	padding: 0 10px;
}

.links_item__img {
	width: 100%;
	margin-bottom: 32px;
}

.links_item__img img {
	width: 100%;
}

.links_item__bot {
	display: flex;
	justify-content: space-between;
}

.links_item__bt {
	width: 276px;
	margin-right: 32px;
	flex-shrink: 0;
}

.links_item__descr {
	max-width: 480px;
}

.links_item__hd {
	font-size: 28px;
	font-weight: bold;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.links_item__hd img {
	height: 28px;
	margin-right: 8px;
}

.links_item__txt {
	font-size: 20px;
}

.label_link {
	margin-bottom: 140px;
	height: 400px;
}

.label_link_bg {
	height: 100%;
	background: url('/img/st_bot.jpg')no-repeat top center;
	color: #fafafa;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.label_link__hd {
	text-transform: uppercase;
	font-size: 48px;
	font-weight: bold;
	margin-bottom: 20px;
	text-align: center;
}

.label_link__hd img {
	height: 44px;
	margin-right: 8px;
}

.label_link p {
	font-size: 20px;
	max-width: 480px;
	margin-bottom: 50px;
	text-align: center;
}

.label_link a.bt_def {
	width: 290px;
}

.studio.services_bot_bts {
	width: 220px;
	margin-right: 0;
	flex-shrink: 0;
	margin-left: 40px;
}

.studio.services_bot_bts a {
	font-weight: bold;
}

.studio .hd_descr {
	margin-right: 0;
}

h1.sttop {
	font-size: 80px;
	font-weight: bold;
	margin-bottom: 20px;
}

.sttop_descr {
	font-size: 38px;
	margin-bottom: 60px;
}

h2.sttop_descr {
	font-weight: normal;
}

.photo_top_img {
	margin-bottom: 140px;
}

.photo_top_img img {
	width: 100%;
}

.photo_midtxt {
	margin-bottom: 140px;
	font-size: 38px;
}

.photo_midtxt1 {
	margin-bottom: 20px;
}

.hd_block {
	font-size: 38px;
	font-weight: bold;
	margin-bottom: 80px;
}

.hd_block img {
	height: 36px;
	margin-right: 16px;
}

.hd_block.mrgb20 {
	margin-bottom: 20px;
}

.hd_block_descr {
	font-size: 20px;
	margin-bottom: 80px;
}

.colsflblock {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: 70px;
}

.colsflblock.motr {
	justify-content: center;
}

.colsflblock_left {
	padding-right: 15px;
}

.colsflblock_hd {
	font-size: 28px;
	font-weight: bold;
	margin-bottom: 20px;
}

.colsflblock_hd img {
	height: 26px;
	margin-right: 16px;
}

.small_list {
	list-style: disc;
	padding-left: 20px;
	margin-bottom: 16px;
}

.small_list li {
	font-size: 20px;
	margin-bottom: 8px;
	max-width: 760px;
}

.arr_descr {
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 38px;
}

.colsflblock_img {
	border-radius: 4px;
	overflow: hidden;
}

.colsflblock_bt {
	width: 290px;
	font-weight: bold;
	position: absolute;
	bottom: 0;
	left: 80px;
}

.colsflblock_img img {
	max-width: 850px;
	margin-bottom: -4px;
}

.colsflblock.mrgb130 {
	margin-bottom: 130px;
}

.col3txt {
	background: var(--c_bg_col);
	padding: 40px 32px;
	width: calc(33.33% - 26.6px);
	margin-bottom: 20px;
	flex-shrink: 0;
	min-height: 320px;
	border: 1px solid var(--c_bg2_8);
	border-radius: 4px;
}

.motr .col3txt {
	width: calc(33.33% - 40px);
	margin: 0 20px 20px;
}

.colsbt_wrap {
	margin-bottom: 32px;
}

.colsbt_in {
	display: flex;
	justify-content: space-between;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--c_bg2);
}

.ulcols {
	display: flex;
}

.ulcols ul {
	margin-right: 40px;
}

.ulcols_bt {
	width: 280px;
}

.ulcols_bt .bt_def {
	margin-top: -20px;
}

.endpg_hd {
	font-size: 38px;
	font-weight: bold;
	text-align: center;
	margin-top: 100px;
	margin-bottom: 20px;
}

.endpg_descr {
	font-size: 20px;
	text-align: center;
	margin-bottom: 58px;
}

.pagebot_bts.bold {
	font-weight: bold;
}

.labtop {
	text-align: center;
	font-size: 140px;
	line-height: 1;
	margin-bottom: 20px;
}

.labtop_descr {
	text-align: center;
	font-size: 38px;
	line-height: 1;
	margin-bottom: 60px;
}

.label_aftsl {
	font-size: 38px;
	margin-bottom: 40px;
}

.release_block {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 120px;
	justify-content: space-between;
}

.release_item {
	width: 32%;
	margin-bottom: 20px;
}

.release_item__img {
	height: auto;
	overflow: hidden;
	margin-bottom: 20px;
}

.release_item__img img {
	width: 100%;
}

.release_item__bot {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.release_item__bot span {
	font-size: 28px;
}

.release_item__bot .bt_def {
	width: 170px;
	font-size: 16px;
	font-weight: bold;
	padding: 10px 32px;
}

.fr .release_item__bot .bt_def {
	padding: 10px 24px;
}

.release_item__bot .bt_def img {
	height: 18px;
}

.pres_block {
	margin-bottom: 120px;
}

.pres_block .res_item {
	width: calc(20% - 16px);
	height: 440px;

}

.label_midimg {
	margin-bottom: 96px;
}

.label_midimg_wrap {
	position: relative;
}

.label_midimg_wrap img.label_midimg_img {
	width: 100%;
}

.label_midimg__in {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	padding: 80px 30px 20px 60px;
	color: #FAFAFA;
}

.label_midimg__title {
	font-size: 40px;
	font-weight: bold;
	margin-bottom: 20px;
}

.label_midimg__descr {
	font-size: 28px;
	max-width: 1050px;
	margin-bottom: 60px;
}

.label_midimg__bt {
	width: 290px;
}

.label_midimg__bt .bt_def {
	font-size: 16px;
	font-weight: bold;
}

.colsbt_in p {
	font-size: 20px;
}

.label .ulcols_bt .bt_def {
	margin-top: -40px;
}

.booking_hd {
	font-size: 38px;
	font-weight: bold;
	margin-bottom: 60px;
}

.booking_hd span {
	font-weight: normal;
	font-size: 24px;
}

.studio_select {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: 140px;
}

.studio_select__item {
	width: 560px;
	height: 560px;
	cursor: pointer;
	border-radius: 4px;
	padding: 4px;
	border: 4px solid var(--c_bg2_8);
	background: var(--c_bg_col);
	margin-bottom: 20px;
}

.studio_select__item:hover,
.studio_select__item.active {
	border-color: var(--c_bg2);
}

.select_item__img {
	margin-bottom: 80px;
	height: 380px;
	overflow: hidden;
	border-radius: 4px;
}

.select_item__img img {
	height: 100%;
}

.select_item__name {
	font-size: 28px;
	font-weight: bold;
	text-align: center;
}

.select_item__name img {
	height: 26px;
	margin-right: 12px;
}

.duration_time {
	width: 100%;
	display: flex;
	margin-bottom: 20px;
	justify-content: space-between;
}

.duration_time span,
.duration_select span {
	font-size: 20px;
	font-weight: bold;
	display: inline-block;
	cursor: pointer;
}

.dh1 {
	width: 340px;
}

.dh2 {
	width: 436px;
}

.dh4 {
	width: 780px;
}

.dh8 {
	width: 230px;
	flex-shrink: 0;
}

.duration_selblock {
	margin-bottom: 40px;
}

.duration_select {
	width: 100%;
	display: flex;
	height: 80px;
	background: var(--c_bg_col);
	border-radius: 4px;
	padding-top: 4px;
	padding-bottom: 4px;
	justify-content: space-between;
}

.duration_sq {
	height: 100%;
	width: 80px;
	border-radius: 4px;
	background: var(--c_bg_col);
}

.duration_sq.active {
	background: var(--c_bg2);
}

.dh4 .duration_sq,
.dh8 .duration_sq {
	margin-left: 60px;
}

.custom_drt {
	font-size: 16px;
	margin-bottom: 20px;
}

.custom_drt b {
	font-size: 20px;
}

.custom_drt_fld {
	margin-bottom: 140px;
}

.drt_fld {
	border: 1px solid var(--c_bg2);
	border-radius: 4px;
	background: transparent;
	width: 100%;
	max-width: 410px;
	height: 56px;
	padding: 5px 20px;
	font-size: 20px;
	color: var(--c_bg2);
}

.klblock {
	margin-bottom: 140px;
}

.klblock_in {
	display: flex;
	border-radius: 4px;
	flex-wrap: wrap;
}

.klblock_item {
	width: 33.33%;
	padding: 32px;
	height: 500px;
	background: var(--c_bg_col);
}

.klblock_kalendar {
	border-left: 1px solid var(--c_brd);
	border-right: 1px solid var(--c_brd);
}

.klblock_descr__hd {
	margin-bottom: 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.klblock_descr__hd p {
	font-size: 28px;
	font-weight: bold;
	margin: 0;
}

.klblock_descr__hd p img {
	height: 28px;
	margin-right: 16px;
}

.klblock_descr__hd span {
	font-size: 20px;
}

.klblock_descr__addr {
	font-size: 20px;
	margin-bottom: 230px;
	max-width: 250px;
}

.klblock_descr__bottom {
	font-size: 20px;
	margin-bottom: 16px;
}

.klblock_descr__bottom a {
	text-decoration: underline;
}

.klblock_kln__hd {
	display: flex;
	justify-content: space-between;
	margin-bottom: 40px;
}

.klblock_kln__date {
	font-size: 20px;
	font-weight: bold;
}

.klblock_kln__date span {
	color: #8B8B8C;
}

.klblock_kln__arrs span {
	display: inline-block;
	cursor: pointer;
}

.ar_prev {
	transform: rotate(180deg);
}

.b_end svg path {
	fill: #8B8B8C;
}

.b_end svg {
	margin-top: 3px;
}

.klblock_table__hd {
	margin-bottom: 25px;
}

.klblock_table__hd span {
	font-size: 20px;
	font-weight: bold;
	display: flex;
	justify-content: center;
}

.klblock_table__row {
	display: flex;
	justify-content: space-between;
}

.klblock_table__row span {
	width: calc(100% / 7);
}

.klblock_table__list span {
	padding: 0 4px;
	height: 52px;
}

.klblock_table__list p {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	margin: 0;
	font-size: 20px;
	border-radius: 4px;
	overflow: hidden;
	cursor: pointer;
}

.klblock_table__list p.bron {
	background: var(--c_cell);
}

.klblock_table__list p.selected {
	background: var(--c_bg2);
	color: var(--c_bg);
}

.klblock_table__list .klblock_table__row {
	margin-bottom: 8px;
}

.klblock_table__list p.curday:after {
	position: absolute;
	content: '';
	display: block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	left: calc(50% - 3px);
	bottom: 4px;
	background: var(--c_bg2);
}

.klblock_kln__seltime {
	overflow: auto;
	padding-right: 16px;
}

.seltime_bt {
	height: 50px;
	width: 100%;
	margin-bottom: 20px;
	border: 1px solid var(--c_bg2);
	border-radius: 4px;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 20px;
	cursor: pointer;
}

.seltime_bt:hover,
.seltime_bt.select {
	background: var(--c_bg2);
	color: var(--c_bg);
}

.adetail_block {
	display: none;
	margin-bottom: 140px;
}

.adetail_block.active {
	display: block;
}

.adetail_block__hd {
	font-size: 20px;
	margin-bottom: 20px;
}

.adetail_block__row {
	margin-bottom: 32px;
	display: flex;
	flex-wrap: wrap;
}

.adetail_block__select {
	height: 56px;
	border: 1px solid var(--c_bg2);
	color: var(--c_bg2);
	font-size: 20px;
	padding: 0 30px 0 20px;
	background: transparent;
	width: 100%;
	max-width: 410px;
	margin-right: 40px;
	border-radius: 4px;
}

.c_check {
	display: inline-block;
	height: 56px;
	padding: 16px 80px 10px 20px;
	position: relative;
	border: 1px solid var(--c_bg2);
	border-radius: 4px;
	font-size: 20px;
	margin-right: 40px;
}

.c_check label {
	cursor: pointer;
}

.c_check span {
	position: absolute;
	display: block;
	content: '';
	width: 40px;
	height: 40px;
	right: 12px;
	top: 8px;
	border: 1px solid var(--c_bg2);
	border-radius: 4px;
	padding: 10px 0 0 10px;
}

.c_check span svg {
	display: none;
}

.c_check label.check span svg {
	display: block;
}

.adetail_block__special {
	font-size: 20px;
	margin-bottom: 12px;
}

.adetail_block textarea {
	width: 100%;
	max-width: 780px;
	border: 1px solid var(--c_bg2);
	border-radius: 4px;
	background: transparent;
	padding: 8px 10px;
	font-size: 20px;
	resize: none;
}

.letsgo_hd a:hover,
.header_right a:hover,
.menu_top a:hover,
.footer_menu a:hover {
	opacity: 0.6;
}

.fr.booking h1.txttop {
	font-size: 240px;
}

.coockies_block {
	display: none;
	position: fixed;
	left: 40px;
	bottom: 8px;
	border-radius: 4px;
	background: var(--c_bg_col);
	border: 1px solid var(--c_bg_col);
	padding: 30px 35px 20px;
	width: 100%;
	max-width: 558px;
}

.coockies_block.active {
	display: block;
}

.coockies_block p {
	position: relative;
	font-size: 20px;
	margin-bottom: 32px;
}

.coockies_block p img {
	position: absolute;
	right: -25px;
	top: 5px;
	height: 20px;
}

.bt_cook_block {
	text-align: center;
}

#thanks {
	display: none;
	margin: 10px;
	font-size: 20px;
}

#thanks.active {
	display: inline-block;
}

.mob_menu_bt {
	display: none;
	width: 60px;
}

/* Progress Bar */
#progress-bar {
	position: fixed;
	top: 0;
	left: 0;
	height: 5px;
	width: 0%;
	background-color: var(--c_text);
	z-index: 9999;
	transition: width 0.1s ease-out;
}

/* Custom Ball Cursor */
.ball-cursor {
	position: fixed;
	width: 30px;
	height: 30px;
	background-color: transparent;
	border: 2px solid var(--c_text);
	border-radius: 50%;
	pointer-events: none;
	z-index: 99999999;
	/* Super high z-index to be above everything */
	opacity: 1;
	transform-origin: center center;
	left: 0;
	top: 0;
	transform: translate(-50%, -50%) scale(1);

	/* Critical - remove any transition for size, we'll do this in JS */
	transition: border-color 0.5s;
}

/* Handle cursor color in both light and dark modes */
body.dark .ball-cursor {
	border-color: var(--c_text);
}

/* Hide default cursor on all elements when ball cursor is active */
body {
	cursor: none !important;
}

a,
button,
input,
textarea,
select,
[role="button"] {
	cursor: none !important;
}

/* Make cursor bigger on interactive elements using transform for absolute smoothness */
.ball-cursor.hover {
	transform: translate(-50%, -50%) scale(1.667);
	border-width: 3px;
	transition: transform 4s cubic-bezier(0.19, 1, 0.22, 1),
		border-width 4s cubic-bezier(0.19, 1, 0.22, 1),
		border-color 0.5s;
}

/* Remove the pulse animation since it makes the transition feel less smooth */
@keyframes pulse {
	0% {
		transform: scale(1);
	}

	100% {
		transform: scale(1.01);
	}
}

/* Privacy Policy Styles */
.privacy_content {
	max-width: 1000px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.6;
	color: var(--c_text);
}

.privacy_section h2 {
	font-size: 24px;
	font-weight: 600;
	text-transform: uppercase;
}

.privacy_list {
	padding-left: 20px;
	list-style-type: disc;
}

.privacy_list li {
	margin-bottom: 10px;
}

.privacy_list strong {
	font-weight: 600;
}

/* Specific style for privacy page titles */
.privacy h1.txttop {
	font-size: 160px;
	word-wrap: break-word;
	hyphens: auto;
}

/* Smooth transitions throughout the site */
html {
	scroll-behavior: smooth;
}

html.is-animating {
	height: 100vh;
	width: 100vw;
}

/* Remove animation flashes on mobile devices */

/* CURSOR COLOR IN MENU - START */
/* Light theme (cursor in dark menu) */
body:not(.dark) .menu_block.active~.ball-cursor {
	border-color: var(--c_text_hover);
}

/* Dark theme (cursor in light menu) */
body.dark .menu_block.active~.ball-cursor {
	border-color: var(--c_text_hover);
}

/* CURSOR COLOR IN MENU - END */

/* Add animation for finger emoji in buttons */
@keyframes finger-swipe {
	0% {
		transform: translateX(-4px);
	}

	100% {
		transform: translateX(4px);
	}
}

/* Go to top button styles */
#go-to-top {
	position: fixed;
	bottom: 30px;
	right: 30px;
	left: auto;
	width: 50px;
	height: 50px;
	background-color: var(--c_text);
	color: var(--c_bg);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	z-index: 999;
	cursor: pointer;
	border: none;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

#go-to-top svg {
	width: 20px;
	height: 20px;
}

#go-to-top svg path {
	fill: var(--c_bg);
}

#go-to-top.visible {
	opacity: 1;
	visibility: visible;
}

#go-to-top:hover {
	transform: scale(1.15);
}

/* Custom text selection styling */
::selection,
::-moz-selection {
	background-color: var(--c_text);
	color: var(--c_bg);
}

/* Logo hover effect */
.header_center a.logo.top {
	display: inline-block;
}

.header_center a.logo.top svg {
	transition: transform 0.3s ease;
	will-change: transform;
}

.header_center a.logo.top:hover svg {
	transform: scale(1.12);
}

/* Social network buttons hover effect in footer and menu */
.follow a svg,
.follow a img,
.menu_follow a svg,
.menu_follow a img {
	transition: transform 0.3s ease;
	will-change: transform;
}

.follow a:hover svg,
.follow a:hover img,
.menu_follow a:hover svg,
.menu_follow a:hover img {
	transform: scale(1.18);
}

/* Stat Box Animation */
.res_item {
	transition: none;
}

.res_item.animating,
.res_item.correct {
	opacity: 1;
}

/* Stats number animation - only animate the text */
.res_item__hd {
	transition: transform 0.2s ease;
}

.res_item.correct .res_item__hd {
	transform: scale(1.1);
	font-weight: bold;
}

/* Responsive tweaks for stat box animations */

.contact_link_wrap {
	margin: 40px auto;
	margin-bottom: 80px;
	max-width: 560px;
	text-align: center;
}

.contact_link {
	font-size: 20px;
	display: inline-flex;
	align-items: center;
	text-align: center;
	line-height: 1.4;
}

.contact_link img {
	height: 32px;
	margin-right: 12px;
	vertical-align: middle;
	flex-shrink: 0;
}

.contact_link span {
	text-align: center;
}

.contact_underline {
	text-decoration: underline;
	transition: opacity 0.3s ease;
}

.contact_underline:hover {
	opacity: 0.7;
}

/* Music Releases Grid */
.music_grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 30px;
}

.music_item {
	text-align: center;
	width: 100%;
}

.music_cover {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	margin-bottom: 15px;
	transition: transform 0.3s ease;
	background-color: #f0f0f0;
	/* Light gray background for empty images */
}

.music_cover:hover {
	transform: scale(1.05);
}

.music_artist {
	font-size: 18px;
	font-weight: bold;
	margin-bottom: 5px;
	text-transform: uppercase;
}

.music_title {
	font-size: 16px;
	color: #666;
}

/* --- Single Music Page Styles --- */
.single_main {
	max-width: 480px;
	margin: 0 auto;
	padding: 32px 0 60px 0;
	text-align: center;
}

.single_artist {
	font-size: 40px;
	font-weight: bold;
	margin-bottom: 24px;
	letter-spacing: 1px;
}

.single_title {
	font-size: 28px;
	margin-bottom: 32px;
	letter-spacing: 1px;
}

.single_cover {
	width: 100%;
	max-width: 420px;
	border-radius: 12px;
	margin-bottom: 32px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.10);
}

.finger_wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 32px;
	animation: finger-bounce 1.2s infinite alternate;
}

.single_downarrow {
	width: 48px;
	height: 48px;
	transform: rotate(-90deg) scaleY(-1);
	object-fit: contain;
	margin: 0;
}

@keyframes finger-bounce {
	0% {
		transform: translateY(0);
	}

	100% {
		transform: translateY(18px);
	}
}

.listenon_label {
	font-size: 32px;
	font-weight: bold;
	margin-bottom: 32px;
	letter-spacing: 1px;
}

.listenon_grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px 24px;
	justify-items: center;
	margin-bottom: 48px;
}

.listenon_btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: none;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	width: auto;
	transition: opacity 0.2s, transform 0.2s;
	text-decoration: none;
	color: #1D1D1F;
}

.listenon_btn:hover {
	opacity: 0.7;
	transform: scale(1.07);
}

.listenon_btn img {
	height: 64px !important;
	width: 64px !important;
	margin-bottom: 14px;
	display: block;
	object-fit: contain;
}

.listenon_btn span {
	font-size: 15px;
	font-weight: bold;
	letter-spacing: 0.5px;
}

.explore_btn {
	display: inline-block;
	margin-top: 32px;
	padding: 14px 36px;
	border: 2px solid #1D1D1F;
	border-radius: 30px;
	font-size: 22px;
	font-weight: bold;
	background: #fff;
	color: #1D1D1F;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.explore_btn:hover {
	background: #1D1D1F;
	color: #fff;
}

/* --- End Single Music Page Styles --- */

/* Contact form and success message styles */
#contactForm,
#successMessage {
	transition: opacity 0.5s ease;
}

#successMessage {
	visibility: hidden;
	opacity: 0;
}

#newMessageBtn {
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
	text-decoration: none;
}

#newMessageBtn:hover {
	transform: none;
	opacity: 0.8;
	/* Override global button styles that cause jumping */
	padding: 12px 20px !important;
}

#newMessageBtn:hover img {
	/* Override global hover styles for button images */
	height: 28px !important;
}

/* Fix input text color in dark mode */
body.dark .form_input,
body.dark textarea {
	color: #FAFAFA;
}

/* Email validation styles */
.email-error {
	color: #ff3333;
	font-size: 14px;
	margin-top: 5px;
	opacity: 0;
	height: 0;
	transition: opacity 0.3s, height 0.3s;
}

.email-error.visible {
	opacity: 1;
	height: auto;
	margin-bottom: 8px;
}

.form_input.error {
	border-color: #ff3333 !important;
}

body.dark .email-error {
	color: #ff6666;
}

.coming_soon_section {
	padding: 120px 0;
	margin: 40px 0 100px 0;
}

.coming_soon_section h2 {
	font-weight: bold;
	letter-spacing: 1px;
	font-size: 64px !important;
}

.coming_soon_section h2 img {
	width: 58px;
	vertical-align: middle;
	margin-left: 15px;
}

.portfolio-section__wrapper {
	width: 100%;
	box-sizing: border-box;
	justify-content: center;
	align-items: center;
	transition: 0.3s;
	background-color: var(--c_bg);
	white-space: nowrap;
	position: relative;
	height: 75vh;
	overflow: auto;
	overscroll-behavior-x: none;
	scroll-behavior: smooth;
	align-content: center;
	margin-bottom: 1vh;
}

.portfolio-section__img {
	transition: 0.3s;
	width: 50%;
	margin-right: 10vw;
	height: 50vh;
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center;
	object-position: center;
	border-radius: 8px;
	flex-shrink: 0;
	box-shadow: 0 40px 100px rgba(0, 0, 0, 0.4);
	opacity: 0;
}

.animate {
	opacity: 1;
}

.portfolio-section__img:first-child {
	margin-left: 10vw;
}

.photo_top_img_auto {
	height: 50vw;
	margin-bottom: 1vh;
}

.photo_top_img_auto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 25% 75%;
}

.block_left_custom {
	padding-bottom: 7vh;
	position: relative;
}

.slide__size {
	width: 100%;
	height: 100vh;
}

.slides-wrapper {
	margin-top: 1vh;
}

.section-content {
	text-align: center;
	justify-content: center;
	align-items: center;
	display: flex;
	position: absolute;
	text-decoration: none;
	inset: 0%;
}

.portfolio-section .image {
	aspect-ratio: 1/1;
	position: absolute;
	top: 0;
	left: 0;
	object-fit: cover;
	object-position: center;
	z-index: 0;
}

.portfolio-section {
	height: calc(100vh - 5px);
	display: flex;
	justify-content: center;
	font-weight: 600;
	font-size: 1.5em;
	text-align: center;
	position: relative;
	box-sizing: border-box;
	background: var(--color-grey);
	overflow: hidden;
	border-radius: 10px;
	color: var(--c_text);
}

.portfolio-section.section-1 {
	background: var(--c_bg);
}

.portfolio-section.section-2 {
	background: var(--c_cell);
}

.portfolio-section.section-3 {
	background: var(--c_bg2_8);
}

.portfolio-section.section-4 {
	background: var(--c_bg_col);
}

.portfolio-section h1,
.portfolio-section h3 {
	position: relative;
	align-self: center;
	width: 100%;
	z-index: 15;
	color: #f2f2f2e0;
}

.portfolio-section h1.drk,
.portfolio-section h3.drk {
	color: #1D1D1F;
}

.portfolio-section h1 {
	font-size: max(3rem, min(5vw + 1rem, 10rem));
	font-weight: 600;
	height: 80vh;
	margin: 5vh auto;
}

.portfolio-section h3 {
	z-index: 17;
	bottom: 2vh;
}

.case-shade {
	z-index: 1;
	background: linear-gradient(to bottom, rgba(29, 29, 31, 0.6), rgba(0, 0, 0, 0.05));
	pointer-events: none;
	position: absolute;
	inset: 0%;
}