/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
	Created on : 26.04.2017, 11:00:33
	Author     : dev
	Updated   : Flex layout structure
*/

/* ==============================================
   НОВАЯ FLEX СТРУКТУРА КАЛЬКУЛЯТОРА
   ============================================== */

/* Основной контейнер для всех блоков калькулятора */
.woocommerce.single-product .variations_form {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr;
}

a.reset_variations {
    display: none;
}

.calc-row-form, .block_sizes_wrap, .block_counts_wrap, .block_options_wrap{
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* На десктопе используем 2 колонки: properties + upload */
@media (min-width: 768px) {
	.woocommerce.single-product .variations_form {
		display: grid;
		grid-template-columns: 3fr 1fr;
		gap: 20px;
		align-items: stretch;
	}
	
	/* Блок properties содержит 3 внутренние колонки */
	.sticker-calc-properties {
        display: grid;
        grid-template-columns: auto 23% 45%;
        gap: 0;
        order: 1;
        background: #f5f5f5;
        border-radius: 16px;
        padding: 0 10px;
	}
	
	/* Размещаем внутренние блоки в правильном порядке */
	.sticker-calc-materials-column {
		order: 1;
	}
	
	.sticker-calc-sizes-container {
		order: 2;
	}
	
	.sticker-calc-quantities-container {
		order: 3;
	}
	
	/* Блок загрузки остается в отдельной колонке */
	.sticker-calc-upload-column {
		order: 2;
	}
}

/* На мобильных устройствах - вертикальное расположение */
@media (max-width: 767px) {
	.woocommerce.single-product .variations_form {
		display: grid;
		grid-template-columns: 1fr;
		gap: 15px;
	}
	
	/* Блок properties на мобильных также вертикальный */
	.sticker-calc-properties {
		display: grid;
		grid-template-columns: 1fr;
		gap: 15px;
		order: 1;
	}
	
	.sticker-calc-sizes-container,
	.sticker-calc-quantities-container,
	.sticker-calc-upload-column,
	.sticker-calc-materials-column {
		width: 100%;
		order: inherit;
	}
	
	/* Устанавливаем правильный порядок на мобильных */
	.sticker-calc-materials-column {
		order: 1;
	}
	
	.sticker-calc-sizes-container {
		order: 2;
	}
	
	.sticker-calc-quantities-container {
		order: 3;
	}
	
	.sticker-calc-upload-column {
		order: 2;
	}
}

/* Стили для каждого блока калькулятора */
.sticker-calc-sizes-container,
.sticker-calc-quantities-container,
.sticker-calc-upload-column,
.sticker-calc-materials-column {
	background: #f5f5f5;
    border-radius: 16px;
    padding: 0 20px 40px;
    box-sizing: border-box;
}

.sticker-calc-upload-column {
    padding: 40px 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100%;
}

/* Убираем старый стиль для form.variations_form.cart */
form.variations_form.cart {
    background: transparent;
    border-radius: 0;
}

.sticker-calc-upload-container {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.sticker-calc-upload-container .woocommerce-variation-add-to-cart {
	margin-top: auto;
}

.sticker-calc-upload-container .single_add_to_cart_button {
	width: 100%;
	padding: 12px 20px;
	font-size: 16px;
	font-weight: bold;
}

@media (max-width: 780px) {
	.sticker-calc-sizes-container, 
	.sticker-calc-quantities-container, 
	.sticker-calc-upload-column, 
	.sticker-calc-materials-column {
		padding: 0 16px 20px;
	}

	.sticker-calc-upload-column {
		padding: 20px 16px;
	}
}

/* ==============================================
   КОНЕЦ НОВОЙ FLEX СТРУКТУРЫ
   ============================================== */

div.row-sizes{
	display: none;
}

.block_desc {
    padding-left: 0px;
}

.woocommerce .single-product div.product .single_product_wrapper, .woocommerce.single-product div.product .single_product_wrapper {
	display: block !important;
}
.woocommerce #content div.product div.images, .woocommerce div.product div.images, .woocommerce-page #content div.product div.images, .woocommerce-page div.product div.images {
	display: none !important;
}
.woocommerce #content div.product div.summary, .woocommerce div.product div.summary, .woocommerce-page #content div.product div.summary, .woocommerce-page div.product div.summary {
	float: none !important;
	width: 100% !important;
	display: block;
}
.text-center {
	text-align: center;
}
/*--------------------------------------------------------------------------*/
/*--.variations_form {
	font-family: Arial, 'Helvetica Neue', Helvetica, Sans-serif;
	background: #efefef;
}--*/
.variations_form .block_desc {
	float: left;
	width: 425px;
	margin-right: 30px;
}
.woocommerce.single-product .variations_form .block_desc h1.entry-title {
	font-size: 23px;
	margin-bottom: 10px;
}

.sticker-calc-sizes-container,
.sticker-calc-quantities-container {
	margin-top: 0.9375rem
}

/* Скрываем иконку загрузки, когда есть превью */
.qo-upload--has-preview img.icon-upload {
	display: none;
}

/* Показываем иконку только когда нет превью */
.qo-upload:not(.qo-upload--has-preview) img.icon-upload {
	display: block;
}

/* Единый стиль для всех заголовков блоков калькулятора */
.sticker-calc-header {
    display: flex;
    padding: 32px 16px 20px;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    color: #095EF7;
    line-height: 1;
}
.sticker-calc-materials-column input[type="radio"],
.sticker-calc-sizes-container input[type="radio"],
.sticker-calc-quantities-container input[type="radio"]  {
	display: none;
}

.sticker-calc-materials-column label,
.sticker-calc-sizes-container label,
.sticker-calc-quantities-container label {
    position: relative;
    display: block;
    padding: 8px 16px;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    user-select: none;
    border-radius: 12px;
    transition: transform 0.2s ease-out;
}

.sticker-calc-materials-column label,
.sticker-calc-sizes-container label {
    background: #fff;
	padding: 8px 16px;
}

/* Стили для наведения только на невыбранные элементы */
.sticker-calc-materials-column input:not(:checked) + label:hover,
.sticker-calc-sizes-container input:not(:checked) + label:hover,
.sticker-calc-quantities-container input:not(:checked) + label:hover .counts_element {
	transform: scale(1.03);
}

/* Стили для круглых иконок удалены */
.sticker-calc-materials-column input:checked + label,
.sticker-calc-sizes-container input:checked + label,
.sticker-calc-quantities-container input:checked + label .counts_element {
    background: #095EF7;
    color: #fff;
}

.sticker-calc-quantities-container .counts_cost,
.sticker-calc-quantities-container .counts_percent {
    opacity: 0.5;
}

.custom_count_input .counts_cost, .custom_count_input .counts_percent {
    opacity: 1;
}

.sticker-calc-quantities-container input:checked + label .counts_cost,
.sticker-calc-quantities-container input:checked + label .counts_percent {
    opacity: 1;
}

.sticker-calc-quantities-container .counts_label:hover .counts_cost,
.sticker-calc-quantities-container .counts_label:hover .counts_percent {
    opacity: 1;
}

/* Стили для checked состояния иконок удалены */
.sticker-calc-sizes-container .custom_sizes {
	padding-bottom: 0px;
	/*background: #e6e9e8;*/
}
.sticker-calc-sizes-container .custom_sizes .row-sizes {
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
	line-height: 1;
	position: relative;
}

.invalid-input {
	border-color: #ff3600 !important;
}

.invalid-input:not(:focus) {
	background: #ff3600 !important;
}

.variations_form .warning {
	color: #fff;
    background: #ff3600;
    border-radius: 16px;
    position: absolute;
    font-size: 14px;
    padding: 10px 16px;
    top: 40px;
    display: none;
    z-index: 10;
}
.variations_form .warning .arrow {
	border: 5px solid transparent;
	border-bottom: 5px solid #ff403b;
	position: absolute;
	top: -10px;
	z-index: 10;
}
.variations_form .warning .arrow-1 {
	left: 40px;
}
.variations_form .warning .arrow-2 {
	left: 110px;
}
.variations_form .custom_count_input {
    justify-content: space-between;
    align-items: center;
    padding: 6px 16px 6px 6px;
    font-size: 18px;
    line-height: 1;
    position: relative;
}
.variations_form .custom_count_input .warning {
	width: auto;
	left: 0;
}

.sticker-calc-sizes-container .custom_sizes:after {
	display: block;
	font-size: 0;
	line-height: 0;
	clear: both;
	content:"";
}
.sticker-calc-sizes-container .custom_sizes input {
	font-size: 18px;
    padding: 6px 16px;
    border-radius: 12px;
    box-sizing: border-box;
    color: #fff;
    background: #085ef7;
}
.sticker-calc-sizes-container .custom_sizes label,
.sticker-calc-quantities-container .custom_counts label {
	margin-bottom: 0px;
	color: #a3a3a3;
}
.sticker-calc-sizes-container label + input {
	margin-left: 20px;
}
.x_style {
	padding: 6px;
}
.sticker-calc-quantities-container .counts_element {
	display: inline-block;
    width: 44%;
    background: #fff;
    border-radius: 12px;
    padding: 8px 16px;
    margin: -8px 16px -8px -16px;
    transition: transform 0.2s ease-out;
}

.sticker-calc-quantities-container .counts_percent {
    background: #ADEB00;
    padding: 8px 16px;
	margin:-8px -16px -8px auto;
    border-radius: 12px;
    float: right;
    color: #262626;
}
.sticker-calc-quantities-container .custom_counts {
	padding-bottom: 0px;
	color: #000;
}

.sticker-calc-quantities-container .custom_counts label {
    width: 40%;
    background: #fff;
}

.sticker-calc-quantities-container .custom_count_input input {
	width: 43%;
    padding: 6px 16px;
    margin: -6px 20px -6px -6px;
    border-radius: 12px;
    color: #fff;
    background: #085ef7;
}

.sticker-calc-upload-container {

}

.sticker-calc-upload-container input[type="radio"],
.sticker-calc-materials-column input[type="radio"] {
	clip: rect(0 0 0 0);
	clip-path: inset(100%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}
.sticker-calc-upload-container input[type="radio"]:disabled + label,
.sticker-calc-materials-column input[type="radio"]:disabled + label {
	display: none;
}

.variations_form .upload_file .choice-file {

}
.variations_form  .fileUpload {
	position: relative;
	overflow: hidden;
	float: left;
	width: 80px;
	height: 28px;
	margin: 0;
	padding: 0;
	font-size: 10px;
	line-height: 28px;
	text-transform: none;
	font-weight: normal;
	letter-spacing: -1px;
	border-radius: 3px;
	background: #f5463b;
}
.variations_form  .fileUpload input.upload {
	position: absolute;
	top: 0;
	right: 0;
	margin: 0;
	padding: 0;
	font-size: 20px;
	cursor: pointer;
	opacity: 0;
	filter: alpha(opacity=0);
}
.woocommerce.single-product div.product form.cart .variations td.value .reset_variations {
	display: none !important;
}
.variations_form .fileUpload {

}
.variations_form #uploadFile {
	float: right;
	width: 225px;
	height: 26px;
	padding: 0 5px;
	border: solid 1px #dedede;
	background: #fff;
	font-size: 10px;
}
.variations_form .supported_format {
	display: block;
	clear: both;
	margin-bottom: 5px;
	font-size: 10px;
	color: #000;
}

.comment_for_sticker {
	line-height: 12px;
}

.variations_form .comment_for_sticker textarea {
	padding: 10px 16px;
    margin-top: 12px;
    border-radius: 8px;
    font-size: 14px;
    line-height: 16px;
    transition: height 0.2s ease;
    resize: none;
}

.variations_form .woocommerce-variation-add-to-cart {
	clear: both;
}
.woocommerce.single-product div.product form.variations_form  .button {
    background: #262626;
    font-family: 'Bounded Variable';
    font-size: 22px;
    padding: 12px;
	border-radius: 16px;
	transition: all 0.3s ease;
}

.woocommerce.single-product div.product form.variations_form  .button:hover {
	background: #ff3600;
}

@media (max-width: 940px) {
	.woocommerce.single-product div.product form.variations_form  .button {
	width: 100%;
}}

.woocommerce.single-product div.product form.variations_form  .button:after {
	display: none;
}
.woocommerce.single-product div.product form.variations_form  div.quantity,
.woocommerce.single-product div.product form.variations_form .woocommerce-variation-add-to-cart .quantity,
.sticker-calc-upload-container .woocommerce-variation-add-to-cart .quantity {
	display: none !important;
}

/* Скрываем кнопку добавления в корзину в single_variation_wrap (автоматически генерируемая) */
.single_variation_wrap .woocommerce-variation-add-to-cart {
	display: none !important;
}
.woocommerce.single-product div.product form.variations_form  div.quantity input {
		padding: 0 5px;
}
.woocommerce .single-product div.product form.variations_form div.quantity .tm-qty-minus:before,
.woocommerce.single-product div.product form.variations_form div.quantity .tm-qty-minus:before,
.woocommerce .single-product div.product form.variations_form div.quantity .tm-qty-plus:before,
.woocommerce.single-product div.product form.variations_form div.quantity .tm-qty-plus:before {
	position: relative;
	top: -15px;
}
.variations_form .recomend {
	float: right;
    color: #ff3600;
}

.variations_form .loader_ajax {
	display: none;
}

.loader_ajax__image {
	vertical-align: middle;
	margin-left: 10px;
}

/*****************************************************/
/*.stickers-list-bg {
	margin-bottom: 20px;
}*/
.woocommerce div.product div.summary {
	margin-bottom: 0;
}
.woocommerce.single-product div.product  .variations_form.cart {
	margin-bottom: 0;
}
form.variations_form.cart.row {
    background: #F5F5F5;
    border-radius: 16px;
}
.wishlist_compare_button_block {
	display: none;
}
.calc-row-form .help,
.sticker-calc-upload-container .help,
.sticker-calc-header .help {
	position: relative;
}

.calc-row-form .help::before,
.sticker-calc-upload-container .help::before,
.sticker-calc-header .help::before {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f05a";
	font-size: 16px;
	color: #095EF7;
	line-height: 14px
}

.calc-row-form .help .help-text,
.sticker-calc-upload-container .help .help-text,
.sticker-calc-header .help .help-text {
	position: absolute;
    z-index: 10;
    background: #fff;
    color: #000;
    width: 280px;
    padding: 20px;
    border-radius: 16px;
    line-height: normal;
    display: none;
    font-size: 14px;
    box-shadow: 0px 4px 40px 0px #0000001A;
    left: 30px;
    top: -22px;
}

/* Стили для заголовков в подсказках */
.help-title {
    margin-bottom: 6px;
    font-size: 16px;
    line-height: 1;
    display: block;
    font-weight: 600;
}
.calc-row-form .help:hover .help-text,
.sticker-calc-upload-container .help:hover .help-text,
.sticker-calc-header .help:hover .help-text {
	display: block;
}
.woocommerce.single-product div.product {
	margin-top: 0;
}

.woocommerce.single-product div.product .single_product_wrapper .summary.entry-summary {
	padding-left: 0;
}

.woocommerce div.product form.cart .variations td {
	overflow: visible;
}
.mini_cart_item_title {
	font-size: 14px;
}


/**
 * Копирование в буфер обмена
 */
.calc-row-form .header_text,
.sticker-calc-quantities-container .header_text {
	position: relative;
}

.header_text .copy-price-btn {
    position: absolute;
    right: 14px;
    bottom: 18px;
    color: #dadada;
    background: none;
    font-size: 18px;
}

.header_text .copy-price-btn:hover {
	color: #095EF7;
}

.copy-price-btn {
	appearance:  none;
	margin: 0;
	padding: 0;
	border:  none;
}

.copy-price-btn:hover .qo-tooltip,
.copy-price-btn:focus .qo-tooltip {
	display: block;
}

.copy-price-btn:disabled .copy-price-btn__icon {
	opacity: .5;
}
.copy-price-btn__icon {
	display: inline-block;
	vertical-align: middle;
	fill: currentColor;
	width: 14px;
	height: 14px;
}
.copy-price-btn .qo-tooltip {
	text-transform: none;
	z-index: 15;
}
.copy-price-btn .qo-tooltip__text {
	left: auto;
	right: -12px;
	background-color: #262626;
    font-size: 14px;
}
.copy-price-btn .qo-tooltip--mini .qo-tooltip__text::after {
	left: auto;
	right: 15px;
	border-color: transparent transparent #000 transparent;
}

.copy-price-btn.is-copied .qo-tooltip__text {
	background-color: #4caf50;
}
.copy-price-btn.is-copied .qo-tooltip--mini .qo-tooltip__text::after {
	border-color: transparent transparent #4caf50 transparent;
}

@media (min-width: 940px) {
	.variations_form .fields-sizes-count {
		padding-left: 0;
	}

	.sticker-calc-sizes-container,
	.sticker-calc-quantities-container {
	    margin-top: 0;
	}

}


@media (max-width: 1200px) {
	.woocommerce .site-content_wrap.container {
		max-width: 99%;
	}
	.calc-row-form .help .help-text,
	.sticker-calc-upload-container .help .help-text {
		left: 20px;
	}
}

@media (max-width: 770px) {
	.stickers-list-bg {
		margin-top: 20px;
	}
	.calc-row-form {
		position: relative;
		width: 100%;
	}
	.calc-row-form:after {
		clear: both;
	}
	div.wcuf_single_upload_field_container
	{margin-top: 0px;
	display: block;
	clear: both;}
	.sticker-calc-upload-column {

	width: 100%;
	display: block;
	margin: 0 auto;
	float: none;
	}
	.calc-row-form .single_variation_wrap {
		position: relative;
		bottom: 0px;
		float: right;
	}

	/* Адаптивные стили row-info-shipping удалены */
}

@media (max-width: 600px) {
	
	.woocommerce.single-product div.product .variations_form.cart {
		margin-bottom: 0;
		position: static;
		min-height: 100%;
	}
}
@media (max-width: 400px) {
	.sticker-calc-upload-column, .sticker-calc-quantities-container, .sticker-calc-sizes-container  {
		width: 100%;
	}

}

/* Стили для кнопки во время расчета */
.woocommerce.single-product div.product form.variations_form .button.loading {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Удаление стрелочек (spinner) из полей ввода типа number */
/* Chrome, Safari, Edge, Opera */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type="number"] {
    -moz-appearance: textfield;
}

/* Дополнительная специфичность для полей размера */
.sticker-calc-sizes-container input[name="custom_width"],
.sticker-calc-sizes-container input[name="custom_height"] {
    -moz-appearance: textfield;
}

.sticker-calc-sizes-container input[name="custom_width"]::-webkit-outer-spin-button,
.sticker-calc-sizes-container input[name="custom_width"]::-webkit-inner-spin-button,
.sticker-calc-sizes-container input[name="custom_height"]::-webkit-outer-spin-button,
.sticker-calc-sizes-container input[name="custom_height"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Стили для состояния focus полей размеров */
.sticker-calc-sizes-container input[name="custom_width"]:focus,
.sticker-calc-sizes-container input[name="custom_height"]:focus,
.sticker-calc-quantities-container input[name="custom_count"]:focus {
    background: #fff;
    border: 2px solid #dadada;
    color: #262626;
	padding: 4px 14px;
    outline: none;
	box-shadow: none;
}
.qo-upload--in-product .qo-upload__plate {
	border-color: #262626;
}
.qo-upload--in-product .qo-upload__title {
	color: #262626;
	font-size: 18px;
}
.qo-upload--in-product img.icon-upload {
	filter: brightness(0) saturate(100%);
}

/* Анимация огня для иконки recomend */
@keyframes fire-dance {
	0% { 
		transform: rotate(0deg) scaleX(1) scaleY(1); 
		filter: brightness(1.1);
	}
	12% { 
		transform: rotate(-4deg) scaleX(1.15) scaleY(1.1); 
		filter: brightness(1.3);
	}
	25% { 
		transform: rotate(3deg) scaleX(1.2) scaleY(1.15); 
		filter: brightness(1.2);
	}
	37% { 
		transform: rotate(-2deg) scaleX(1.1) scaleY(1.08); 
		filter: brightness(1.4);
	}
	50% { 
		transform: rotate(5deg) scaleX(1.25) scaleY(1.2); 
		filter: brightness(1.1);
	}
	62% { 
		transform: rotate(-3deg) scaleX(1.18) scaleY(1.12); 
		filter: brightness(1.3);
	}
	75% { 
		transform: rotate(2deg) scaleX(1.12) scaleY(1.06); 
		filter: brightness(1.25);
	}
	87% { 
		transform: rotate(-1deg) scaleX(1.08) scaleY(1.04); 
		filter: brightness(1.2);
	}
	100% { 
		transform: rotate(0deg) scaleX(1) scaleY(1); 
		filter: brightness(1.1);
	}
}

.variations_form .recomend.fire-animate {
	animation: fire-dance 1s ease-in-out;
	transform-origin: center bottom;
	display: inline-block;
}