#image-block, #image-block-viewer2d, #image-block-builder2d{
	margin-bottom: 10px;
}

.pb-left-column #thumbs_list{
	width: 200px;
}

.pb-left-column #image-block #view_full_size .span_link, .pb-left-column #image-block-viewer2d #view_full_size-viewer2d .span_link{
	z-index: 5000;
}

.pb-left-column #image-block img, .pb-left-column #image-block-viewer2d img{
	background: none !important;
}

#configurator_preview{
    z-index : 6000;
}

#configurator_preview.loading:not(.scroll-to-fixed-fixed) {
	position: relative !important;
}

@media(max-width: 992px) {
	#configurator_preview_clear::before, #configurator_preview_clear::after {
		content: " ";
		display: table;
	}
	#configurator_preview_clear::after {
		clear: both;
	}
	#configurator_preview_clear::before, #configurator_preview_clear::after {
		content: " ";
		display: table;
	}
}

#configurator_preview{
    width: 100%;
}

#configurator_block .error-step p {
	font-weight: bold;
	color: #f13340;
}

#configurator_block .info_text p{
    color:#232323;
    margin-top: -10px;
}

#configurator_block .info-step p {
	font-weight: bold;
	color: #C96E21;
}

#configurator_block .step_list label.title {
    margin-bottom: 15px;
    display: block;
    float: left;
    padding-top: 5px;
}

#configurator_block .step_list label .step_title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1rem;
    margin-bottom: 0;
    padding: 7px 0;
    text-transform: uppercase;
}

#configurator_block .step_list label .step_title .material-icons {
    margin-left:-30px;
}

#configurator_block input[type=number]::-webkit-outer-spin-button,
#configurator_block input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: inner-spin-button !important;
}

.dmicons:after{
    content: "";
    background: url(../img/icon/chevron_right.png) no-repeat 0px 0px / 10px 10px;
    display: block;
    position: absolute;
    z-index: 1;
    width: 10px;
    height: 10px;
    left: -12px;
    top: 10px;
}

#configurator_block sup{
    font-weight: bold;
    color: #f13340;
    font-size: 17px;
    top: -3px;
}

#configurator_block .display-step-amount {
    background: white none repeat scroll 0 0;
    border: 1px solid #c8c8c8;
    border-radius: 3px;
    color: #333;
    display: inline-block;
    float: right;
    font-size: 14px;
    top:-2px;
    padding: 3px;
    position: relative;
    min-width: 100px;
    text-align: center;
}

#configurator_block .display-step-amount::before {
    background: rgba(0, 0, 0, 0) linear-gradient(to right, #fff 0%, #d2d2d2 100%) repeat scroll 0 0;
    content: "";
    display: block;
    height: 1px;
    position: absolute;
    right: 100%;
    top: 50%;
    width: 100%;
}

#configurator_block .page-heading{
	margin-top: 0;
}

#configurator_block .page-heading .required{
    text-transform: none;
    font-size: 14px;
    font-weight: normal;
}

#configurator_block .step_list div > span{
    top: 0;
}

#configurator_block .info,
#configurator_block .info-fb{
    cursor: pointer;
    padding: 2px 4px;
    margin-left: 3px;
    font-size: 12px;
    background: #C96E21;
    color: white;
    border-radius: 3px;
    font-weight: bold;
}

#configurator_block .option_block{
    background: #fff none repeat scroll 0 0;
    cursor: pointer;
    float: left;
    font-size: 14px;
    margin-bottom: 5px;
    margin-right: 8px;
    position: relative;
    text-align: center;
}

#configurator_block .option_block .configurator-zoom{
	position: absolute;
	background: #000;
	top: 0;
	right: 0;
	color: #fff;
	font-size: 16px;
	padding: 4px 5px;
	cursor: pointer;
	display: none;
}

#configurator_block .option_block:hover .configurator-zoom{
	display: block;
}

#configurator_block .option_block.color:hover .configurator-zoom{
	display: none;
}

#configurator_block .quantity_wanted input{
    margin: -1px 0 auto;
    text-align: center;
}

#configurator_block .custom .quantity_wanted input{
    max-width: 175px;
}

#configurator_block .quantity_wanted input.qty-inline{
	margin: 0;
	display: inline-block;
}

#configurator_block .option label{
	cursor: pointer;
}

#configurator_block .option .quantity_wanted{
    display: inline-block;
    position: relative;
    top: 10px;
	margin: 0;
}

#configurator_block .option_block .quantity_wanted{
	margin-bottom: 0;
}

#configurator_block .label.totalprice {
	font-size: 92%;
}

#configurator_block .option_block .label.totalprice {
	margin-top: 15px;
}

#configurator_block .option_block.custom.selected .label.totalprice {
	margin-top: 11px;
}

#configurator_block .option_block.colortexture .label.totalprice {
	max-width: 113px;
}

#configurator_block .option_block .option_block_content{
	position: relative;
	margin: 0 auto;
}

#configurator_block .option_block .option_block_content .label{
    display: block;
    margin-left: 0;
    margin-top: 15px;
}

#configurator_block .option_block .option_block_content .label:empty {
    display: none;
}

#configurator_block .option_group .label{
	padding: 3px;
}

#configurator_block .option_group.disabled::after {
    content: '';
    background: #000;
    opacity: 0.1;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 99999;
    cursor: no-drop;
}

#configurator_block .option_block.colortexture .option_block_content .label{
    bottom: 1px;
    font-size: 12px;
    left: 1px;
    margin: 0;
    position: absolute;
    right: 1px;
    top: auto;
    z-index: 1;
    background: white;
    padding-right:26px;
    font-weight: bold;
}

#configurator_block .option_block.colortexture.selected .option_block_content .label{
    bottom: 0;
    left: 0;
    right: 0;
}

#configurator_block .step_group .table .row-title{
    display: block;
    text-align: right;
}

#configurator_block .step_group .table .col-title{
    display: block;
    text-align: left;
}

#configurator_block .step_group .table thead > tr > td,
#configurator_block .step_group .table tbody > tr > td.table-cell{
    text-align: center;
    padding-left: 8px;
    vertical-align: middle;
    line-height: 9px;
}

#configurator_block .step_group td.selected{
    background-color: #ddf9e1;
    color: #35b33f;
}

#configurator_block .step_group td.table-cell{
    cursor: pointer;
}

#configurator_block .option_block.selected .option_block_content::after {
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAYAAAAi2ky3AAAAiElEQVQokaXPwQ3DMAgF0D9LVugKhItlxvBOHQBbynBeITm0qSKRpOAg/dvnCYDBYZXCml6j+wCAucnCTVauuZMmeobsqbmHLzPIHpXyK7FKIU1TFJmbLLb0+dlgMeTw8xFzIQDANXdT/GJuBABIE51iFzlFotgt4sVcyD8shFxhQ4jF8tu7swGui+otf3QUOQAAAABJRU5ErkJggg==);
    border-radius: 30px;
    bottom: -7px;
    color: #46a74e;
    content: " ";
    display: block;
    font-family: "FontAwesome";
    font-size: 25px;
    position: absolute;
    right: -9px;
    z-index: 1;
    height: 30px;
    width: 30px;
    background-repeat: no-repeat;
    border: 2px solid;
    background-color: white;
    background-position: center center;
}

.form-group.form-ok.quantity_wanted input.qty{
    background: none;
    background-color: #ddf9e1;
}

.form-group.form-error.quantity_wanted  input.qty{
    background: none;
    background-color: #fff1f2;
    padding: 3px 5px;
}

#configurator_block .option_block.colortexture .option_block_content{
    height: 100px;
    width: 100%;
}

#configurator_block .option_block.colortexture img{
	width: 100%;
	height: 100px;
}

#configurator_block .option_block.custom{
    min-height: 175px;
    width: 125px;
}

#configurator_block .option_block .option_img > img{
    width: 100%;
}

#configurator_block .option_block.colortexture .option_img{
	width: 100px;
	height: 100%;
    border: 1px solid #d6d4d4;
}

#configurator_block .option_block.selected .option_img{
    border: none;
}

#configurator_block .option_block.custom .option_img{
	height: 120px;
	overflow: hidden;
}

#configurator_block .option_block.custom .option_block_content{
    border: 1px solid #d6d4d4;
}

#configurator_block .option_block.selected .option_block_content{
    border: 1px solid #46a74e;
}

#configurator_block .step-color-texture .option_block, #configurator_block .step-color-texture .option_block .option_img {
    min-height: auto;
    width: 100px;
    height: 100px;
}

#configurator_block .option_block img{
    margin: 0 auto;
	max-height: 100%;
}

#configurator_block div.checker{
    display: inline-block;
}

#configurator_block .step_options hr{
    border-style: solid none none;
    border-color: #f0f0f0;
    margin: 8px 0;
}

#configurator_block .step_options.collapsing,
#configurator_block .step_options.in{
    padding-left: 25px;
}

#configurator_block .step_options.in{
    border-left: 2px solid #C96E21;
}

#configurator_block > .col-md-3{
    position: static;
}

#configurator_preview .dl-horizontal dt{
    text-align: left;
    width: 125px;
}

#configurator_preview .dl-horizontal dd{
    margin-left: 130px;
}

#configurator_preview .dl-final-price dt{
    margin-top: 4px;
}

#configurator_preview #final_price,
#configurator_preview #old_price{
    font-weight: bold;
    font-size: 18px;
	display: inline-block;
}

#configurator_preview #old_price{
	text-decoration: line-through;
}

#configurator_preview .list-group {
    max-height: 300px;
    overflow: auto;
}

@media(max-width: 992px) {
    #configurator_preview #configurator-progress { display:none; }
    #configurator_preview .list-group { max-height: 100px; }
    #configurator_preview .list-group .list-group-item { padding:0px 10px; }
    #configurator_preview .list-group .list-group-item strong { display:inline-block; }
}

#configurator_preview .advantage{
	color: #b53930;
}

#configurator_preview dt.advantage{
	white-space: normal;
	margin-top: -5px;
}

#configurator_preview { background:#fff; padding:20px; border-top: 1px solid rgb(170, 170, 170); box-shadow: 0px 0px 7px 3px rgba(0,0,0,.2); }
#configurator_preview .dl-final-price dt { display:inline-block; width:50%; }
#configurator_preview .dl-final-price dd { display:inline-block; width:47%; text-align:right; margin:0; }

.button.configure_link {
	font: 700 17px/21px Arial, Helvetica, sans-serif;
	color: #fff;
	padding: 0;
	border: none;
	margin: 0 7px 10px;
	border-radius: 8px;
	overflow: hidden;
}

.button.configure_link span {
    border: none;
    padding: 12px 20px;
    display: block;
    background: #46a74e;
    text-shadow: none;
    border-radius: 8px;
    transition: all .25s ease;
}

.button.configure_link:hover {
    border: none;
    transform: translateY(-1px);
}

.button.configure_link:hover span {
	filter: none;
	background: #3d9244;
	box-shadow: 0 4px 12px rgba(70,167,78,.35);
}

#buy_block .configure_link{
    width: 80%;
    text-align: center;
    display: block;
    margin: 15px auto;
}

.our_price_display .from_price{
    display: block;
}

#quantity-configurator-label { display:block; text-align:left; margin-top:5px; font-weight:700; font-size:13px; color:#555; }
.configurator-qty { display:block; width:auto; float:none; }
.configurator-qty .form-group { margin-bottom:5px; }
.configurator-add button { width:100%; }

#order .cart_description ul.configurator li strong{
    color: #525252;
}

.loading{
	position: relative;
}

.loading:before{
	content: "";
	display: block;
	background-color: rgb(255, 255, 255);
	background-color: rgba(255, 255, 255, 0.5);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9000;
	background-image: url("../img/loader.gif");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 35% auto;
}

#configurator-progress{
    height: 80px;
    margin: 25px auto;
    position: relative;
    width: 80px;
}

#configurator-progress:after{
	content: "";
	background: url('../img/progress-bg.png') no-repeat 0px 0px / 100px 100px;
	display: block;
	position: absolute;
	z-index: 1;
	width: 100px;
	height: 100px;
	top: -10px;
	left: -10px;
}

#configurator-progress strong,
#configurator-progress canvas{
	position: relative;
	z-index: 2;
	color: #8b7f76;
	text-shadow: 0px 1px 30px rgba(250, 245, 239, 0.5);
}

#configurator-progress strong{
    font-size: 25px;
    left: 0;
    position: absolute;
    text-align: center;
    top: 29px;
    width: 100%;
}

#configurator-tabs {
    text-align: center;
    margin-bottom:20px;
}

#configurator-tabs li:hover,
#configurator-tabs li:active,
#configurator-tabs li:focus {
    text-decoration: none;
}

#configurator-tabs li {
    background: #eee none repeat scroll 0 0;
    color: #333;
    cursor: pointer;
    display: inline-block;
    line-height: 45px;
    padding: 0;
    text-align: center;
    border-right: 1px solid #cfcfcf;
    border-bottom: 1px solid #fff;
}

#configurator-tabs li:nth-last-child(-n + 1 of :not([data-display=false])) {
    border:none;
    border-radius: 0 7px 7px 0;
}

#configurator-tabs li:not([data-display=false]):first-child {
    border-radius: 7px 0 0 7px;
}

#configurator-tabs li:not([data-display=false]):only-child {
    border-radius: 7px 7px 7px 7px;
}

#configurator-tabs li[data-selected=true] {
    text-shadow: 1px 1px rgba(0, 0, 0, 0.2);
    background: #0088C2;
    color:white;
}

#configurator-tabs li[disabled] {
    opacity: 0.5;
    cursor: default;
}

#configurator_block.tabs {
    margin:0;
}

.accordion-opened { border-color: #3276b1; }
.configurator-tab-page { cursor: pointer; font-weight: 600; font-size: 15px; }
.accordion-opened .configurator-tab-page { background: #3276b1; color: #fff; }
.configurator-tab-page i { transform: rotate(90deg); }
.accordion-opened .configurator-tab-page i { transform: rotate(-90deg); }
.configurator-accordions-actions { text-align: center; margin: 1rem; }

#configurator_block label span.label-default {
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    background: rgba(201,110,33,.10);
    color: #C96E21;
    display:inline-block;
    margin-left:5px;
    padding: 2px 6px !important;
}

#configurator_block .form-group.form-error .form-control, .form-group.form-ok .form-control {
    padding-right: 30px;
}

#configurator_block .form-group.form-ok input, .form-group.form-ok textarea {
    border: 1px solid #46a74e;
    margin:0;
    border:none;
    color: #35b33f;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAOCAYAAAAi2ky3AAAAiElEQVQokaXPwQ3DMAgF0D9LVugKhItlxvBOHQBbynBeITm0qSKRpOAg/dvnCYDBYZXCml6j+wCAucnCTVauuZMmeobsqbmHLzPIHpXyK7FKIU1TFJmbLLb0+dlgMeTw8xFzIQDANXdT/GJuBABIE51iFzlFotgt4sVcyD8shFxhQ4jF8tu7swGui+otf3QUOQAAAABJRU5ErkJggg==) 98% no-repeat #ddf9e1;
}

#configurator_block .quantity_wanted.form-group.form-ok input:focus,
#configurator_block .quantity_wanted.form-group.form-error input:focus{
    outline: 0;
}

#configurator_block .form-group.form-error input, .form-group.form-error textarea {
    border: 1px solid #f13340;
    color: #f13340;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAj0lEQVQokZWRsQ2AMAwEvVLsFuEUzMIKzMIKrMBO6JkAGiJMYiOI5CaXK3Imug5SP4E7oeCAdWw4RJdd8gHWDSkPjeTxclmmll3OnRBYNwusXEuGj4SUB0+OBqLL/YeP8kP6KruSSb6GolPbrRcF+yW5Mljn4NEarirc4xUiCobUTw2s673yAsE6u+EKN9IJydM/ZmaVOVAAAAAASUVORK5CYII=) 98% no-repeat #fff1f2;
}

#configurator_block .input-group-addon {
    padding: 6px 12px;
    font-size: 13px;
    font-weight: normal;
    line-height: 1;
    text-align: center;
    background-color: #eeeeee;
    border: 1px solid #d6d4d4;
    border-radius: 0px;
    color: #777;
}

#configurator_block .option_input.form-group {
    height: auto;
}

#configurator_block .step_group.form-group {
    height: auto;
}

#configurator_block input {
    background: white;
    border: 1px solid #d6d4d4;
    margin-left: -1px;
}

#configurator_block .color, .custom-checkbox input[type="checkbox"] + span.color {
    width:100px;
    height:auto;
    margin-right: 2px;
    border-shadow:inherit !important;
}

#configurator_block .hidden {
    display: none;
}

#configurator_block .option_block.option_group.colortexture.color.selected {
    border: 1px solid #46a74e;
}

#configurator_block .option_block.option_group.colortexture.color.selected .option_block_content{
    border: none;
}

#configurator_block .color:hover {
	outline: 0;
	border: 0px solid;
}

#configurator_block .option_block.colortexture.selected .option_img {
    width:98px;
}

#configurator_block .color,#configurator_block .custom-checkbox input[type="checkbox"] + span.color {
    border:inherit;
}

#configurator_block .color.option_block.selected .option_block_content {
    height: 98px !important;
}

#configurator_block .step_group {
    border-left:18px solid #eeeeee;
    border-bottom:1px solid #eeeeee;
    padding-left:10px;
    padding-bottom:10px;
    position: relative;
}

#configurator_block .step_group.info-on-this-step {
    border-color: #C96E21;
}

#configurator_block .step_group.error-on-this-step {
    border-color: #f13340;
}

#configurator_block .step_group.info-on-this-step label.title .step_title .material-icons,
#configurator_block .step_group.error-on-this-step label.title .step_title .material-icons {
    color: white;
}

#configurator_block .step_group {
    margin-bottom: 25px;
}

#add_configurator_to_cart { padding: .5rem .7rem; }
#add_configurator_to_cart i { margin-right: 0; }
#add_configurator_to_cart span { font-size: .9rem; }
#tab-action-next-preview { margin-top: 1rem; }

.configurator_step_error { background: url(../img/icon/form-error.png) no-repeat; width: 14px; display: inline-block; height: 14px; margin-right: 5px; }

.step_group .uploader-webcam-block { position:relative; }
.step_group .uploader-webcam-block .uplaoder-webcam-actions { position:absolute; width:100%; text-align:center; bottom:25px; z-index:10; }
.step_group .uploader-webcam-block .uplaoder-webcam-actions .uploader-webcam-picture-btn { font-size: 40px; border-radius: 50%; padding: 10px 30px; }
.step_group .uploader-webcam-block.preview-on .uplaoder-webcam-actions .uploader-webcam-picture-btn { display:none; }
.step_group .uploader-webcam-block .webcam-preview { position: absolute; left: 0; width: 100%; }
.step_group .uploader-webcam-block.preview-on .uplaoder-webcam-actions .btn { padding: 5px 20px; font-size: 30px; }
.step_group .uploader-webcam-block.preview-off .uplaoder-webcam-actions .btn { display:none; }
.step_group .uploader-webcam-block.preview-off .uplaoder-webcam-actions .uploader-webcam-picture-btn { display:inline-block; }
.step_group .uploader-thumb { max-height: 50px; padding: 0 10px 0; }

.step_group .configurator-progress { height: .5rem; background: #f6f6f6; margin-top: .5rem; }
.step_group .configurator-progress .progress-bar { height: .5rem; background: #0087ff; }
.step_group .configurator-progress.configurator-upload-finished .progress-bar { background: #b1df9e; }
.step_group .alert-success .configurator-progress.configurator-upload-finished { display: none; }

.option_block .option_block_content { border: 1px }
.option_block .option_block_content .product-name { height: 80px; overflow: hidden; display: block; font-size: 13px; }

.dmviewer2d-dropzone { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999 !important; }
.dmviewer2d-dropzone-item { border-radius: 50%; display: block; position: absolute; border: rgba(0,100,200,0.5) dotted 1px; background: rgba(0,100,200,0.05); }
.dmviewer2d-dropzone-item img { vertical-align: top; }
.dmviewer2d-dropzone-item-hover, .dmviewer2d-dropzone-item-selected { display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.dmviewer2d-dropzone-hover { background: rgba(255,0,0,0.2) }
.dmviewer2d-step-dropzone .option_block .option_img { overflow: initial !important; }
.dmviewer2d-step-dropzone .option_block .option_img .ui-draggable.ui-draggable-dragging { z-index: 10000; width: 18px !important; }
.dmviewer2d-step-dropzone .quantity_wanted { display: none !important; }

.configurator-custom-left-column .configurator-product-cover .images-container .product-cover { display: block; }
.configurator-custom-left-column .viewer2d-cover-container, .configurator-custom-left-column .builder2d-cover-container { display: none; }
.configurator-custom-left-column #viewer2d-back-to-cover, .configurator-custom-left-column #builder2d-back-to-cover { display: block; }
.configurator-custom-left-column #viewer2d-back-to-cover button, .configurator-custom-left-column #builder2d-back-to-cover button { margin: .5rem auto; display: inherit; }
.configurator-custom-left-column[data-configurator-view="2d"] .configurator-product-cover .images-container .product-cover { display: none; }
.configurator-custom-left-column[data-configurator-view="2d"] .viewer2d-cover-container, .configurator-custom-left-column[data-configurator-view="2d"] .builder2d-cover-container { display: block; }
.configurator-custom-left-column[data-configurator-view="2d"] #viewer2d-back-to-cover, .configurator-custom-left-column[data-configurator-view="2d"] #builder2d-back-to-cover { display: none; }

.hide-btn {
    display: none !important;
}

.configurator-quantity-minus, .configurator-quantity-plus {
    padding: .625rem .7rem !important;
}

.quantity_wanted input::-webkit-outer-spin-button,
.quantity_wanted input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.quantity_wanted input[type=number] {
    -moz-appearance:textfield;
}

.btn-configurator {
    color: #000 !important;
    background: #ddd !important;
}

.configurator-ral-list li{
    float: left;
    width: 100px;
    padding: 10px;
}

.configurator-ral-attribute{
    width: 80px;
    height: 50px;
    cursor: pointer;
}

#configurator_block input[readonly=readonly] {
    background-color: #f6f6f6;
    cursor: pointer;
}

#configurator_block .btn-configurator-ral {
    cursor: pointer;
    background: #C96E21;
    color: white;
    font-weight: bold;
    border-radius: 4px;
    transition: background .2s ease;
}

#configurator_block .btn-configurator-ral:hover {
    background: #b5601c;
}

.badge-reduction {
    background-color: #f39d72;
    font-weight: 700;
    padding: .3125rem .4375rem;
    text-transform: uppercase;
    color: #fff;
    font-size: 1rem;
}

#configurator_block {
  text-align: left !important;
}

#configurator_block .configurator-heading{
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  margin: 6px 0 16px;
  text-align: left;
  color: #333;
}

#configurator_block .configurator-heading::before,
#configurator_block .configurator-heading::after{
  content: none !important;
  display: none !important;
}

#configurator_block .step_group{
  border-left: 0 !important;
  border-bottom: 0 !important;
  border: 1.5px solid #d5d5d5 !important;
  border-left: 2px solid rgba(201,110,33,.45) !important;
  border-radius: 8px !important;
  background: #fff !important;
  padding: 14px 16px !important;
  margin-bottom: 18px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: box-shadow .2s ease, border-color .2s ease;
}

#configurator_block .step_group:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,.09);
  border-left-color: #C96E21 !important;
}

#configurator_block .step_list label.title{
  float: none !important;
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 0 10px !important;
  padding-top: 0 !important;
}

#configurator_block .step_list label .step_title{
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: .02em;
}

#configurator_block .step_list label .step_title .material-icons{
  margin-left: 0 !important;
}

#configurator_block .dmicons:after{
  content: none !important;
  display: none !important;
}

#configurator_block sup{
  display: none !important;
}

/* ── RADIOS & CHECKBOXES CUSTOM ── */

#configurator_block input[type="radio"] {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  border: 2px solid #ccc !important;
  border-radius: 50% !important;
  outline: none !important;
  cursor: pointer !important;
  transition: all .2s ease !important;
  position: relative !important;
  background: #fff !important;
  margin: 2px 6px 0 0 !important;
  vertical-align: middle !important;
}

#configurator_block input[type="radio"]:hover {
  border-color: #C96E21 !important;
}

#configurator_block input[type="radio"]:checked {
  border-color: #C96E21 !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 5px #C96E21 !important;
}

#configurator_block input[type="checkbox"] {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  border: 2px solid #ccc !important;
  border-radius: 4px !important;
  outline: none !important;
  cursor: pointer !important;
  transition: all .2s ease !important;
  position: relative !important;
  background: #fff !important;
  margin: 2px 6px 0 0 !important;
  vertical-align: middle !important;
}

#configurator_block input[type="checkbox"]:hover {
  border-color: #C96E21 !important;
  box-shadow: 0 0 0 3px rgba(201,110,33,.12) !important;
}

#configurator_block input[type="checkbox"]:checked {
  border-color: #C96E21 !important;
  background: #C96E21 !important;
}

#configurator_block input[type="checkbox"]:checked::after {
  content: '✓' !important;
  position: absolute !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  line-height: 1 !important;
}

#configurator_block .label.label-info{
  background: #C96E21 !important;
  border-color: #C96E21 !important;
  color: #fff !important;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}

#configurator_block .label.label-info:hover{
  filter: brightness(0.95);
}

#configurator_block .label.label-info{
  font-size: 0 !important;
  padding: 2px 6px;
}

#configurator_block .label.label-info::after{
  content: "Plus d'infos";
  font-size: 12px;
}

#configurator_block .label.label-info:hover::after{
  content: "Plus d'infos";
}

/* Animation pulsation subtile pour attirer l'oeil */
@keyframes cpcm-pulse-info {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,110,33,.0); }
  50% { box-shadow: 0 0 8px 3px rgba(201,110,33,.30); }
}

#configurator_block .label.label-info{
  background: #fff !important;
  border: 1px solid #C96E21 !important;
  color: #C96E21 !important;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
  animation: cpcm-pulse-info 2.5s ease-in-out infinite !important;
  border-radius: 4px;
}

#configurator_block .label.label-info:hover{
  background: rgba(201,110,33,.12) !important;
  animation: none !important;
  box-shadow: 0 0 10px 3px rgba(201,110,33,.25) !important;
}

#configurator_block label.title{
  display: flex;
  align-items: center;
  gap: 16px;
}

#configurator_block .info-text{
  margin-bottom: 12px !important;
}

#configurator_preview{
  border: 1px solid #e0e0e0 !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.08) !important;
  background: #fafafa !important;
  padding: 20px !important;
}

#configurator_preview .row{
  display: flex !important;
  gap: 24px !important;
  align-items: flex-start !important;
}

#configurator_preview .row > [class*="col-"]{
  float: none !important;
}

#configurator_preview .page-subheading{
  margin: 0 0 10px !important;
  font-weight: 800 !important;
}

#configurator_preview ul{
  margin: 0 !important;
  padding-left: 18px !important;
}

#configurator_preview ul li{
  margin: 4px 0 !important;
}

#configurator_preview dl{
  margin: 0 !important;
}

#configurator_preview dt,
#configurator_preview dd{
  line-height: 1.25 !important;
}

#configurator_preview dt{
  white-space: nowrap !important;
  font-weight: 700 !important;
}

#configurator_preview dd{
  margin: 0 !important;
  text-align: right !important;
  width: 100% !important;
}

/* ── ZONE PRIX : tout aligne a gauche, empile verticalement ── */

#configurator_preview .dl-horizontal,
#configurator_preview .dl-final-price {
  display: block !important;
  text-align: left !important;
}

#configurator_preview .dl-horizontal dt,
#configurator_preview .dl-final-price dt {
  display: block !important;
  float: none !important;
  width: auto !important;
  text-align: left !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  color: #555 !important;
  margin: 0 0 2px 0 !important;
  padding: 0 !important;
}

#configurator_preview .dl-horizontal dd,
#configurator_preview .dl-final-price dd {
  display: block !important;
  float: none !important;
  text-align: left !important;
  margin: 0 0 4px 0 !important;
  padding: 0 !important;
}

/* Prix barre (ancien prix) */
#configurator_preview #old_price {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #b0b0b0 !important;
  text-decoration: line-through !important;
}

/* Badge remise : orange harmonise */
#configurator_preview .badge-reduction {
  display: inline-block !important;
  margin: 0 4px 0 0 !important;
  justify-self: start !important;
  background: rgba(201,110,33,.12) !important;
  color: #C96E21 !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  padding: 2px 8px !important;
  border-radius: 4px !important;
}

/* Prix final — gros, orange marque, impactant */
#configurator_preview #final_price {
  font-size: 26px !important;
  font-weight: 800 !important;
  color: #C96E21 !important;
  letter-spacing: -.02em !important;
}

/* Separateurs */
#configurator_preview .dl-horizontal {
  margin-top: 14px !important;
  padding-top: 14px !important;
  border-top: 1px solid #eee !important;
}

#configurator_preview hr {
  margin: 10px 0 !important;
  border-color: #eee !important;
}

/* ── QUANTITE : aligne a gauche ── */

#configurator_preview_buttons {
  width: 100% !important;
}

#quantity-configurator-label {
  display: block !important;
  text-align: left !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  color: #555 !important;
  margin: 0 0 6px 0 !important;
}

.configurator-qty {
  display: block !important;
  width: auto !important;
  float: none !important;
  text-align: left !important;
}

.configurator-qty .form-group {
  display: block !important;
  margin: 0 0 12px 0 !important;
  text-align: left !important;
}

#quantity-configurator {
  max-width: 80px !important;
  text-align: center !important;
  height: 32px !important;
  border: 1.5px solid #aaa !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  float: none !important;
  margin: 0 !important;
  display: block !important;
}

/* Forcer le form entier a gauche */
#configurator_preview_buttons form {
  text-align: left !important;
}

#configurator_preview_buttons .configurator-qty {
  float: none !important;
  display: block !important;
  width: auto !important;
  text-align: left !important;
}

/* Bouton ajouter au panier — design moderne vert */
@keyframes cpcm-pulse-cart {
  0%, 100% { box-shadow: 0 0 0 0 rgba(70,167,78,.0); }
  50% { box-shadow: 0 0 10px 4px rgba(70,167,78,.25); }
}

.configurator-add button {
  width: 100% !important;
  background: #46a74e !important;
  border: none !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  padding: 14px 20px !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: all .25s ease !important;
  text-transform: uppercase !important;
  letter-spacing: .03em !important;
  animation: cpcm-pulse-cart 3s ease-in-out infinite !important;
}

.configurator-add button:hover {
  background: #3d9244 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(70,167,78,.35) !important;
  animation: none !important;
}

.configurator-add button:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 8px rgba(70,167,78,.25) !important;
}

#configurator_preview_buttons button i,
#configurator_preview_buttons button .material-icons {
  vertical-align: middle !important;
  margin-right: 8px !important;
}

#configurator_preview ul li:empty {
  display: none !important;
}

#configurator_preview ul li {
  margin: 3px 0 !important;
}

#configurator_preview_buttons .form-group{
  display: block !important;
  margin: 0 0 12px 0 !important;
}

#configurator_preview_buttons label{
  display: block !important;
  text-align: left !important;
  justify-self: start !important;
}

#configurator_preview_buttons input{
  justify-self: start !important;
  width: 80px !important;
  max-width: 80px !important;
  text-align: center !important;
}

/* ── Inputs configurateur : empilement vertical + largeur compacte ── */

/* Espacement entre les champs empiles */
#configurator_block .option_input.option_group {
  margin-bottom: 8px !important;
}

/* ═══════════════════════════════════════════════════════════════
   MODERNISATION UI 2026 V5 — Select, Quantite, Inputs Dimensions
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. SELECT / LISTE DEROULANTE (uniform.js override) ── */

/* Le vrai select (invisible, sous uniform) — on le garde fonctionnel */
#configurator_block select.select_option {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  font-size: 13px !important;
  font-family: inherit !important;
  cursor: pointer !important;
}

/* Options dans la liste deroulante native : meme police */
#configurator_block select.select_option option,
#configurator_block select.select_option optgroup {
  font-size: 13px !important;
  font-family: inherit !important;
  font-weight: normal !important;
  color: #333 !important;
}

/* --- Conteneur visuel uniform.js : div.selector --- */
#configurator_block div.selector {
  background-color: rgba(201,110,33,.10) !important;
  background-image: none !important;
  border: 1.5px solid #46a74e !important;
  border-radius: 6px !important;
  height: 34px !important;
  line-height: 34px !important;
  padding: 0 0 0 10px !important;
  overflow: hidden !important;
  max-width: 480px !important;
  width: 100% !important;
  transition: all .25s ease !important;
  cursor: pointer !important;
}

/* Texte + carre gris fleche a droite (span uniform) */
#configurator_block div.selector span {
  display: block !important;
  width: 100% !important;
  color: #333 !important;
  font-size: 13px !important;
  font-family: inherit !important;
  font-weight: normal !important;
  height: 34px !important;
  line-height: 34px !important;
  padding-right: 36px !important;
  text-shadow: none !important;
  /* Carre gris a droite + chevron gris fonce */
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%23555' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E"),
    linear-gradient(to right, #d0d0d0 0, #d0d0d0 1px, #e8e8e8 1px) !important;
  background-repeat: no-repeat, no-repeat !important;
  background-position: right 11px center, right 0 top !important;
  background-size: 10px 6px, 34px 100% !important;
}

/* Select invisible (par-dessus div.selector) : meme hauteur */
#configurator_block div.selector select {
  height: 34px !important;
  font-size: 13px !important;
  font-family: inherit !important;
}

/* Hover : fond orange plus marque + zoom */
#configurator_block div.selector.hover,
#configurator_block div.selector:hover {
  background-color: rgba(201,110,33,.25) !important;
  background-image: none !important;
  border-color: #C96E21 !important;
  box-shadow: 0 2px 8px rgba(201,110,33,.18) !important;
  transform: scale(1.02) !important;
}

#configurator_block div.selector.hover span,
#configurator_block div.selector:hover span {
  background: transparent !important;
}

/* Focus */
#configurator_block div.selector.focus,
#configurator_block div.selector:focus-within {
  border-color: #C96E21 !important;
  background: rgba(201,110,33,.08) !important;
  box-shadow: 0 0 0 2px rgba(201,110,33,.15) !important;
}

/* Active : ouverture — memes backgrounds que normal */
#configurator_block div.selector.active span,
#configurator_block div.selector.focus span,
#configurator_block div.selector.hover.active span,
#configurator_block div.selector.focus.active span {
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%23555' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E"),
    linear-gradient(to right, #d0d0d0 0, #d0d0d0 1px, #e8e8e8 1px) !important;
  background-repeat: no-repeat, no-repeat !important;
  background-position: right 11px center, right 0 top !important;
  background-size: 10px 6px, 34px 100% !important;
}

/* Etat valide */
#configurator_block .form-ok div.selector {
  border-color: #46a74e !important;
}

/* Etat erreur */
#configurator_block .form-error div.selector {
  border-color: #f13340 !important;
}

/* ── 2. SELECTEUR DE QUANTITE — stepper compact ── */

/* step_options : PAS de flex global (casse les radios/checkbox) */

/* Select col : inline-block, 50% largeur */
#configurator_block .step_options > .col-lg-6 {
  float: none !important;
  display: inline-block !important;
  vertical-align: middle !important;
  padding-left: 0 !important;
}

#configurator_block .step_options > .col-lg-6:first-child {
  width: 50% !important;
  max-width: 480px !important;
}

/* Quantite col : juste la taille du stepper, colle au select */
#configurator_block .step_options > .col-lg-6:last-child {
  width: auto !important;
  padding-left: 20px !important;
}

#configurator_block .quantity_wanted {
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

#configurator_block .quantity_wanted > label {
  display: inline-block !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #555 !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* Conteneur stepper : barre segmentee neutre */
#configurator_block .quantity_wanted .input-group {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  border: 1.5px solid #46a74e !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background-color: #fff !important;
  box-shadow: none !important;
  gap: 0 !important;
  transition: all .25s ease !important;
}

#configurator_block .quantity_wanted .input-group:hover {
  border-color: #C96E21 !important;
  background-color: rgba(201,110,33,.12) !important;
  box-shadow: 0 0 0 2px rgba(201,110,33,.12) !important;
}

#configurator_block .quantity_wanted .input-group .input-group-btn {
  display: flex !important;
  width: auto !important;
}

/* Boutons - et + */
#configurator_block .quantity_wanted .btn-configurator {
  width: 28px !important;
  height: 28px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #555 !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transition: background .15s, color .15s !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: none !important;
}

#configurator_block .quantity_wanted .btn-configurator:hover {
  background: rgba(201,110,33,.15) !important;
  color: #C96E21 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

#configurator_block .quantity_wanted .btn-configurator:active {
  background: #e0e0e0 !important;
  transform: none !important;
}

/* Chiffre quantite : separateurs verticaux */
#configurator_block .quantity_wanted input.qty,
#configurator_block .quantity_wanted input.qty.qty-inline {
  width: 32px !important;
  max-width: 32px !important;
  height: 28px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-left: 1px solid #d0d0d0 !important;
  border-right: 1px solid #d0d0d0 !important;
  border-radius: 0 !important;
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #333 !important;
  background: rgba(201,110,33,.10) !important;
  outline: none !important;
  box-shadow: none !important;
  -moz-appearance: textfield !important;
  transition: all .25s ease !important;
}

#configurator_block .quantity_wanted input.qty::-webkit-outer-spin-button,
#configurator_block .quantity_wanted input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/* Neutraliser TOTALEMENT le fond vert/rouge original */
#configurator_block .quantity_wanted.form-ok,
#configurator_block .quantity_wanted.form-error,
.form-group.form-ok.quantity_wanted,
.form-group.form-error.quantity_wanted {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Etats OK — pas de bordure verte, juste neutre */
#configurator_block .quantity_wanted.form-ok .input-group {
  border-color: #aaa !important;
}

#configurator_block .quantity_wanted.form-ok input.qty,
.form-group.form-ok.quantity_wanted input.qty {
  background: rgba(201,110,33,.10) !important;
  background-color: rgba(201,110,33,.10) !important;
  background-image: none !important;
  color: #333 !important;
}

#configurator_block .quantity_wanted.form-ok .btn-configurator {
  color: #555 !important;
}

/* Neutraliser le fond vert original (specifique) */
.form-group.form-ok.quantity_wanted input.qty,
#configurator_block .form-group.form-ok.quantity_wanted input,
#configurator_block .quantity_wanted.form-group.form-ok input {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  border: none !important;
  border-left: 1px solid #d0d0d0 !important;
  border-right: 1px solid #d0d0d0 !important;
}

/* Etat erreur quantite */
#configurator_block .quantity_wanted.form-error .input-group {
  border-color: #f13340 !important;
}

#configurator_block .quantity_wanted.form-error input.qty,
.form-group.form-error.quantity_wanted input.qty {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  color: #f13340 !important;
}

#configurator_block .quantity_wanted.form-error .btn-configurator {
  color: #f13340 !important;
}

/* ── 3. INPUTS DIMENSIONS — style cadre segmente ── */

/* Les options dimensions cote a cote sur une ligne (override col-md-12) */
#configurator_block .option_input.option_group {
  margin-bottom: 6px !important;
  flex: 0 0 auto !important;
  max-width: none !important;
  width: auto !important;
  padding-right: 12px !important;
}

/* Le parent .row des dimensions : flex nowrap pour tout mettre sur 1 ligne */
#configurator_block .step_options .row {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
}

/* Masquer les anciens <small> "Valeurs disponibles" */
#configurator_block .option_input > small {
  display: none !important;
}

/* Cadre autour du groupe : [ Label | Input | mm ] */
#configurator_block .option_input .input-group {
  display: inline-flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  border: 1.5px solid #46a74e !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: none !important;
  max-width: none !important;
  width: auto !important;
  transition: all .2s ease !important;
  gap: 0 !important;
}

#configurator_block .option_input .input-group:hover {
  border-color: #C96E21 !important;
  background: #fafafa !important;
  transform: scale(1.03) !important;
  box-shadow: 0 2px 8px rgba(201,110,33,.18) !important;
}

/* Label : "Hauteur (1800 - 2350mm)" — premier segment */
#configurator_block .option_input .input-group .input-group-addon:first-child {
  background: transparent !important;
  border: none !important;
  border-right: 1px solid #d0d0d0 !important;
  border-radius: 0 !important;
  color: #333 !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  padding: 4px 10px !important;
  display: flex !important;
  align-items: center !important;
  white-space: nowrap !important;
  min-width: auto !important;
  flex: 0 0 auto !important;
}

/* Plage (1800 - 2350mm) en gris */
#configurator_block .option_input .input-group .input-group-addon .dim-range {
  color: #888 !important;
  font-weight: 400 !important;
  font-size: 11px !important;
  margin-left: 5px !important;
}

/* Input valeur — segment central */
#configurator_block .option_input .input-group input.form-control {
  border: none !important;
  border-radius: 0 !important;
  height: 28px !important;
  width: 85px !important;
  min-width: 70px !important;
  flex: 0 0 auto !important;
  padding: 0 6px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #333 !important;
  background: rgba(201,110,33,.10) !important;
  outline: none !important;
  box-shadow: none !important;
  text-align: center !important;
  margin: 0 !important;
  transition: all .25s ease !important;
}

#configurator_block .option_input .input-group input.form-control:hover {
  background: rgba(201,110,33,.25) !important;
  box-shadow: inset 0 0 0 1.5px rgba(201,110,33,.5) !important;
}

#configurator_block .option_input .input-group input.form-control:focus {
  background: rgba(201,110,33,.18) !important;
  box-shadow: inset 0 0 0 1.5px #C96E21 !important;
}

/* Placeholder anime */
#configurator_block .option_input .input-group input.form-control::placeholder {
  color: #bbb !important;
  font-weight: 400 !important;
  font-size: 10px !important;
  animation: configurator-pulse-placeholder 2.5s ease-in-out infinite !important;
}

@keyframes configurator-pulse-placeholder {
  0%, 100% { opacity: .35; }
  50% { opacity: 1; }
}

/* Suffixe (mm) — dernier segment */
#configurator_block .option_input .input-group .input-group-addon:last-child {
  background: transparent !important;
  border: none !important;
  border-left: 1px solid #d0d0d0 !important;
  border-radius: 0 !important;
  color: #777 !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  padding: 4px 8px !important;
  display: flex !important;
  align-items: center !important;
}

/* Focus sur le cadre entier */
#configurator_block .option_input .input-group:focus-within {
  border-color: #C96E21 !important;
  box-shadow: 0 0 0 2px rgba(201,110,33,.15) !important;
}

/* Etat valide — cadre vert */
#configurator_block .option_input.form-ok .input-group {
  border-color: #46a74e !important;
}

#configurator_block .option_input.form-ok .input-group input.form-control {
  color: #35b33f !important;
  background: rgba(201,110,33,.10) !important;
  background-image: none !important;
}

/* Etat erreur — cadre rouge */
#configurator_block .option_input.form-error .input-group {
  border-color: #f13340 !important;
}

#configurator_block .option_input.form-error .input-group input.form-control {
  color: #f13340 !important;
  background: rgba(201,110,33,.10) !important;
  background-image: none !important;
}

/* Neutraliser icone verte/rouge d'origine sur dimensions */
#configurator_block .option_input.form-ok .input-group input.form-control,
#configurator_block .option_input.form-error .input-group input.form-control {
  background-image: none !important;
  padding-right: 6px !important;
}

/* ── 4. REFERENCE + DESCRIPTIF IMAGE — PC & Mobile ── */

.product-variants-item.d-flex {
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: baseline !important;
  gap: 0 6px !important;
}

.product-variants-item .control-label {
  flex: 0 0 110px !important;
  font-size: 13px !important;
  white-space: nowrap !important;
  padding-right: 8px !important;
  margin-right: 8px !important;
  border-right: 1.5px solid #d0d0d0 !important;
}

.product-variants-item .control-item {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  font-size: 13px !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
  text-align: left !important;
}

/* ── 5. POPUP FANCYBOX "Plus d'infos" ── */

/* Skin : coins arrondis */
.fancybox-skin {
  border-radius: 10px !important;
  padding: 0 !important;
}

/* Cacher la croix native fancybox (on utilise la notre) */
.fancybox-close {
  display: none !important;
}

/* Cacher le titre natif fancybox (remplace par custom header) */
.fancybox-title {
  display: none !important;
}

/* Contenu : padding propre */
.fancybox-inner {
  padding: 0 !important;
  overflow: visible !important;
}

/* --- Notre header custom dans le popup --- */
.fancybox-custom-popup {
  padding: 0;
}

.fancybox-custom-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid #eee;
}

.fancybox-custom-title {
  font-size: 15px;
  font-weight: 700;
  color: #333;
  flex: 1 1 auto;
  text-align: left;
}

.fancybox-custom-close {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 300;
  color: #999;
  cursor: pointer;
  border-radius: 50%;
  transition: background .15s, color .15s;
  margin-left: 10px;
  line-height: 1;
}

.fancybox-custom-close:hover {
  background: #f0f0f0;
  color: #333;
}

.fancybox-custom-body {
  padding: 14px 16px;
  font-size: 13px;
  line-height: 1.5;
  color: #444;
}

/* ═══════════════════════════════════════════
   9.  Custom select dropdowns – price badges
   ═══════════════════════════════════════════ */

/* Wrapper */
.cpcm-select-wrap {
  position: relative !important;
}
/* Bloquer le dropdown natif */
.cpcm-select-wrap select {
  pointer-events: none !important;
}

/* Panneau dropdown custom (place dans le body, positionne en fixed via JS) */
.cpcm-dropdown {
  display: none;
  position: fixed;
  z-index: 10500;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
  max-height: 280px;
  overflow-y: auto;
}
.cpcm-dropdown.open {
  display: block;
}

/* Option individuelle */
.cpcm-dropdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 12px;
  cursor: pointer;
  font-size: 13px;
  color: #333;
  border-bottom: 1px solid #f2f2f2;
  gap: 10px;
  transition: background .1s;
}
.cpcm-dropdown-item:last-child { border-bottom: none; }
.cpcm-dropdown-item:hover { background: rgba(201,110,33,.06); }
.cpcm-dropdown-item.selected {
  background: rgba(201,110,33,.10);
  font-weight: 600;
}
.cpcm-item-text {
  flex: 1 1 auto;
  min-width: 0;
}

/* Badge prix */
.cpcm-price-badge {
  flex: 0 0 auto;
  display: inline-block;
  background: rgba(201,110,33,.10);
  color: #C96E21;
  font-size: 11.5px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  white-space: nowrap;
  letter-spacing: 0.02em;
}

/* Badge dans l'affichage uniforme du select */
.selector .cpcm-price-badge {
  margin-left: 6px;
  vertical-align: middle;
}


/* ── 6. RESPONSIVE ── */

@media (max-width: 768px) {
  /* Custom dropdown mobile */
  .cpcm-dropdown { max-height: 250px; }
  .cpcm-dropdown-item {
    padding: 10px 10px;
    font-size: 12.5px;
    flex-wrap: wrap;
  }
  .cpcm-price-badge {
    font-size: 11px;
    padding: 2px 8px;
  }

  /* Select uniform.js en mobile */
  #configurator_block div.selector {
    max-width: 100% !important;
    height: 32px !important;
    line-height: 32px !important;
  }

  #configurator_block div.selector span {
    font-size: 12px !important;
    height: 32px !important;
    line-height: 32px !important;
  }

  #configurator_block div.selector select {
    height: 32px !important;
    font-size: 12px !important;
  }

  /* Quantite repasse sous le select en mobile */
  #configurator_block .step_options > .col-lg-6 {
    display: block !important;
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  #configurator_block .step_options > .col-lg-6:last-child {
    padding-left: 0 !important;
    padding-top: 8px !important;
  }

  /* Dimensions : empile sur mobile (retour a la ligne)
     v2 : applique UNIQUEMENT si data-display="true" pour ne pas
     ecraser le display:none du template/JS sur les inputs masques */
  #configurator_block .option_input.option_group[data-display="true"] {
    display: block !important;
    width: 100% !important;
    flex: 0 0 100% !important;
    padding-right: 0 !important;
    margin-bottom: 6px !important;
  }

  /* Cadre de meme largeur pour Hauteur et Largeur */
  #configurator_block .option_input .input-group {
    display: flex !important;
    width: 100% !important;
  }

  #configurator_block .step_options .row {
    flex-wrap: wrap !important;
  }

  /* Label compact a gauche */
  #configurator_block .option_input .input-group .input-group-addon:first-child {
    flex: 0 0 auto !important;
    font-size: 11px !important;
    padding: 3px 6px !important;
  }

  /* INPUT = element flexible, prend tout l'espace libre */
  #configurator_block .option_input .input-group input.form-control {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
  }

  /* mm compact a droite */
  #configurator_block .option_input .input-group .input-group-addon:last-child {
    flex: 0 0 auto !important;
  }

  #configurator_block .option_input .input-group .input-group-addon .dim-range {
    font-size: 9.5px !important;
    margin-left: 3px !important;
  }

  #configurator_block .option_input .input-group input.form-control {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: 24px !important;
    font-size: 13px !important;
    padding: 0 4px !important;
    text-align: center !important;
  }

  #configurator_block .option_input .input-group .input-group-addon:last-child {
    font-size: 10px !important;
    padding: 3px 5px !important;
  }

  #configurator_block .quantity_wanted .btn-configurator {
    width: 26px !important;
    height: 26px !important;
    font-size: 14px !important;
  }

  #configurator_block .quantity_wanted input.qty,
  #configurator_block .quantity_wanted input.qty.qty-inline {
    width: 30px !important;
    max-width: 30px !important;
    height: 26px !important;
    font-size: 12px !important;
  }

  /* ── 5. OPTIONS RADIO / CHECKBOX — affichage mobile propre ── */

  /* FIX CONDITIONS MOBILE v2 : On ne met PLUS display:flex !important
     en inconditionnel car cela ecrase le style="display:none" inline
     pose par le template (etat initial) ET par jQuery .hide().
     Au lieu de cela, on applique flex UNIQUEMENT quand le JS a confirme
     que l'option doit etre visible (data-display="true").
     Les options sans attribut data-display (etat initial du template)
     gardent leur style="display:none" inline → restent masquees.
     Les options avec data-display="false" → display:none !important. */

  /* Masquer explicitement les elements caches par le JS */
  #configurator_block .option.option_group[data-display="false"],
  #configurator_block .option_input.option_group[data-display="false"],
  #configurator_block .configurator-card[data-display="false"],
  #configurator_block [data-display="false"] {
    display: none !important;
  }

  /* Afficher en flex UNIQUEMENT les options confirmees visibles par le JS */
  #configurator_block .option.option_group[data-display="true"] {
    display: flex !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
    gap: 0 8px !important;
    padding: 4px 0 !important;
    border-bottom: 1px solid #f0f0f0 !important;
  }

  #configurator_block .option.option_group:last-child {
    border-bottom: none !important;
  }

  /* Radio / checkbox : fixe en haut a gauche, bien aligne */
  #configurator_block .option.option_group > input[type="radio"],
  #configurator_block .option.option_group > input[type="checkbox"] {
    flex: 0 0 auto !important;
    margin: 3px 0 0 0 !important;
    width: 16px !important;
    height: 16px !important;
  }

  /* Label : prend tout l'espace restant, wrap proprement */
  #configurator_block .option.option_group > label {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding: 0 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Prix : passe sur sa propre ligne sous le texte */
  #configurator_block .option.option_group > label .label {
    display: inline-block !important;
    margin-top: 4px !important;
    font-size: 12px !important;
    vertical-align: baseline !important;
  }

  /* Bouton "Plus d'infos" sur option : passe a la ligne, a droite */
  #configurator_block .option.option_group > .label.label-info {
    flex: 0 0 auto !important;
    margin-top: 2px !important;
    font-size: 0 !important;
    padding: 1px 5px !important;
  }

  #configurator_block .option.option_group > .label.label-info::after {
    font-size: 10px !important;
  }

  /* Titre du step + bouton Plus d'infos : mieux espace */
  #configurator_block label.title {
    gap: 10px !important;
    flex-wrap: wrap !important;
  }

  #configurator_block label.title .step_title {
    font-size: 0.85rem !important;
  }

  /* Description italique : taille reduite */
  #configurator_block .info-text {
    font-size: 12px !important;
    margin-bottom: 8px !important;
  }

  /* Titre produit plus petit sur mobile + reduire espace au-dessus */
  h1.product-title {
    font-size: 1.25rem !important;
    line-height: 1.3 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .product-intro {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .product-detail-primary {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* Le vrai coupable : #page a padding: 2rem 0 dans theme.css */
  #page {
    padding-top: 0.5rem !important;
  }

  .product-detail-primary > .row {
    margin-top: 0 !important;
  }

  /* ── 7. CARACTERISTIQUES TECHNIQUES — empilees sur mobile ── */

  /* Chaque ligne : flex wrap pour forcer la valeur en dessous */
  .product-feature-item {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    gap: 0 !important;
    padding: 6px 10px !important;
  }

  /* Check vert : compact a gauche */
  .product-feature-item .feature-check {
    flex: 0 0 auto !important;
    margin-right: 6px !important;
    font-size: 14px !important;
  }

  /* Nom : a cote du check, prend le reste de la ligne */
  .product-feature-item .feature-name {
    flex: 1 1 0 !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
  }

  /* Valeur : passe en dessous, indentee sous le nom */
  .product-feature-item .feature-value {
    flex: 0 0 100% !important;
    padding-left: 24px !important;
    font-size: 12.5px !important;
    line-height: 1.4 !important;
    color: #555 !important;
    margin-top: 2px !important;
  }

  /* ── 8. TELECHARGEMENTS — layout mobile propre ── */

  /* Carte : grid 2 colonnes (icone | contenu) */
  .attachment-card {
    display: grid !important;
    grid-template-columns: 40px 1fr !important;
    grid-template-rows: auto auto auto !important;
    gap: 0 10px !important;
    align-items: start !important;
    padding: 12px !important;
  }

  /* Icone rouge : colonne gauche, toute la hauteur */
  .attachment-card .attachment-icon {
    grid-column: 1 !important;
    grid-row: 1 / 4 !important;
    width: 36px !important;
    height: 36px !important;
    align-self: center !important;
  }

  .attachment-card .attachment-icon svg {
    width: 28px !important;
    height: 28px !important;
  }

  /* Titre : ligne 1 droite */
  .attachment-card .attachment-info {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .attachment-card .attachment-name {
    font-size: 13px !important;
    margin: 0 !important;
  }

  .attachment-card .attachment-desc {
    font-size: 11.5px !important;
    margin: 2px 0 0 0 !important;
  }

  /* Bouton : ligne 2 droite, sous le texte */
  .attachment-card .attachment-btn {
    grid-column: 2 !important;
    grid-row: 2 !important;
    margin-top: 6px !important;
    padding: 5px 12px !important;
    font-size: 12px !important;
    justify-self: start !important;
  }

}


/* Fix fancybox popup scroll-to-top issue (16/03/2026) */
html.fancybox-lock { overflow: visible !important; }
