/*cart / checkout css*/
/********************/
/******CART TOP******/
/********************/
.woocommerce table.shop_table{
    border: none;
}
.woocommerce table.shop_table th {
    line-height: 22px;
    padding: 0 0 16px;
    font-size: 14px;
    color: var(--vert1);
    letter-spacing: 1.4px;
    font-weight: 400;
    text-transform: uppercase;
}
.woocommerce table.shop_table td {
	position: relative;
    line-height: unset;
    padding: 30px 0 23px;
    vertical-align: top;
}
.cart_item .cart_item_product_name + .variation,
.cart_item.cart_item_pack .variation,
.cart_item_title_sub_hidden{
    display: none;
}
.cart_item_product_name{
    display: block;
    line-height: 20px;
    font-size: 18px;
    font-family: var(--title-font);
    color: var(--vert1);
	clear: both;
	text-align: left !important;
}
.cart_item_product_name a{
	text-decoration: none;
	text-align: left !important;
}
.cart_item.cart_item_pack .cart_item_product_name{
    /*padding-top: 39px;*/
    position: relative;
}
.cart_item_product_name::before{
    content: 'Pack';
    display: block;
    line-height: 17px;
	margin-bottom: 10px;
    padding: 2px 9px;
    border: 1px solid var(--tc);
    font-size: 12px;
    font-family: var(--default-font);
    color: var(--tc);
    text-transform: uppercase;
    position: relative;
	width: fit-content;
    top: 0;
    left: 0;
}
.cart_item_title_sub{
    display: block;
    line-height: 20px;
    padding-top: 16px;
    font-size: 14px;
    font-family: var(--default-font);
    color: var(--vert1);
}

.cart_item_title_sub .cart_item_product_price{
    display: inline-block;
}
.cart_item_product_price {
    display: block;
    line-height: 24px;
    font-size: 16px;
}
.cart_item_product_price_ttc{
    font-weight: 700;
}
.shop_table .cart_item .quantity input.qty {
    display: block;
    box-sizing: border-box;
    width: 84px;
    height: 40px;
    padding: 8px;
    background: var(--gris1);
    border-radius: var(--r5);
    border: none;
    margin: 0;
    font-size: 14px;
    font-family: var(--default-font);
    color: var(--blk);
    text-align: center;
}
.woocommerce a.remove {
    display: block;
    width: 19px;
    height: 20px;
    line-height: unset;
    text-align: center;
    border-radius: unset;
    font-size: 0;
    color: unset!important;
    text-decoration: none;
    font-weight: unset;
    position: relative;
}
.woocommerce a.remove:hover {
    background: none;
    transition: all 0.3s;
}
.woocommerce a.remove::before {
    content: '';
    display: block;
    width: 19px;
    height: 20px;
    mask: url('../img/pic_ill_trash.svg') no-repeat center;
    -webkit-mask: url('../img/pic_ill_trash.svg') no-repeat center;
    mask-size: 100% auto;
    -webkit-mask-size: 100% auto;
    background-color: var(--tc);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    transition: all 0.3s;
}
.woocommerce a.remove:hover::before {
    background-color: var(--vert2);
    transition: all 0.3s;
}

/**********************/
/***PERSONNALISATION***/
/**********************/
.cart_form_customization_block {
    display: block;
    width: 100%;
    background: var(--gris1);
    border-radius: var(--r5);
    margin-bottom: 60px;
}
.cart_form_customization_block_main{
    padding: 30px 57px 56px 41px;
}
.cart_form_customization_block_main .single_product_big_title{
    margin-bottom: 1px;
}
.cart_form_customization_block_main .single_product_blocks_items{
    margin-bottom: 17px;
}
.cart_form_customization_table:not(:last-child){
    margin-bottom: 30px;
}
.cart_form_customization_table_pdt_title{
    display: block;
    line-height: 25px;
    margin-bottom: 15px;
    font-size: 25px;
    font-family: var(--title-font);
    color: var(--vert1);
    text-transform: none;
}
.cart_form_customization_strap{
    display: block;
    margin: 0;
}
.cart_form_customization_strap:not(:last-child){
    margin: 0 0 20px;
}
.cart_form_customization_strap_main{
    display: flex;
    gap: var(--g12);
}
.cart_form_customization_strap_cell{
    flex: 1;
    display: flex;
}
.cart_form_customization_strap_cell_title{
    display: block;
    line-height: 20px;
    margin: auto 0;
    font-size: 18px;
    font-family: var(--title-font);
    color: var(--vert1);
}
.cart_form_customization_strap_cell label{
    display: none;
}
.cart_form_customization_strap_cell input[type="text"]{
    display: block;
    box-sizing: border-box;
    line-height: 26px;
    padding: 9px 20px;
    background: var(--wh);
    border: none;
    border-radius: var(--r5);
    font-size: 16px;
    font-family: var(--default-font);
    color: var(--vert1);
}
/*download*/
.gravure_file_span_hidden{
    display: none;
}
.cart_form_customization_table_download_block_p{
    line-height: 26px;
    margin-bottom: 13px;
}
.cart_form_customization_table_download_bt_strap{
    display: flex;
    flex-wrap: wrap;
    gap: var(--g20);
}
.cart_form_customization_table_download_xls {
    display: block;
    line-height: 12px;
    padding: 13px 20px 13px 45px;
    background: var(--vert3);
    border-radius: var(--r5);
    font-size: 12px;
    color: var(--vert1);
    letter-spacing: 1.2px;
    text-decoration: none;
    position: relative;
    transition: all 0.3s;
}
.cart_form_customization_table_download_xls::before{
    content: '';
    display: block;
    width: 15px;
    height: 15px;
    mask: url('../img/pic_ill_download.svg') no-repeat center;
    -webkit-mask: url('../img/pic_ill_download.svg') no-repeat center;
    mask-size: 100% auto;
    -webkit-mask-size: 100% auto;
    background-color: var(--vert1);
    margin: auto 0;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 20px;
    z-index: 2;
    transition: all 0.3s;
}
.cart_form_customization_table_download_xls:hover{
    color: var(--tc);
    transition: all 0.3s;
}
.cart_form_customization_table_download_xls:hover::before{
    background-color: var(--tc);
    transition: all 0.3s;
}
.cart_form_customization_table_download_return_block{
    flex: 1;
}
.cart_form_customization_table_download_return_input{
    display: inline-block;
    position: relative;
}
.cart_form_customization_table_download_return_block input[type="file"]{
    display: block;
    line-height: 12px;
    padding: 9px 20px 9px 45px;
    background: var(--vert3);
    border: none;
    border-radius: var(--r5);
    font-size: 12px;
    font-family: var(--default-font);
    color: var(--vert1);
    letter-spacing: 1.2px;
    position: relative;
    z-index: 2;
}
.cart_form_customization_table_download_return_input::before{
    content: '';
    display: block;
    width: 15px;
    height: 15px;
    mask: url('../img/pic_ill_export.svg') no-repeat center;
    -webkit-mask: url('../img/pic_ill_export.svg') no-repeat center;
    mask-size: 100% auto;
    -webkit-mask-size: 100% auto;
    background-color: var(--vert1);
    position: absolute;
    top: 12px;
    left: 20px;
    z-index: 3;
    transition: all 0.3s;
}
.cart_form_customization_table_download_return_input small{
    display: block;
    padding: 3px 0 5px;
    text-align: center;
}

/********************/
/*****CART TOTAL*****/
/********************/
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
    float: right;
    width: 58%;
}
.cart_totals_content{
    display: block;
    padding: 30px 60px;
    background: var(--vert3);
    border-radius: var(--r10);
}
.cart_totals_content h2{
    line-height: 25px;
    margin-bottom: 17px;
    font-size: 25px;
}
.woocommerce .cart_totals_content table.shop_table th,
.woocommerce .cart_totals_content table.shop_table td{
    padding: 20px 0 13px;
    border-top: 1px solid var(--vert2);
}
.woocommerce .cart_totals_content table.shop_table tbody:first-child tr:first-child td,
.woocommerce .cart_totals_content table.shop_table tbody:first-child tr:first-child th{
    border-top: 1px solid var(--vert2);
}
.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce .cart_totals_content table.shop_table th{
    line-height: 20px;
    font-size: 18px;
    font-family: var(--title-font);
    font-weight: 400;
    text-transform: none;
}
.woocommerce .cart_totals_content table.shop_table td,
.woocommerce .cart_totals_content table.shop_table tbody:first-child tr:first-child td{
    text-align: right;
}
.page_hentry .cart_totals_content ul:not(.wc-block-product-template, .woocommerce-error) li::before {
    content: unset;
}
.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-destination,
.cart_totals_content .woocommerce-shipping-calculator{
    display: none!important;
}
.woocommerce-cart .cart_totals_content .order-total .woocommerce-Price-amount {
	font-size: var(--g20);
}
.woocommerce-cart .cart_totals_content .wc-proceed-to-checkout{
    padding: 0;
	text-align: right;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .cart_totals_content .wc-proceed-to-checkout a.button{
    display: inline-block;
    margin: 10px 0 0 auto;
    transition: all 0.3s;
}

/********************/
/******CHECKOUT******/
/********************/
:where(.woocommerce) .select2-container {
	max-width: 100%; /* fix "Type de client" select outside of the box */
}
.page_hentry #customer_details h3{
    line-height: 25px;
    margin-bottom: 36px;
    font-size: 25px;
    font-family: var(--title-font);
    color: var(--vert1);
    text-transform: none;
}
.woocommerce form .form-row label {
    line-height: 22px;
    margin-bottom: 5px;
    font-size: 14px;
    font-family: var(--default-font);
    color: var(--vert1);
    text-transform: uppercase;
}
.woocommerce .col2-set .col-1, .woocommerce-page .col2-set .col-1,
.woocommerce .col2-set .col-2, .woocommerce-page .col2-set .col-2{
    box-sizing: border-box;
    padding: 42px 52px;
    border: 1px solid var(--vert3);
    border-radius: var(--r10);
    margin: 0 0 60px;
}
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-billing-fields__field-wrapper{
    display: flex;
    flex-wrap: wrap;
    gap: var(--g12) var(--g20);
}
.woocommerce-checkout .woocommerce form .form-row {
    width: var(--2-20);
    padding: 0;
}
.woocommerce form #shipping_address_1_field.form-row,
.woocommerce form #shipping_address_2_field.form-row,
.woocommerce form #billing_type_client_field.form-row,
.woocommerce form #billing_etablissement_scolaire_field.form-row,
.woocommerce form #billing_address_1_field.form-row,
.woocommerce form #billing_address_2_field.form-row,
.woocommerce-checkout .checkout .col-2 .notes{
    width: 100%;
}
.woocommerce-checkout #order_review_heading{
    display: none;
    visibility: hidden;
    height: 0;
    font-size: 0;
}
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table{
    display: none;
    visibility: hidden;
    height: 0;
    font-size: 0;
}
.woocommerce-checkout form #order_comments_field.form-row .input-text{
    height: 135px;
    padding: 16px;
}
.woocommerce-additional-fields{
    padding-top: 12px;
}
#add_payment_method #payment,
.woocommerce-cart #payment,
.woocommerce-checkout #payment {
    padding: 30px 57px 56px 41px;
    background: var(--gris1);
    border-radius: 5px;
}
#add_payment_method #payment div.payment_box,
.woocommerce-cart #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box {
    background-color: var(--vert3);
    color: var(--vert1);
}
#add_payment_method #payment div.payment_box::before, .woocommerce-cart #payment div.payment_box::before, .woocommerce-checkout #payment div.payment_box::before {
    content: "";
    display: block;
    border: 1em solid var(--vert3);
    border-top-color: transparent;
    border-right-color: transparent;
    border-left-color: transparent;
}
.woocommerce-checkout .page_hentry #payment ul.payment_methods li{
    padding: 0;
}
.woocommerce-checkout .page_hentry #payment ul.payment_methods li::before{
    content: unset;
}
.woocommerce-checkout #payment div.form-row{
    width: 100%;
}

/*détail commande*/
.woo_order_detail_custom_xls_file{
    display: block;
    width: 100%;
    background: var(--gris1);
    border-radius: var(--r5);
    margin-bottom: 60px;
}
.woo_order_detail_custom_xls_file_main {
    padding: 30px 41px;
}
.woo_order_detail_custom_xls_file .cart_form_customization_table_download_xls_block{
    display: inline-block;
}
.woocommerce table.shop_table tfoot th{
    padding: 30px 0 23px;
}
.woocommerce table.shop_table td.product-name > a{
    display: inline-block;
    line-height: 20px;
    margin-bottom: 16px;
    font-size: 18px;
    font-family: var(--title-font);
    color: var(--vert1);
    text-decoration: none;
}
.woocommerce .woocommerce-order-details{
    padding-top: 60px;
}
.page_hentry .woocommerce p.woocommerce-notice {
    margin-bottom: 26px;
}
.woocommerce-order ul.woocommerce-order-overview{
    margin-bottom: 26px;
	color: var(--vert1);
}
ul.woocommerce-order-overview li{
    padding: 14px 20px !important;
    border: 1px solid var(--vert3);
}
.woocommerce ul.order_details li:last-of-type {
    border: 1px solid var(--vert3);
}
.woocommerce ul.order_details li:not(:last-of-type) {
    border-right: none;
}


/***********************/
/**** INFO / NOTICE ****/
/***********************/

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
	background: none;
	border: 1px solid var(--vert3);
	border-radius: var(--r5);

	color: var(--vert1);
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	font-family: var(--default-font);
	letter-spacing: 10%;
	text-transform: uppercase;
}
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message {
	background: none;
	border: none;
	padding: 0;

	color: var(--vert1);
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	font-family: var(--default-font);
	letter-spacing: 10%;
	text-transform: uppercase;
}
.woocommerce-checkout .woocommerce-error::before,
.woocommerce-checkout .woocommerce-info::before,
.woocommerce-checkout .woocommerce-message::before {
	display: none;
}

/*****************************/
/**** CHECKOUT LOGIN FORM ****/
/*****************************/

.woocommerce-form.woocommerce-form-login.login .form-row:last-child {
	margin-top: 40px;
}

/***************/
/**** DEVIS ****/
/***************/

body:not(.logged-in) #ywraq_cart_quote {
	display: none; /* Hide quote button for non-logged-in users */
}
#ywraq_cart_quote.button {
	margin-top: 10px;
	width: auto !important;
}

/* Formulaire "Demande de devis" — rendu dans un dialog jQuery UI hors du
   contexte `.woocommerce`, donc les styles form-row du checkout ne
   s'appliquent pas. On reprend ici les mêmes patterns (label uppercase,
   input `--gris1` + `--r5`, submit pill vert1 → hover tc). */
.yith-ywraq-mail-form-wrapper {
	padding: var(--g20) var(--g24) var(--g24);
}
.yith-ywraq-mail-form-wrapper h3 {
	margin: 0 0 var(--g24);
	font-family: var(--title-font);
	font-size: 22px;
	line-height: 1.2;
	color: var(--vert1);
	text-transform: none;
}
.yith-ywraq-mail-form-wrapper .form-row {
	display: block;
	width: 100%;
	margin: 0 0 var(--g12);
	padding: 0;
}
.yith-ywraq-mail-form-wrapper .form-row label {
	display: block;
	margin-bottom: 5px;
	font-family: var(--default-font);
	font-size: 14px;
	line-height: 22px;
	color: var(--vert1);
	text-transform: uppercase;
}
.yith-ywraq-mail-form-wrapper .form-row label .required {
	color: var(--tc);
}
.yith-ywraq-mail-form-wrapper .woocommerce-input-wrapper {
	display: block;
	width: 100%;
}
.yith-ywraq-mail-form-wrapper .input-text {
	display: block;
	width: 100%;
	height: 45px;
	padding: 0 16px;
	background: var(--gris1);
	border: 1px solid transparent;
	border-radius: var(--r5);
	box-sizing: border-box;
	color: var(--blk);
	font-family: var(--default-font);
	font-size: 16px;
	line-height: 1.6;
	transition: border-color .15s ease, background-color .15s ease;
}
.yith-ywraq-mail-form-wrapper textarea.input-text {
	height: auto;
	min-height: 120px;
	padding: 12px 16px;
	line-height: 1.5;
	resize: vertical;
}
.yith-ywraq-mail-form-wrapper .input-text:focus-visible {
	outline: 2px solid var(--focus-outline-color);
	outline-offset: var(--g2);
}
/* Message d'erreur inline (affiché/masqué par le plugin via JS). */
.yith-ywraq-mail-form-wrapper .ywraq_error {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	color: var(--tc);
}
/* Rangée du submit — alignement à droite comme les CTA du checkout. */
.yith-ywraq-mail-form-wrapper .raq-send-request-row {
	margin-top: var(--g20);
	margin-bottom: 0;
	text-align: right;
}
/* Bouton "Envoyez votre demande" — pill outline vert1, hover tc.
   La puce orange (normalement en `::before` sur les autres CTA du thème)
   est simulée ici en `radial-gradient` : les <input type="submit"> sont
   des éléments remplacés et ne supportent pas les pseudo-éléments.
   Cercle de 7px centré verticalement, à 22px du bord gauche → même
   position que la puce des boutons `.hentry_bt_princ` du thème. */
.yith-ywraq-mail-form-wrapper .raq-send-request {
	display: inline-block;
	padding: 9px 22px 9px 42px;
	background-color: transparent;
	background-image: radial-gradient(circle at 25.5px 50%, var(--tc) 3px, transparent 4px);
	background-repeat: no-repeat;
	border: 1px solid var(--vert1);
	border-radius: var(--r180);
	color: var(--vert1);
	font-family: var(--default-font);
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	text-decoration: none;
	cursor: pointer;
	transition: color .3s, border-color .3s;
	appearance: none;
	-webkit-appearance: none;
}
.yith-ywraq-mail-form-wrapper .raq-send-request:hover,
.yith-ywraq-mail-form-wrapper .raq-send-request:focus-visible {
	border-color: var(--tc);
	color: var(--tc);
}
.yith-ywraq-mail-form-wrapper .raq-send-request:focus-visible {
	outline: 2px solid var(--focus-outline-color);
	outline-offset: var(--g2);
}
